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

Attendees

Event attendee management — externalId scoped by event, email optional, customQrString writable, checkInToken read-only, bulk upsert

List attendees in an event

get

Returns paginated attendees for an event. Requires organizer_api_token with scope org (any event in org) or event (this event only). Pure token-level, not user. Supports limit/offset and optional externalId/email/addOnId filter (addOnId returns only attendees who have selected that addon — exists in attendee_add_on). Token read permission suffices.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

Query parameters
limitinteger · min: 1 · max: 100Optional

Limit 1-100, default 50

Default: 50Example: 50
offsetinteger · nullableOptional

Offset

Default: 0Example: 0
externalIdstringOptional

Filter by externalId (provider ID)

Example: ext_123
emailstringOptional

Filter by email

Example: alex@acme.com
addOnIdstring · uuidOptional

Filter by addon ID — returns only attendees who have selected this addon (exists in attendee_add_on for this event)

Example: 473ed8f7-deae-4bee-bb32-eafd860aebe4
qstringOptional

Free-text search across firstName, lastName, email, name, organization, externalId (case-insensitive substring)

Example: alex
registrationStatusstring · enumOptional

Filter by registration status

Example: confirmedPossible values:
approvalStatusstring · enumOptional

Filter by approval status

Example: approvedPossible values:
suspendStatusstring · enumOptional

Filter by suspend status

Example: nonePossible values:
roleTagsstringOptional

Comma-separated role tags — matches attendees with ANY of the listed tags (OR)

Example: exhibitor,speaker
customFieldKeystringOptional

Custom field key to search within

Example: dietary_restrictions
customFieldContainsstringOptional

Substring to match within the custom field value (case-insensitive)

Example: vegan
sortBystring · enumOptional

Sort field (default: createdAt)

Example: createdAtPossible values:
sortDirectionstring · enumOptional

Sort direction (default: desc)

Example: descPossible values:
Responses
200

Paginated list

application/json
totalnumberRequiredExample: 3
limitnumberRequiredExample: 50
offsetnumberRequiredExample: 0
get/v2/events/{eventId}/attendees
GET /v2/events/{eventId}/attendees HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
      "externalId": "ext_123",
      "email": "alex@acme.com",
      "customQrString": "WELCOME-2026-QR-A1B2C3",
      "checkInToken": "ci_9f3k2a1b",
      "name": "Alex Chen",
      "firstName": "Alex",
      "lastName": "Chen",
      "jobTitle": "Engineer",
      "organization": "Acme Inc",
      "city": "Hong Kong",
      "country": "HK",
      "areaCode": "852",
      "contactNo": "98765432",
      "roleTags": [
        "visitor"
      ],
      "customFields": {},
      "approvalStatus": "waitlisted",
      "registrationStatus": "pending",
      "suspendStatus": "none",
      "createdAt": "2026-08-17T08:28:35.429Z",
      "updatedAt": "2026-08-17T08:28:35.429Z",
      "addOns": [
        {
          "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
          "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
          "qty": 1,
          "selectionStatus": "waitlisted",
          "confirmedAt": null,
          "createdAt": "2026-08-17T08:28:35.518Z",
          "updatedAt": "2026-08-17T09:36:09.620Z"
        }
      ]
    }
  ],
  "total": 3,
  "limit": 50,
  "offset": 0
}

Create an attendee

post

Creates attendee — supply externalId at creation to enable later provider-based update (ext_123). Email optional (no unique per event). Custom QR string writable (customCheckInToken), checkInToken read-only ignored. Requires organizer_api_token write, org/event scoped.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

Body

Create attendee — supply externalId at creation to enable later update by provider ID (ext_123). Email optional. Custom QR string writable; checkInToken read-only ignored. customFields must use custom-field ids from GET /custom-fields, wrapped as {value: ...}.

externalIdstring · max: 100Optional

Provider external ID, scoped by event, optional but recommended for upsert

Example: ext_123
emailstring · email · max: 254Optional

Contact email (maps to invitation_email, optional, no unique)

Example: alex@acme.com
customQrStringstring · max: 500Optional

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
namestring · max: 500OptionalExample: Alex Chen
firstNamestring · max: 500OptionalExample: Alex
lastNamestring · max: 500OptionalExample: Chen
jobTitlestring · max: 500OptionalExample: Engineer
organizationstring · max: 500OptionalExample: Acme Inc
citystring · max: 50OptionalExample: Hong Kong
countrystring · max: 50OptionalExample: HK
areaCodestring · max: 50OptionalExample: 852
contactNostring · max: 50OptionalExample: 98765432
roleTagsstring[]Optional

Visible role tags (visitor/organizer/host/speaker/exhibitor/booth-rep). Defaults to ["visitor"] when omitted — tag-less attendees are hidden from the portal people list.

Example: ["visitor"]
Responses
201

Created

application/json

Attendee row — scoped by organizer_api_token (Org or Event, not user). Token permissions: read allows GET, write allows all. See info.description for full token scope.

idstring · uuidRequired

Attendee ID, UUID

Example: 6daeaa1f-f82f-4068-a8b2-712894b00184
eventIdstring · uuidRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
externalIdstring · nullableRequired

Provider external ID, scoped by event (UNIQUE(event_id, externalId))

Example: ext_123
emailstring · nullableRequired

Contact email (maps to invitation_email, optional)

Example: alex@acme.com
customQrStringstring · nullableRequired

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
checkInTokenstring · nullableRequired

System check-in token, read-only (from check_in_token, ignored on write)

Example: ci_9f3k2a1b
namestring · nullableRequiredExample: Alex Chen
firstNamestring · nullableRequiredExample: Alex
lastNamestring · nullableRequiredExample: Chen
jobTitlestring · nullableRequiredExample: Engineer
organizationstring · nullableRequiredExample: Acme Inc
citystring · nullableRequiredExample: Hong Kong
countrystring · nullableRequiredExample: HK
areaCodestring · nullableRequiredExample: 852
contactNostring · nullableRequiredExample: 98765432
roleTagsanyOptionalExample: ["visitor"]
customFieldsanyOptional
approvalStatusstring · nullableRequiredExample: waitlisted
registrationStatusstring · nullableRequiredExample: pending
suspendStatusstringRequiredExample: none
createdAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
updatedAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
post/v2/events/{eventId}/attendees
POST /v2/events/{eventId}/attendees HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "name": "Alex Chen"
}
{
  "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
  "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "checkInToken": "ci_9f3k2a1b",
  "name": "Alex Chen",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "roleTags": [
    "visitor"
  ],
  "customFields": {},
  "approvalStatus": "waitlisted",
  "registrationStatus": "pending",
  "suspendStatus": "none",
  "createdAt": "2026-08-17T08:28:35.429Z",
  "updatedAt": "2026-08-17T08:28:35.429Z",
  "addOns": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
      "qty": 1,
      "selectionStatus": "waitlisted",
      "confirmedAt": null,
      "createdAt": "2026-08-17T08:28:35.518Z",
      "updatedAt": "2026-08-17T09:36:09.620Z"
    }
  ]
}

Get attendee by ID

get

Get single attendee by UUID — token must be scoped to its event/org.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

attendeeIdstring · uuidRequired

Attendee UUID

Responses
200

Attendee

application/json

Attendee row — scoped by organizer_api_token (Org or Event, not user). Token permissions: read allows GET, write allows all. See info.description for full token scope.

idstring · uuidRequired

Attendee ID, UUID

Example: 6daeaa1f-f82f-4068-a8b2-712894b00184
eventIdstring · uuidRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
externalIdstring · nullableRequired

Provider external ID, scoped by event (UNIQUE(event_id, externalId))

Example: ext_123
emailstring · nullableRequired

Contact email (maps to invitation_email, optional)

Example: alex@acme.com
customQrStringstring · nullableRequired

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
checkInTokenstring · nullableRequired

System check-in token, read-only (from check_in_token, ignored on write)

Example: ci_9f3k2a1b
namestring · nullableRequiredExample: Alex Chen
firstNamestring · nullableRequiredExample: Alex
lastNamestring · nullableRequiredExample: Chen
jobTitlestring · nullableRequiredExample: Engineer
organizationstring · nullableRequiredExample: Acme Inc
citystring · nullableRequiredExample: Hong Kong
countrystring · nullableRequiredExample: HK
areaCodestring · nullableRequiredExample: 852
contactNostring · nullableRequiredExample: 98765432
roleTagsanyOptionalExample: ["visitor"]
customFieldsanyOptional
approvalStatusstring · nullableRequiredExample: waitlisted
registrationStatusstring · nullableRequiredExample: pending
suspendStatusstringRequiredExample: none
createdAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
updatedAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
get/v2/events/{eventId}/attendees/{attendeeId}
GET /v2/events/{eventId}/attendees/{attendeeId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
  "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "checkInToken": "ci_9f3k2a1b",
  "name": "Alex Chen",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "roleTags": [
    "visitor"
  ],
  "customFields": {},
  "approvalStatus": "waitlisted",
  "registrationStatus": "pending",
  "suspendStatus": "none",
  "createdAt": "2026-08-17T08:28:35.429Z",
  "updatedAt": "2026-08-17T08:28:35.429Z",
  "addOns": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
      "qty": 1,
      "selectionStatus": "waitlisted",
      "confirmedAt": null,
      "createdAt": "2026-08-17T08:28:35.518Z",
      "updatedAt": "2026-08-17T09:36:09.620Z"
    }
  ]
}

Update attendee

patch

Update attendee — identified by either attendeeId (this route) or externalId (via the by-external route); one of the two is required. Supply externalId/customQrString/email etc. checkInToken ignored (read-only). Requires write permission.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

attendeeIdstring · uuidRequired

Attendee UUID

Body

Partial update — at least one field, checkInToken ignored (read-only). customFields are merged, not replaced.

externalIdstring · max: 100OptionalExample: ext_123
emailstring · email · max: 254OptionalExample: alex_new@acme.com
customQrStringstring · max: 500OptionalExample: UPDATED-QR-999
namestring · max: 500OptionalExample: Alex Updated
firstNamestring · max: 500OptionalExample: Alex
lastNamestring · max: 500OptionalExample: Chen
jobTitlestring · max: 500OptionalExample: Engineer
organizationstring · max: 500OptionalExample: Acme Inc
citystring · max: 50OptionalExample: Hong Kong
countrystring · max: 50OptionalExample: HK
areaCodestring · max: 50OptionalExample: 852
contactNostring · max: 50OptionalExample: 98765432
roleTagsstring[]Optional

Replaces visible role tags. Defaults to ["visitor"] on create when omitted; omitted on PATCH leaves tags unchanged.

Example: ["visitor"]
Responses
200

Updated

application/json

Attendee row — scoped by organizer_api_token (Org or Event, not user). Token permissions: read allows GET, write allows all. See info.description for full token scope.

idstring · uuidRequired

Attendee ID, UUID

Example: 6daeaa1f-f82f-4068-a8b2-712894b00184
eventIdstring · uuidRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
externalIdstring · nullableRequired

Provider external ID, scoped by event (UNIQUE(event_id, externalId))

Example: ext_123
emailstring · nullableRequired

Contact email (maps to invitation_email, optional)

Example: alex@acme.com
customQrStringstring · nullableRequired

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
checkInTokenstring · nullableRequired

System check-in token, read-only (from check_in_token, ignored on write)

Example: ci_9f3k2a1b
namestring · nullableRequiredExample: Alex Chen
firstNamestring · nullableRequiredExample: Alex
lastNamestring · nullableRequiredExample: Chen
jobTitlestring · nullableRequiredExample: Engineer
organizationstring · nullableRequiredExample: Acme Inc
citystring · nullableRequiredExample: Hong Kong
countrystring · nullableRequiredExample: HK
areaCodestring · nullableRequiredExample: 852
contactNostring · nullableRequiredExample: 98765432
roleTagsanyOptionalExample: ["visitor"]
customFieldsanyOptional
approvalStatusstring · nullableRequiredExample: waitlisted
registrationStatusstring · nullableRequiredExample: pending
suspendStatusstringRequiredExample: none
createdAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
updatedAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
patch/v2/events/{eventId}/attendees/{attendeeId}
PATCH /v2/events/{eventId}/attendees/{attendeeId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 366

{
  "externalId": "ext_123",
  "email": "alex_new@acme.com",
  "customQrString": "UPDATED-QR-999",
  "name": "Alex Updated",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "customFields": {
    "7180eec9-e955-462a-bfd2-ed75d37169d2": {
      "value": "Patched"
    }
  },
  "roleTags": [
    "visitor"
  ]
}
{
  "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
  "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "checkInToken": "ci_9f3k2a1b",
  "name": "Alex Chen",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "roleTags": [
    "visitor"
  ],
  "customFields": {},
  "approvalStatus": "waitlisted",
  "registrationStatus": "pending",
  "suspendStatus": "none",
  "createdAt": "2026-08-17T08:28:35.429Z",
  "updatedAt": "2026-08-17T08:28:35.429Z",
  "addOns": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
      "qty": 1,
      "selectionStatus": "waitlisted",
      "confirmedAt": null,
      "createdAt": "2026-08-17T08:28:35.518Z",
      "updatedAt": "2026-08-17T09:36:09.620Z"
    }
  ]
}

Get attendee by externalId

get

Get attendee by provider externalId scoped by event — use after creating with externalId (ext_123). Token must be scoped to event/org.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

externalIdstringRequired

Provider external ID, scoped by event

Example: ext_123
Responses
200

Attendee

application/json

Attendee row — scoped by organizer_api_token (Org or Event, not user). Token permissions: read allows GET, write allows all. See info.description for full token scope.

idstring · uuidRequired

Attendee ID, UUID

Example: 6daeaa1f-f82f-4068-a8b2-712894b00184
eventIdstring · uuidRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
externalIdstring · nullableRequired

Provider external ID, scoped by event (UNIQUE(event_id, externalId))

Example: ext_123
emailstring · nullableRequired

Contact email (maps to invitation_email, optional)

Example: alex@acme.com
customQrStringstring · nullableRequired

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
checkInTokenstring · nullableRequired

System check-in token, read-only (from check_in_token, ignored on write)

Example: ci_9f3k2a1b
namestring · nullableRequiredExample: Alex Chen
firstNamestring · nullableRequiredExample: Alex
lastNamestring · nullableRequiredExample: Chen
jobTitlestring · nullableRequiredExample: Engineer
organizationstring · nullableRequiredExample: Acme Inc
citystring · nullableRequiredExample: Hong Kong
countrystring · nullableRequiredExample: HK
areaCodestring · nullableRequiredExample: 852
contactNostring · nullableRequiredExample: 98765432
roleTagsanyOptionalExample: ["visitor"]
customFieldsanyOptional
approvalStatusstring · nullableRequiredExample: waitlisted
registrationStatusstring · nullableRequiredExample: pending
suspendStatusstringRequiredExample: none
createdAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
updatedAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
get/v2/events/{eventId}/attendees/by-external/{externalId}
GET /v2/events/{eventId}/attendees/by-external/{externalId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
  "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "checkInToken": "ci_9f3k2a1b",
  "name": "Alex Chen",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "roleTags": [
    "visitor"
  ],
  "customFields": {},
  "approvalStatus": "waitlisted",
  "registrationStatus": "pending",
  "suspendStatus": "none",
  "createdAt": "2026-08-17T08:28:35.429Z",
  "updatedAt": "2026-08-17T08:28:35.429Z",
  "addOns": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
      "qty": 1,
      "selectionStatus": "waitlisted",
      "confirmedAt": null,
      "createdAt": "2026-08-17T08:28:35.518Z",
      "updatedAt": "2026-08-17T09:36:09.620Z"
    }
  ]
}

Update attendee by externalId

patch

Update attendee by externalId — identified by either externalId (this route) or attendeeId (via the by-attendee-id route); one of the two is required. Idempotent. Supply customQrString/email etc. checkInToken ignored. Use after creation with externalId.

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

externalIdstringRequired

Provider external ID, scoped by event

Example: ext_123
Body

Partial update — at least one field, checkInToken ignored (read-only). customFields are merged, not replaced.

externalIdstring · max: 100OptionalExample: ext_123
emailstring · email · max: 254OptionalExample: alex_new@acme.com
customQrStringstring · max: 500OptionalExample: UPDATED-QR-999
namestring · max: 500OptionalExample: Alex Updated
firstNamestring · max: 500OptionalExample: Alex
lastNamestring · max: 500OptionalExample: Chen
jobTitlestring · max: 500OptionalExample: Engineer
organizationstring · max: 500OptionalExample: Acme Inc
citystring · max: 50OptionalExample: Hong Kong
countrystring · max: 50OptionalExample: HK
areaCodestring · max: 50OptionalExample: 852
contactNostring · max: 50OptionalExample: 98765432
roleTagsstring[]Optional

Replaces visible role tags. Defaults to ["visitor"] on create when omitted; omitted on PATCH leaves tags unchanged.

Example: ["visitor"]
Responses
200

Updated

application/json

Attendee row — scoped by organizer_api_token (Org or Event, not user). Token permissions: read allows GET, write allows all. See info.description for full token scope.

idstring · uuidRequired

Attendee ID, UUID

Example: 6daeaa1f-f82f-4068-a8b2-712894b00184
eventIdstring · uuidRequired

Event ID

Example: aaff0556-85b5-4ac4-a484-486c7f319c08
externalIdstring · nullableRequired

Provider external ID, scoped by event (UNIQUE(event_id, externalId))

Example: ext_123
emailstring · nullableRequired

Contact email (maps to invitation_email, optional)

Example: alex@acme.com
customQrStringstring · nullableRequired

Custom QR string (maps to customCheckInToken, writable)

Example: WELCOME-2026-QR-A1B2C3
checkInTokenstring · nullableRequired

System check-in token, read-only (from check_in_token, ignored on write)

Example: ci_9f3k2a1b
namestring · nullableRequiredExample: Alex Chen
firstNamestring · nullableRequiredExample: Alex
lastNamestring · nullableRequiredExample: Chen
jobTitlestring · nullableRequiredExample: Engineer
organizationstring · nullableRequiredExample: Acme Inc
citystring · nullableRequiredExample: Hong Kong
countrystring · nullableRequiredExample: HK
areaCodestring · nullableRequiredExample: 852
contactNostring · nullableRequiredExample: 98765432
roleTagsanyOptionalExample: ["visitor"]
customFieldsanyOptional
approvalStatusstring · nullableRequiredExample: waitlisted
registrationStatusstring · nullableRequiredExample: pending
suspendStatusstringRequiredExample: none
createdAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
updatedAtstring · nullableRequiredExample: 2026-08-17T08:28:35.429Z
patch/v2/events/{eventId}/attendees/by-external/{externalId}
PATCH /v2/events/{eventId}/attendees/by-external/{externalId} HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 366

{
  "externalId": "ext_123",
  "email": "alex_new@acme.com",
  "customQrString": "UPDATED-QR-999",
  "name": "Alex Updated",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "customFields": {
    "7180eec9-e955-462a-bfd2-ed75d37169d2": {
      "value": "Patched"
    }
  },
  "roleTags": [
    "visitor"
  ]
}
{
  "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
  "eventId": "aaff0556-85b5-4ac4-a484-486c7f319c08",
  "externalId": "ext_123",
  "email": "alex@acme.com",
  "customQrString": "WELCOME-2026-QR-A1B2C3",
  "checkInToken": "ci_9f3k2a1b",
  "name": "Alex Chen",
  "firstName": "Alex",
  "lastName": "Chen",
  "jobTitle": "Engineer",
  "organization": "Acme Inc",
  "city": "Hong Kong",
  "country": "HK",
  "areaCode": "852",
  "contactNo": "98765432",
  "roleTags": [
    "visitor"
  ],
  "customFields": {},
  "approvalStatus": "waitlisted",
  "registrationStatus": "pending",
  "suspendStatus": "none",
  "createdAt": "2026-08-17T08:28:35.429Z",
  "updatedAt": "2026-08-17T08:28:35.429Z",
  "addOns": [
    {
      "id": "6daeaa1f-f82f-4068-a8b2-712894b00184",
      "addOnId": "473ed8f7-deae-4bee-bb32-eafd860aebe4",
      "qty": 1,
      "selectionStatus": "waitlisted",
      "confirmedAt": null,
      "createdAt": "2026-08-17T08:28:35.518Z",
      "updatedAt": "2026-08-17T09:36:09.620Z"
    }
  ]
}

Bulk upsert attendees

post

Bulk upsert 1-50 attendees — upsert key externalId if present else email (no unique on email, app-level fallback). Each item independent, partial success allowed. Requires organizer_api_token write, org/event scoped. Fits bodyLimit 1MB and rateLimit 60/60s. Per-item autonomous, idempotent via UNIQUE(event_id, externalId).

Authorizations
AuthorizationstringRequired

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

Path parameters
eventIdstring · uuidRequired

Event UUID

Body

Bulk upsert — upsert key externalId if present else email. Each item independent, idempotent. Requires organizer_api_token write, org/event scoped.

Responses
200

Per-item results

application/json
post/v2/events/{eventId}/attendees/bulk-upsert
POST /v2/events/{eventId}/attendees/bulk-upsert HTTP/1.1
Host: api.eventx.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "attendees": [
    {
      "externalId": "ext_123",
      "email": "alex@acme.com",
      "customQrString": "QR-A",
      "name": "Alex"
    },
    {
      "email": "bob@acme.com",
      "name": "Bob"
    }
  ]
}
{
  "results": [
    {
      "index": 0,
      "attendeeId": "a1b2c3d4-...",
      "externalId": "ext_123",
      "status": "created",
      "error": {
        "code": "ERR_PUBLIC_API_VALIDATION_ERROR",
        "message": "externalId or email required"
      }
    }
  ]
}

Last updated