curl --request POST \
--url https://public-api.sessionboard.com/v1/event/{eventId}/check-ins \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"badge_code": "sb-checkin:5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a"
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"company": "<string>",
"job_title": "<string>",
"ticket_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"registrant_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"checked_in_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"already_checked_in": true
}
}Check someone in
Record that a person arrived — from a partner’s scanner, kiosk or door app. Name the registration one of three ways, in this order of precedence:
registration_id— the registration’s ID.email— the registrant’s email, among registrations that areconfirmed,checked_in,pending_approvalorwaitlisted.badge_code— the code scanned from the attendee’s QR: thesb-checkin:<id>code in the confirmation email, or the code on a printed or in-app badge.
A confirmed, pending_approval or waitlisted registration becomes checked_in,
with checked_in_at set to checked_in_at from the request or now.
Idempotent. Checking in someone already checked in changes nothing and answers
200 with already_checked_in: true; the original checked_in_at stays.
A registration in any other status (canceled, declined, transferred,
incomplete, no_show) is not checked in and answers 409 CONFLICT with
details.reason: wrong_status and the registration’s status in details.status.
Recorded in the event’s History as an API change. Requires write:registrations.
curl --request POST \
--url https://public-api.sessionboard.com/v1/event/{eventId}/check-ins \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"badge_code": "sb-checkin:5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a"
}
'{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"company": "<string>",
"job_title": "<string>",
"ticket_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"registrant_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"checked_in_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"already_checked_in": true
}
}Authorizations
Organization API token. Generate from Organization Settings → API Tokens.
Path Parameters
Event ID
Body
Send one of registration_id, email or badge_code.
Takes precedence over email and badge_code. A value that is not a UUID is ignored.
Used when there is no registration_id. Case-insensitive.
The scanned code — sb-checkin:<registration id> from the confirmation email, or a printed or in-app badge code. Used when neither of the others is sent.
When the person arrived, for scans uploaded later. Defaults to now; ignored if it is not a date.
Response
Already checked in — nothing changed (already_checked_in: true).
Short registration shape used by List attendees, List check-ins and Check someone in.
Show child attributes
Show child attributes

