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 → Settings → API 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.
| Action | Who | Result |
|---|---|---|
| Create key | Org admin | One-time secret (qkt_live_...) |
| List keys | Org admin | Name, prefix, created date, last used, active/revoked |
| Revoke key | Org admin | Key stops working immediately |
You can have up to 10 active keys per organization.
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
| Query | Default | Max | Description |
|---|---|---|---|
page | 1 | — | Page number |
page_size | 50 | 100 | Items per page |
status | — | — | Optional: 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).
| Query | Default | Max | Description |
|---|---|---|---|
page | 1 | — | Page number |
page_size | 100 | 500 | Items per page |
search | — | — | Name, email, phone, or reference |
category_id | — | — | Ticket category ID |
scanned | — | — | true or false (check-in filter) |
promo | — | — | true 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
| Endpoint | Limit |
|---|---|
GET /integrations/events | 60 requests per minute per key |
GET /integrations/events/.../attendees | 30 requests per minute per key |
Errors
| Status | Meaning |
|---|---|
401 | Missing, invalid, or revoked API key |
404 | Event not found for this organization |
429 | Rate 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
Related docs
- Organization Settings — where API keys are managed
- Attendees & Passes — dashboard equivalent for attendee data
- Attendee Insights — cross-event audience CRM (not exposed via this API in v1)