Jobs

Add, update, or cancel up to 1,000 imported tickets

Sends ticket rows from your own ticketing system to one event, with the same rules as a file import in the app. Requires the tickets:import scope (public_api alone is not enough). Each row is matched by reference: a new reference creates a ticket and needs a name (name, or firstName and lastName) and a ticketType; a reference that already exists may carry only what changed. Rows not in the request are left alone. The event must be activated and set up for imported tickets, and only one import runs per event at a time. Up to 100 tickets are applied inside the request and answer 200 with the job already completed; 101 to 1,000 tickets answer 202 Accepted with a statusUrl (also sent as the Location header) to poll at GET /api/v1/jobs/{id}. Rows fail independently: a row problem counts toward result.failed and is listed in result.errors (first 50) without stopping the other rows. Whole-request problems (an unreadable body, a bad field type, duplicate or too-short scanKey values, more than 50 ticket types) answer 400 and nothing is imported. Besides the per-key limit, each event accepts 12 ticket import requests per minute. With an Idempotency-Key, a repeat of the same request returns the original response (status, body, and Location) with Idempotent-Replay: true, not current progress; poll statusUrl for that.

post/api/v1/imports/tickets

Request

  • Base URL: https://api.agendaforge.app
  • URL: https://api.agendaforge.app/api/v1/imports/tickets
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Headers

Idempotency-Keystring

Optional key for safe retries, retained for 24 hours. Repeating the same request on the same endpoint returns the original response and sets Idempotent-Replay: true. Reusing the key on a different endpoint returns 409.

Request body

eventIdstring required

The event to import into; must be owned by the key's organization, activated, and set up for imported tickets.

confirmCheckedInCancelsboolean

A ticket that has already been checked in is cancelled or refunded only when this is true. Otherwise that row fails with the checked_in code.

Response

Up to 100 tickets: the import finished inside the request. The job is completed and result carries the final counts.

jobIdstring required

Opaque job id.

type'tickets_import' required
status'pending' | 'processing' | 'completed' | 'failed' required

completed in a 200 response; pending in a 202 response. Terminal states are completed and failed; keep polling until one is reached.

totalinteger required

Tickets in the request.

statusUrlstring uri required

Poll this URL (GET, a key with tickets:import) for progress.

Changes

No recorded changes to this operation across all 1 revision of this API.