Get Series
Retrieve a single series with all its sessions and the aggregated payment totals.
Endpointโ
GET /v1/series/{id}
Authenticationโ
Requires a live or test API key with series:read scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Series ID |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/series/1" \
-H "Authorization: Bearer YOUR_API_KEY"
Responseโ
Success (200 OK)โ
{
"data": {
"id": 1,
"name": "Intro Course โ Tuesday Group",
"experience": {
"id": 12,
"name": "Intro Course"
},
"group": {
"id": 7,
"name": "Tuesday Group"
},
"billing_mode": "consolidated",
"status": "active",
"pricing_type": "fixed",
"pricing": [
{ "rate_category_id": 3, "label": "Adult", "price": 150.00 },
{ "rate_category_id": 4, "label": "Child", "price": 90.00 }
],
"image_url": "https://cdn.equipdash.com/suppliers/5/programs/fall-program.jpg",
"collage_image_urls": [
"https://cdn.equipdash.com/suppliers/5/experiences/intro-course.jpg"
],
"totals": {
"total": 450.00,
"paid": 150.00,
"balance": 300.00
},
"extras": [
{ "id": 31, "name": "Gear hire", "price": 25.00, "per_person": true }
],
"sessions": [
{
"id": 101,
"session_index": 1,
"schedule": {
"id": 501,
"start_datetime_utc": "2026-09-01T17:00:00Z",
"end_datetime_utc": "2026-09-01T18:30:00Z"
},
"booking": {
"id": 9001,
"status": "confirmed",
"payment_status": "paid"
},
"created_at": "2026-07-20T10:00:00Z",
"updated_at": "2026-07-20T10:00:00Z"
},
{
"id": 102,
"session_index": 2,
"schedule": {
"id": 502,
"start_datetime_utc": "2026-09-08T17:00:00Z",
"end_datetime_utc": "2026-09-08T18:30:00Z"
},
"booking": {
"id": 9002,
"status": "confirmed",
"payment_status": "pending"
},
"created_at": "2026-07-20T10:00:00Z",
"updated_at": "2026-07-20T10:00:00Z"
},
{
"id": 103,
"session_index": 3,
"schedule": {
"id": 503,
"start_datetime_utc": "2026-09-15T17:00:00Z",
"end_datetime_utc": "2026-09-15T18:30:00Z"
},
"booking": {
"id": 9003,
"status": "confirmed",
"payment_status": "pending"
},
"created_at": "2026-07-20T10:00:00Z",
"updated_at": "2026-07-20T10:00:00Z"
}
],
"created_at": "2026-07-20T10:00:00Z",
"updated_at": "2026-07-20T10:00:00Z"
},
"meta": {
"request_id": "req_abc123"
}
}
Response Fieldsโ
| Field | Type | Description |
|---|---|---|
id | integer | Series ID |
name | string | Series name (defaults to "<Group> โ <Activity>" when not set at creation) |
experience | object | The experience the sessions belong to (id, name) |
group | object | The saved group enrolled in every session (id, name) |
billing_mode | string | per_session or consolidated - legacy, see the Series overview |
status | string | active or cancelled |
pricing_type | string | sum (add up all sessions) or fixed โ see Pricing |
pricing | array | The program's fixed-rate rows. Per rate type: one row per rate category (rate_category_id, label, price). Group pricing: a single row with label plus the group fields (group_price, max_group_size, price_per_participant, per_participant_included). Empty for sum pricing. |
pricing[].label | string | Display label of the rate row (e.g. Adult, Child) |
image_url | string|null | Uploaded program image URL; null when no image was uploaded |
collage_image_urls | array | Image URLs of the included activities โ used for a collage display when image_url is null |
totals | object | Aggregated money across all session bookings, in the supplier's currency. Present on show, create, and cancel responses only โ not in list responses. |
totals.total | float | Sum of all session booking totals |
totals.paid | float | Sum paid across all session bookings |
totals.balance | float | Outstanding balance (total - paid) |
extras | array | Add-ons sold with the program, each charged once for the whole program. Pass them to Enroll as extras. Present on show responses only. |
extras[].id | integer | The add-on's ID |
extras[].name | string | The add-on's name |
extras[].price | float|null | Price for one, or null when staff set the price on each booking |
extras[].per_person | boolean | true when it is charged per person (one each, up to the number enrolling) |
sessions | array | The sessions in chronological order |
sessions[].id | integer | Series-session ID (used for Cancel Session) |
sessions[].session_index | integer | 1-based position of the session within the series |
sessions[].schedule | object | The underlying schedule slot (id, start_datetime_utc, end_datetime_utc) โ always absolute UTC instants |
sessions[].booking | object | The real booking behind this session (id, status, payment_status) |
created_at | string | Creation timestamp (UTC) |
updated_at | string | Last update timestamp (UTC) |
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 403 | insufficient_scope | API key lacks series:read scope |
| 403 | forbidden | Series belongs to a different supplier |
| 404 | resource_not_found | Series does not exist |