QuicketQuicket Help
Organizers

Integrations API

Connect external systems to sync events, attendees, promo passes, and coupons with organization API keys

Integrations API

The Integrations API is an 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:

Read access: list events and export attendees.

Write access (optional per key): create and update events, generate promo passes, and create coupons.

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
  • Path: /organizations/<org-slug>/settings

When you create a key, choose which scopes the integration needs. The full secret is shown once.

ScopeAllows
Read events and attendeesAlways included
Read event detail, categories, couponsevents:read
Create and update eventsevents:write
Generate promo passespasses:write
Create couponscoupons:write
ActionWhoResult
Create keyOrg adminOne-time secret (qkt_live_...) with chosen scopes
List keysOrg adminName, prefix, scopes, dates, active/revoked
Revoke keyOrg adminKey stops working immediately

You can have up to 10 active keys per organization.

:::warning 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

Authorization: Bearer qkt_live_<prefix>_<secret>

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


Read endpoints

List events

GET /v2/integrations/events — requires read.

List attendees

GET /v2/integrations/events/{event_slug}/attendees — requires read.

Event detail

GET /v2/integrations/events/{event_slug} — requires events:read.

Categories

GET /v2/integrations/events/{event_slug}/categories — requires events:read. Use category IDs for pass and coupon APIs.

Coupons list

GET /v2/integrations/events/{event_slug}/coupons — requires events:read.


Write endpoints

Create event

POST /v2/integrations/events — requires events:write. Always creates a draft (not published).

Update event

  • PATCH /v2/integrations/events/{event_slug}/information — title, dates, venue
  • PATCH /v2/integrations/events/{event_slug}/settings — registration flags, publish

Publish an event

  1. Create the event (draft)
  2. POST /v2/integrations/events/{slug}/accept-terms with the current terms version
  3. Set status to approved (when your org allows it)
  4. PATCH .../settings with {"published": true}

Generate promo passes

POST /v2/integrations/events/{event_slug}/passes — requires passes:write.

Passes created through the API are always promo (complimentary). They appear in the attendee list with promo: true, consume ticket capacity, and do not count as paid revenue.

{
  "passes": [
    {
      "name": "Guest",
      "email": "guest@example.com",
      "categoryId": 1,
      "quantity": 1
    }
  ],
  "sendEmail": false
}

Optional: POST .../passes/send-email to queue pass delivery emails.

Create coupon

POST /v2/integrations/events/{event_slug}/coupons — requires coupons:write.

{
  "code": "VIP20",
  "discountValue": 20,
  "discountIsPercentage": true,
  "categoryIds": [1],
  "expirationDays": 60
}

Rate limits

TrafficLimit per key
Event list (GET)60 / minute
Attendees (GET)30 / minute
Writes (POST/PATCH)20 / minute

Errors

StatusMeaning
401Invalid or revoked key
403Key missing scope for this endpoint
404Event not in your organization
429Rate limit; retry after 60 seconds

Full technical reference: repo docs/INTEGRATIONS_API.md.

On this page