Custom Fields
Custom field definitions per event (question_library) — soft-deleted (trash, recoverable via PATCH deletedAt:null), org/event scoped, write needs confirm via MCP
List custom field definitions for an event — paginated, filterable by label substring and type. Excludes soft-deleted (trashed) by default; pass includeDeleted=true to include. Requires organizer_api_token read, org or event scoped.
Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).
aaff0556-85b5-4ac4-a484-486c7f319c0850Example: 500Example: 0Filter by label substring (case-insensitive)
DietaryFilter by type: text, textArea, multipleText, radioGroup, checkboxGroup, dropdown, singleCheckbox, fileUpload, datePicker, timePicker, phoneField
textInclude soft-deleted (trashed) fields
falsePaginated custom fields
10500Unauthorized
Forbidden
Event not found
GET /v2/events/{eventId}/custom-fields HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": "a1b2c3d4-1234-4abc-9def-1234567890ab",
"eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
"label": "Dietary Requirements",
"type": "text",
"isRequired": false,
"isEditableByAttendee": true,
"config": {
"options": [
{
"id": "opt1",
"label": "Vegan"
}
]
},
"contentI18n": {
"en": {
"label": "Dietary Requirements"
}
},
"isDeleted": false,
"deletedAt": null,
"createdAt": "2026-01-15T02:00:00.000Z",
"updatedAt": "2026-01-15T02:00:00.000Z"
}
],
"total": 10,
"limit": 50,
"offset": 0
}Create custom field — event-create allowed for event-scoped token (token.eventId must match). Requires write.
Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).
aaff0556-85b5-4ac4-a484-486c7f319c08Create custom field — requires organizer_api_token write, org or event scoped. Type must be one of the supported CustomQuestionType values.
Field label, required 1-200
Dietary RequirementsField type, required
textPossible values: Required flag, defaults false
falsetrueType-specific config, e.g. options for choice types
{"options":[{"id":"opt1","label":"Vegan"}]}{"en":{"label":"Dietary"}}Created
Custom field row — per-event definition stored in question_library.questions, soft-deleted (trash, recoverable). Scoped by organizer_api_token (Org or Event, not user).
Custom field ID, UUID
a1b2c3d4-1234-4abc-9def-1234567890abEvent ID
aaff0556-85b5-4ac4-a484-486c7f319c08Field label
Dietary Requirementstext | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField
textWhether field is required
falseWhether attendee can edit after submission
trueType-specific config (e.g. options for radioGroup/dropdown)
{"options":[{"id":"opt1","label":"Vegan"}]}Translations
{"en":{"label":"Dietary Requirements"}}Soft-deleted (trashed), recoverable via PATCH deletedAt:null
falseSoft delete timestamp, null if active
2026-01-15T02:00:00.000Z2026-01-15T02:00:00.000ZValidation error
Unauthorized
Forbidden
Event not found
POST /v2/events/{eventId}/custom-fields HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 65
{
"label": "Dietary Requirements",
"type": "text",
"isRequired": false
}{
"id": "a1b2c3d4-1234-4abc-9def-1234567890ab",
"eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
"label": "Dietary Requirements",
"type": "text",
"isRequired": false,
"isEditableByAttendee": true,
"config": {
"options": [
{
"id": "opt1",
"label": "Vegan"
}
]
},
"contentI18n": {
"en": {
"label": "Dietary Requirements"
}
},
"isDeleted": false,
"deletedAt": null,
"createdAt": "2026-01-15T02:00:00.000Z",
"updatedAt": "2026-01-15T02:00:00.000Z"
}Get single custom field by ID, scoped to event. Soft-deleted (trashed) returns 404 unless includeDeleted. Requires read.
Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).
aaff0556-85b5-4ac4-a484-486c7f319c08a1b2c3d4-1234-4abc-9def-1234567890abfalseCustom field
Custom field row — per-event definition stored in question_library.questions, soft-deleted (trash, recoverable). Scoped by organizer_api_token (Org or Event, not user).
Custom field ID, UUID
a1b2c3d4-1234-4abc-9def-1234567890abEvent ID
aaff0556-85b5-4ac4-a484-486c7f319c08Field label
Dietary Requirementstext | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField
textWhether field is required
falseWhether attendee can edit after submission
trueType-specific config (e.g. options for radioGroup/dropdown)
{"options":[{"id":"opt1","label":"Vegan"}]}Translations
{"en":{"label":"Dietary Requirements"}}Soft-deleted (trashed), recoverable via PATCH deletedAt:null
falseSoft delete timestamp, null if active
2026-01-15T02:00:00.000Z2026-01-15T02:00:00.000ZUnauthorized
Forbidden
Not found
GET /v2/events/{eventId}/custom-fields/{fieldId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "a1b2c3d4-1234-4abc-9def-1234567890ab",
"eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
"label": "Dietary Requirements",
"type": "text",
"isRequired": false,
"isEditableByAttendee": true,
"config": {
"options": [
{
"id": "opt1",
"label": "Vegan"
}
]
},
"contentI18n": {
"en": {
"label": "Dietary Requirements"
}
},
"isDeleted": false,
"deletedAt": null,
"createdAt": "2026-01-15T02:00:00.000Z",
"updatedAt": "2026-01-15T02:00:00.000Z"
}Soft delete (trash) — sets deletedAt, recoverable via PATCH deletedAt:null. Requires write.
Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).
aaff0556-85b5-4ac4-a484-486c7f319c08a1b2c3d4-1234-4abc-9def-1234567890abDeleted (trashed)
No content
Unauthorized
Forbidden
Not found
DELETE /v2/events/{eventId}/custom-fields/{fieldId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Partial update — at least one field. Restore soft-deleted via deletedAt:null. Requires write and human confirmation when via MCP (confirm:true).
Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).
aaff0556-85b5-4ac4-a484-486c7f319c08a1b2c3d4-1234-4abc-9def-1234567890abPartial update — at least one field required. Restore soft-deleted via deletedAt:null. Trash is soft, recoverable.
Dietary — UpdatedtextAreaPossible values: truefalse{"options":[{"id":"opt1","label":"Vegan"}]}{"en":{"label":"Dietary"}}Set null to restore soft-deleted field, ISO string to trash
Updated
Custom field row — per-event definition stored in question_library.questions, soft-deleted (trash, recoverable). Scoped by organizer_api_token (Org or Event, not user).
Custom field ID, UUID
a1b2c3d4-1234-4abc-9def-1234567890abEvent ID
aaff0556-85b5-4ac4-a484-486c7f319c08Field label
Dietary Requirementstext | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField
textWhether field is required
falseWhether attendee can edit after submission
trueType-specific config (e.g. options for radioGroup/dropdown)
{"options":[{"id":"opt1","label":"Vegan"}]}Translations
{"en":{"label":"Dietary Requirements"}}Soft-deleted (trashed), recoverable via PATCH deletedAt:null
falseSoft delete timestamp, null if active
2026-01-15T02:00:00.000Z2026-01-15T02:00:00.000ZValidation
Unauthorized
Forbidden
Not found
PATCH /v2/events/{eventId}/custom-fields/{fieldId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 207
{
"label": "Dietary — Updated",
"type": "textArea",
"isRequired": true,
"isEditableByAttendee": false,
"config": {
"options": [
{
"id": "opt1",
"label": "Vegan"
}
]
},
"contentI18n": {
"en": {
"label": "Dietary"
}
},
"deletedAt": null
}{
"id": "a1b2c3d4-1234-4abc-9def-1234567890ab",
"eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
"label": "Dietary Requirements",
"type": "text",
"isRequired": false,
"isEditableByAttendee": true,
"config": {
"options": [
{
"id": "opt1",
"label": "Vegan"
}
]
},
"contentI18n": {
"en": {
"label": "Dietary Requirements"
}
},
"isDeleted": false,
"deletedAt": null,
"createdAt": "2026-01-15T02:00:00.000Z",
"updatedAt": "2026-01-15T02:00:00.000Z"
}Last updated