Skip to main content
This walkthrough runs the whole flow with curl. You need a key (generate one) and your API host:
1

1 — Create an event

The event is born draft — invisible to the public until you publish it. 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 born draft too. Opening is a status change:
4

4 — Watch remaining seats

held counts seats inside live order holds from the public checkout. The numbers are advisory — the binding check still happens at registration time, so you can never oversell by reading a stale value.
5

5 — Register an attendee

201 with "created": true — and note the registration’s checkinCode, the badge credential. Registering the same email again answers 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 answers 200 with "alreadyCheckedIn": true — acknowledged, not an error.

What you just exercised

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

Endpoint reference

Everything else: codes, add-ons, bundles, orders, errors, limits.

Ticket types

Capacity, waitlists, approval mode and visibility, explained.