v1

latestOpenAPI 3.1.02026-07-22285495.1 KB
Sessions

Record a session check-in

Marks the attendee identified by the supplied QR code as checked into the given session. Intended for onsite check-in partners (e.g. RFID badge-scan vendors). The QR code may be supplied either as the raw code or as a Zuddl deep-link URL (e.g. https://applink.zuddl.com/link/com.zuddl.portal/{eventId}/profile/{qrCode}); the server extracts the trailing path segment when a URL is supplied. Session attendance is recorded against the user's Zuddl account; if the scanned registration is not yet linked to an account, the request is rejected with 422.

Required API key scopes: WRITE

This API can only be called with an access key that was generated for Backend usage.

post/v1/events/{eventId}/sessions/{sessionId}/attendance/checkin

Path parameters

eventIdstring required

Unique identifier of the event

sessionIdstring required

Unique identifier of the session

Request body

qrCodestring required

QR code identifying the attendee. Accepts either the raw code (e.g. "EAFPSNAB2I") or a Zuddl deep-link URL such as "https://applink.zuddl.com/link/com.zuddl.portal/{eventId}/profile/{qrCode}" — the server extracts the trailing path segment when a URL is supplied.

occurredAtstring date-time

ISO-8601 timestamp of the scan from the partner's device. Defaults to the server time when omitted.

Example request

{
  "qrCode": "EAFPSNAB2I",
  "occurredAt": "2026-06-12T14:33:00Z"
}

Response

Session check-in recorded

registrationIdstring uuid

Resolved registration id for the attendee. Null when the scanned user is a speaker without a registration record.

accountIdstring uuid

Resolved Zuddl account id for the user.

speakerIdstring uuid

Speaker id when the scanned user is a speaker for this event. Null otherwise.

role'ATTENDEE' | 'ORGANIZER' | 'SPEAKER' | 'SPONSOR' | 'MODERATOR'

Resolved role of the scanned user within the event.

action'CHECK_IN' | 'CHECK_OUT'

Action recorded for this scan.

recordedAtstring date-time

Timestamp recorded for the scan (echoes the request occurredAt or the server time used when omitted).

Example response

{
  "registrationId": "4fcebf73-3ddb-4fe6-b56d-5dd7dedb7c3d",
  "accountId": "9e2b6d4a-6c3a-4a7e-8d24-1c2f8a31a812",
  "speakerId": "d812a64f-8865-4289-9024-9a120792c3d8",
  "role": "ATTENDEE",
  "action": "CHECK_IN",
  "recordedAt": "2026-06-12T14:33:00Z"
}