The Passes API returns the pass catalogue โ the credit packages available for purchase. For customer-scoped pass purchases, see Customers โ Passes.
All endpoints require the passes:read scope.
List passes
GET /passes
Returns all active passes for the company. Deleted passes are excluded.
No pagination โ passes are a small catalogue.
Example response
{
"data": [
{
"id": "pass_5",
"type": "pass",
"name": "10-Class Pass",
"description": "Valid for 10 classes of any type",
"base100_price": 5000,
"credits": 10,
"start_mode": "ON_PURCHASE",
"validity": {
"period": 3,
"unit": "MONTHS"
},
"subscriptions_only": false,
"purchase_limit": null,
"created_at": "2025-01-15T10:00:00"
}
]
}
Get a single pass
GET /pass/{id}
Retrieve a single pass by ID. Returns the pass even if deleted (when requested by ID explicitly).
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Pass ID (e.g. pass_5) |
Example response
{
"data": {
"id": "pass_5",
"type": "pass",
"name": "10-Class Pass",
"description": "Valid for 10 classes of any type",
"base100_price": 5000,
"credits": 10,
"start_mode": "ON_PURCHASE",
"validity": {
"period": 3,
"unit": "MONTHS"
},
"subscriptions_only": false,
"purchase_limit": 2,
"created_at": "2025-01-15T10:00:00"
}
}
Error responses
| Status | Condition |
|---|---|
| 403 | Missing passes:read scope |
| 404 | Pass ID does not exist for this company |
Active purchases for a pass
GET /pass/{id}/packages
List all active, non-expired pass purchases for a given pass template, including the customer who owns each purchase and their remaining credits.
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Pass ID (e.g. pass_5) |
Example response
{
"data": {
"pass_id": "pass_1",
"pass_name": "Gold member",
"active_passes": [
{
"id": "pkg_2291",
"type": "pass_purchase",
"customer": {
"id": "cust_1068",
"type": "customer",
"firstname": "Jane",
"lastname": "Smith",
"email": "jane@example.com"
},
"credits_total": 999,
"credits_remaining": 996,
"starts": "2025-03-24T15:59:21",
"expires": "2026-03-24T08:00:00",
"created_at": "2025-03-24T15:59:21"
}
]
}
}
Pass purchase fields
| Field | Type | Description |
|---|---|---|
id | string | Purchase ID (prefixed with pkg_) |
type | string | Always "pass_purchase" |
customer | object | Customer who owns the purchase |
customer.id | string | Customer ID (prefixed with cust_) |
credits_total | number | Total credits allocated on the pass |
credits_remaining | number | Credits remaining (total minus event bookings and video purchases) |
starts | string or null | When the pass validity started |
expires | string or null | Expiry datetime, or null if no expiry |
created_at | string | ISO 8601 datetime |
Only active purchases are returned โ deleted, voided, and expired purchases are excluded.
Error responses
| Status | Condition |
|---|---|
| 403 | Missing passes:read scope |
| 404 | Pass ID does not exist for this company |
Field reference
| Field | Type | Description |
|---|---|---|
id | string | Prefixed pass ID (e.g. pass_5) |
type | string | Always "pass" |
name | string | Pass name |
description | string | Pass description |
base100_price | number | Price in smallest currency unit (e.g. 5000 = 50.00) |
credits | number | Number of credits included in the pass |
start_mode | string | When the pass validity begins: "ON_PURCHASE" or "ON_FIRST_EVENT" |
validity.period | number | Validity duration |
validity.unit | string | Validity unit: "DAYS", "MONTHS", or "YEARS" |
subscriptions_only | boolean | If true, pass can only be purchased by subscribers |
purchase_limit | number or null | Maximum purchases per customer, or null if unlimited |
created_at | string | ISO 8601 datetime |
Caching
All endpoints are cached for 5 minutes. See Scopes, Rate Limits, Caching & Errors for details.
