Promo Codes
Access promotional discount codes.
List Promo Codesโ
GET /v1/promo-codes
Authenticationโ
Requires an API key with the promotions:read scope.
Query Parametersโ
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 15 | Items per page (max 100) |
status | string | - | Filter by status: active, inactive, expired |
Response (200 OK)โ
{
"data": [
{
"id": 1,
"code": "SUMMER25",
"name": "Summer Sale",
"description": "25% off all summer rentals",
"discount_type": "percentage",
"discount_value": 25.00,
"min_booking_amount": 50.00,
"max_discount_amount": 100.00,
"valid_from": "2026-01-01T00:00:00+00:00",
"valid_until": "2026-03-31T23:59:59+00:00",
"expires_on": "2026-03-31",
"max_uses": 100,
"max_uses_per_customer": 1,
"uses_count": 45,
"apply_to_all_products": true,
"apply_to_all_experiences": true,
"status": "active",
"created_at": "2025-12-15T00:00:00+00:00",
"updated_at": "2026-01-15T10:30:00+00:00"
},
{
"id": 2,
"code": "WELCOME10",
"name": "New Customer Discount",
"description": "$10 off first booking",
"discount_type": "flat",
"discount_value": 10.00,
"min_booking_amount": null,
"max_discount_amount": null,
"valid_from": "2025-01-01T00:00:00+00:00",
"valid_until": null,
"expires_on": null,
"max_uses": null,
"max_uses_per_customer": 1,
"uses_count": 230,
"apply_to_all_products": true,
"apply_to_all_experiences": true,
"status": "active",
"created_at": "2025-01-01T00:00:00+00:00",
"updated_at": "2026-01-10T08:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 5,
"total_pages": 1,
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}
Response Fieldsโ
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier |
code | string | Promo code (e.g., "SUMMER25") |
name | string | Display name |
description | string|null | Description |
discount_type | string | percentage or flat |
discount_value | float | Discount amount or percentage |
min_booking_amount | float|null | Minimum booking amount required |
max_discount_amount | float|null | Maximum discount cap (for percentage) |
valid_from | string|null | Start date (ISO 8601) |
valid_until | string|null | The moment the code stops working (ISO 8601, UTC) |
expires_on | string|null | The last day the code works (YYYY-MM-DD), in the business's own timezone. Show this date to people; the UTC date of valid_until can be a day off. |
max_uses | integer|null | Total usage limit |
max_uses_per_customer | integer|null | Per-customer usage limit |
uses_count | integer | Current usage count |
apply_to_all_products | boolean | Applies to all products |
apply_to_all_experiences | boolean | Applies to all experiences |
status | string | active, inactive, or expired |
created_at | string | ISO 8601 datetime |
updated_at | string | ISO 8601 datetime |
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks promotions:read scope |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/promo-codes?status=active" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."