Skip to main content

Integrations API

The Integrations API is a read-only HTTP API for connecting external systems (CRM, data warehouse, custom dashboards, onsite tools) to your Quicket organization. Each key is scoped to one organization and can:

  • List your organization's events
  • Export paginated attendee (ticket holder) data for a specific event

This is separate from the Widget Integration embed, which lets visitors buy tickets on your website.

Where to manage keys

Organization admins create and revoke keys in the dashboard:

  • Location: Organization dashboard → SettingsAPI keys section
  • Path: /organizations/<org-slug>/settings

When you create a key, the full secret is shown once. Copy and store it securely; Quicket cannot show it again.

ActionWhoResult
Create keyOrg adminOne-time secret (qkt_live_...)
List keysOrg adminName, prefix, created date, last used, active/revoked
Revoke keyOrg adminKey stops working immediately

You can have up to 10 active keys per organization.

Server-to-server only

Use API keys only from your backend or trusted server jobs. Do not embed keys in browser JavaScript, mobile apps, or public repositories.


Authentication

Send the full key on every request:

Authorization: Bearer qkt_live_<prefix>_<secret>
  • Missing, invalid, or revoked keys → 401 Unauthorized
  • Rate limit exceeded → 429 Too Many Requests (retry after 60 seconds)

Base URL:

https://api.quicket.me/v2/integrations

List events

GET /v2/integrations/events?page=1&page_size=50&status=approved
QueryDefaultMaxDescription
page1Page number
page_size50100Items per page
statusOptional: draft, approved, ongoing, finished, etc.

Example

curl -s -H "Authorization: Bearer qkt_live_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyyyyyy" \
"https://api.quicket.me/v2/integrations/events?page=1&page_size=50"

Response fields (per event): id, slug, title, starts, ends, status, published, passCount, revenue.


List event attendees

GET /v2/integrations/events/{event_slug}/attendees

Returns ticket holders for one event (same core data as the dashboard Attendee List, without payment gateway internals).

QueryDefaultMaxDescription
page1Page number
page_size100500Items per page
searchName, email, phone, or reference
category_idTicket category ID
scannedtrue or false (check-in filter)
promotrue or false (complimentary tickets)

Example

curl -s -H "Authorization: Bearer qkt_live_xxxxxxxx_yyyyyyyyyyyyyyyyyyyyyyyyyyyy" \
"https://api.quicket.me/v2/integrations/events/summer-fest/attendees?page=1&page_size=100"

Response fields (per attendee): id, name, email, phone, createdTime, promo, scanned, reference, identifier, category, amount, paid, customFields.

The response also includes eventFields and categoryFields descriptors so your integration can label custom registration columns.

If event_slug does not belong to your organization, the API returns 404 (not 403).


Pagination

For attendees, loop pages until page >= totalPages:

PAGE=1
while true; do
RESP=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://api.quicket.me/v2/integrations/events/my-event/attendees?page=$PAGE&page_size=100")
echo "$RESP" | jq '.items[]'
TOTAL_PAGES=$(echo "$RESP" | jq '.totalPages')
if [ "$PAGE" -ge "$TOTAL_PAGES" ]; then break; fi
PAGE=$((PAGE + 1))
done

Rate limits

EndpointLimit
GET /integrations/events60 requests per minute per key
GET /integrations/events/.../attendees30 requests per minute per key

Errors

StatusMeaning
401Missing, invalid, or revoked API key
404Event not found for this organization
429Rate limit exceeded; wait and retry

Privacy and security

  • Attendee responses include personal data (name, email, phone). Handle them under your privacy policy and applicable law.
  • Revoke keys when an integration is retired.
  • Use HTTPS only.

Typical integration flow

sequenceDiagram
participant CRM as Your system
participant API as Integrations API

CRM->>API: GET /integrations/events
API-->>CRM: event slugs and metadata

loop Each event or on schedule
CRM->>API: GET /integrations/events/{slug}/attendees
API-->>CRM: paginated attendee rows
end