API for Event Registration with Custom Fields?
Okay, I just figured it out. I just need to chain the API call with CustomValue create:

CRM.api3('Participant', 'create', {
  "debug": 1,
  "sequential": 1,
  "event_id": 145,
  "contact_id": 2,
  "role_id": "Attendee",
  "api.CustomValue.create": {"custom_223":3}
}).done(function(result) {
  // do something
});