For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 fields

get

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.

Authorizations
AuthorizationstringRequired

Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).

Path parameters
eventIdstring · uuidRequiredExample: aaff0556-85b5-4ac4-a484-486c7f319c08
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 50Example: 50
offsetinteger · nullableOptionalDefault: 0Example: 0
qstringOptional

Filter by label substring (case-insensitive)

Example: Dietary
typestringOptional

Filter by type: text, textArea, multipleText, radioGroup, checkboxGroup, dropdown, singleCheckbox, fileUpload, datePicker, timePicker, phoneField

Example: text
includeDeletedboolean · nullableOptional

Include soft-deleted (trashed) fields

Example: false
Responses
200

Paginated custom fields

application/json
totalnumberRequiredExample: 10
limitnumberRequiredExample: 50
offsetnumberRequiredExample: 0
get/v2/events/{eventId}/custom-fields
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

post

Create custom field — event-create allowed for event-scoped token (token.eventId must match). Requires write.

Authorizations
AuthorizationstringRequired

Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).

Path parameters
eventIdstring · uuidRequiredExample: aaff0556-85b5-4ac4-a484-486c7f319c08
Body

Create custom field — requires organizer_api_token write, org or event scoped. Type must be one of the supported CustomQuestionType values.

labelstring · min: 1 · max: 200Required

Field label, required 1-200

Example: Dietary Requirements
typestring · enumRequired

Field type, required

Example: textPossible values:
isRequiredbooleanOptional

Required flag, defaults false

Example: false
isEditableByAttendeebooleanOptionalExample: true
configanyOptional

Type-specific config, e.g. options for choice types

Example: {"options":[{"id":"opt1","label":"Vegan"}]}
contentI18nanyOptionalExample: {"en":{"label":"Dietary"}}
Responses
201

Created

application/json

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).

idstringRequired

Custom field ID, UUID

Example: a1b2c3d4-1234-4abc-9def-1234567890ab
eventIdstringRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
labelstringRequired

Field label

Example: Dietary Requirements
typestringRequired

text | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField

Example: text
isRequiredbooleanRequired

Whether field is required

Example: false
isEditableByAttendeeboolean · nullableRequired

Whether attendee can edit after submission

Example: true
configanyOptional

Type-specific config (e.g. options for radioGroup/dropdown)

Example: {"options":[{"id":"opt1","label":"Vegan"}]}
contentI18nanyOptional

Translations

Example: {"en":{"label":"Dietary Requirements"}}
isDeletedbooleanRequired

Soft-deleted (trashed), recoverable via PATCH deletedAt:null

Example: false
deletedAtstring · nullableRequired

Soft delete timestamp, null if active

createdAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
updatedAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
post/v2/events/{eventId}/custom-fields
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 custom field

get

Get single custom field by ID, scoped to event. Soft-deleted (trashed) returns 404 unless includeDeleted. Requires read.

Authorizations
AuthorizationstringRequired

Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).

Path parameters
eventIdstring · uuidRequiredExample: aaff0556-85b5-4ac4-a484-486c7f319c08
fieldIdstring · uuidRequiredExample: a1b2c3d4-1234-4abc-9def-1234567890ab
Query parameters
includeDeletedboolean · nullableOptionalExample: false
Responses
200

Custom field

application/json

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).

idstringRequired

Custom field ID, UUID

Example: a1b2c3d4-1234-4abc-9def-1234567890ab
eventIdstringRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
labelstringRequired

Field label

Example: Dietary Requirements
typestringRequired

text | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField

Example: text
isRequiredbooleanRequired

Whether field is required

Example: false
isEditableByAttendeeboolean · nullableRequired

Whether attendee can edit after submission

Example: true
configanyOptional

Type-specific config (e.g. options for radioGroup/dropdown)

Example: {"options":[{"id":"opt1","label":"Vegan"}]}
contentI18nanyOptional

Translations

Example: {"en":{"label":"Dietary Requirements"}}
isDeletedbooleanRequired

Soft-deleted (trashed), recoverable via PATCH deletedAt:null

Example: false
deletedAtstring · nullableRequired

Soft delete timestamp, null if active

createdAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
updatedAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
get/v2/events/{eventId}/custom-fields/{fieldId}
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"
}

Delete custom field

delete

Soft delete (trash) — sets deletedAt, recoverable via PATCH deletedAt:null. Requires write.

Authorizations
AuthorizationstringRequired

Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).

Path parameters
eventIdstring · uuidRequiredExample: aaff0556-85b5-4ac4-a484-486c7f319c08
fieldIdstring · uuidRequiredExample: a1b2c3d4-1234-4abc-9def-1234567890ab
Responses
204

Deleted (trashed)

No content

delete/v2/events/{eventId}/custom-fields/{fieldId}
DELETE /v2/events/{eventId}/custom-fields/{fieldId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Patch custom field

patch

Partial update — at least one field. Restore soft-deleted via deletedAt:null. Requires write and human confirmation when via MCP (confirm:true).

Authorizations
AuthorizationstringRequired

Organizer API token — Authorization: Bearer evtx_live_… (Org/Event scoped, read/write).

Path parameters
eventIdstring · uuidRequiredExample: aaff0556-85b5-4ac4-a484-486c7f319c08
fieldIdstring · uuidRequiredExample: a1b2c3d4-1234-4abc-9def-1234567890ab
Body

Partial update — at least one field required. Restore soft-deleted via deletedAt:null. Trash is soft, recoverable.

labelstring · min: 1 · max: 200OptionalExample: Dietary — Updated
typestring · enumOptionalExample: textAreaPossible values:
isRequiredbooleanOptionalExample: true
isEditableByAttendeebooleanOptionalExample: false
configanyOptionalExample: {"options":[{"id":"opt1","label":"Vegan"}]}
contentI18nanyOptionalExample: {"en":{"label":"Dietary"}}
deletedAtstring · nullableOptional

Set null to restore soft-deleted field, ISO string to trash

Responses
200

Updated

application/json

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).

idstringRequired

Custom field ID, UUID

Example: a1b2c3d4-1234-4abc-9def-1234567890ab
eventIdstringRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
labelstringRequired

Field label

Example: Dietary Requirements
typestringRequired

text | textArea | multipleText | radioGroup | checkboxGroup | dropdown | singleCheckbox | fileUpload | datePicker | timePicker | phoneField

Example: text
isRequiredbooleanRequired

Whether field is required

Example: false
isEditableByAttendeeboolean · nullableRequired

Whether attendee can edit after submission

Example: true
configanyOptional

Type-specific config (e.g. options for radioGroup/dropdown)

Example: {"options":[{"id":"opt1","label":"Vegan"}]}
contentI18nanyOptional

Translations

Example: {"en":{"label":"Dietary Requirements"}}
isDeletedbooleanRequired

Soft-deleted (trashed), recoverable via PATCH deletedAt:null

Example: false
deletedAtstring · nullableRequired

Soft delete timestamp, null if active

createdAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
updatedAtstring · nullableRequiredExample: 2026-01-15T02:00:00.000Z
patch/v2/events/{eventId}/custom-fields/{fieldId}
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