Skip to main content
This walkthrough runs the flow with curl. A key is required (generate one) and the API host:
1

1 — Create an event

The event is created as draft — not public until published. Keep the returned id.
2

2 — Create a ticket type

priceAmount is minor units of the event’s currency — 12000 is ¥120.00 for a CNY event. 0 (or omitting it) makes the ticket free. Keep the returned id.
3

3 — Open the ticket for sale

Ticket types are also created as draft. Opening is a status change:
4

4 — Read remaining seats

held counts seats inside live order holds from public checkout. The numbers are advisory. The binding check still happens at registration time, so a stale read cannot oversell.
5

5 — Register an attendee

201 with "created": true — and note the registration’s checkinCode, the badge credential, and passUrl, the hosted entry-pass page the platform has just emailed them (it asks for their email before opening). Registering the same email again returns 200 with "created": false and the existing registration. Repeats are acknowledged, never duplicated.
6

6 — Approve, if the ticket requires it

On a ticket with approval mode, API registrations land pending. The API records the application. It does not make the admission decision. Decide it explicitly:
7

7 — Check them in

201 records the arrival. Scanning the same badge again returns 200 with "alreadyCheckedIn": true — acknowledged, not an error.

What this covers

  • Draft-first lifecycles — events and ticket types are invisible until opened, same as the console.
  • The capacity gate — when confirmed reaches capacity, the next registration returns 412 (or lands waitlisted if the ticket allows a waitlist).
  • Idempotent repeats — duplicate registrations and duplicate scans acknowledge instead of erroring, so retries are safe.
  • Automations — if this Business Unit has an “attendee added” or check-in automation, these API calls trigger it.

Endpoint reference

Codes, add-ons, bundles, orders, errors, limits.

Ticket types

Capacity, waitlists, approval mode, and visibility.