Sections & Rows
Once you have an event_id from the Discovery API, use these endpoints to retrieve sections and rows for that event. This gives you the data needed to present seat selection to your customer and to build a valid quote request.
All endpoints require a valid Bearer token. See Authentication to get your token.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/events/{event_id}/sections | Get all available sections for an event |
GET | /v1/events/{event_id}/sections/{section_name}/rows | Get all available rows within a section |
1.1 — Get Sections for an Event
Returns all sections for the given event, including whether Ticket Buyback has quotes for that section and whether that section is GA.
Endpoint
GET /v1/events/{event_id}/sections
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id | string | Yes | Event ID from the Discovery API |
Request
curl "https://api.ticketbuyback.com/partner/v1/events/9bab6d6a4b5641931cab9fd942e81242/sections" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
const response = await fetch(
"https://api.ticketbuyback.com/partner/v1/events/9bab6d6a4b5641931cab9fd942e81242/sections",
{
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json",
},
}
);
const { data } = await response.json();
// data = array of available sections
Response — 200 OK
{
"success": true,
"data": [
{
"section_name": "CAB01",
"section_name_display": "CAB01",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CAB02",
"section_name_display": "CAB02",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CAB03",
"section_name_display": "CAB03",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CAB04",
"section_name_display": "CAB04",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CAB05",
"section_name_display": "CAB05",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CENT01",
"section_name_display": "CENT01",
"section_desc": null,
"is_ga": true,
"has_quote": true
},
{
"section_name": "CENT02",
"section_name_display": "CENT02",
"section_desc": null,
"is_ga": true,
"has_quote": true
}
],
"meta": {
"request_id": "e128f539-c58b-423d-9769-721d8905b596",
"timestamp": "2026-03-15T00:51:49Z"
}
}
Response Fields
| Field | Description |
|---|---|
section_name | Section identifier — use this value in the rows endpoint and quote request |
section_name_display | Human-readable label to show your customer |
section_desc | Optional description of the section, or null if not provided |
is_ga | true if this is a General Admission section (no assigned rows or seats) |
has_quote | true if a quote is currently available for this section |
1.2 — Get Rows for a Section
Returns all rows within a specific section for the given event. Not all sections have row data: GA sections usually will return no rows. If no rows are returned, then the quote we have for that section does not vary based on row.
Endpoint
GET /v1/events/{event_id}/sections/{section_name}/rows
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
event_id | string | Yes | Event ID from the Discovery API |
section_name | string | Yes | Section name from the Get Sections response (e.g. CAB01, GA) |
Request
curl "https://api.ticketbuyback.com/partner/v1/events/9bab6d6a4b5641931cab9fd942e81242/sections/CAB01/rows" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
const eventId = "9bab6d6a4b5641931cab9fd942e81242";
const sectionName = "101";
const response = await fetch(
`https://api.ticketbuyback.com/partner/v1/events/${eventId}/sections/${sectionName}/rows`,
{
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json",
},
}
);
const { data } = await response.json();
// data = array of available rows
Response — 200 OK
{
"success": true,
"data": [
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "A",
"row_name_display": "A",
"row_order": 1
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "B",
"row_name_display": "B",
"row_order": 2
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "C",
"row_name_display": "C",
"row_order": 3
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "D",
"row_name_display": "D",
"row_order": 4
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "E",
"row_name_display": "E",
"row_order": 5
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "F",
"row_name_display": "F",
"row_order": 6
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "G",
"row_name_display": "G",
"row_order": 7
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "H",
"row_name_display": "H",
"row_order": 8
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "J",
"row_name_display": "J",
"row_order": 9
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "K",
"row_name_display": "K",
"row_order": 10
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "L",
"row_name_display": "L",
"row_order": 11
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "M",
"row_name_display": "M",
"row_order": 12
},
{
"section_name": "ORCH",
"section_name_display": "ORCH",
"row_name": "N",
"row_name_display": "N",
"row_order": 13
}
],
"meta": {
"request_id": "84dc06ac-9da6-42fe-aab4-06b89fed3db8",
"timestamp": "2026-03-15T01:05:24Z"
}
}
Response Fields
| Field | Description |
|---|---|
section_name | Section identifier this row belongs to |
section_name_display | Human-readable label for the section |
row_name | Row identifier — use this value in the quote request |
row_name_display | Human-readable label to show your customer |
row_order | Numeric sort order of the row within the section, starting at 1 |
row_name is ignored when creating a quote for sections where GA=True.
Error Scenarios
| Scenario | HTTP Status | Error Code |
|---|---|---|
| Missing or invalid Bearer token | 401 | UNAUTHORIZED |
| Token expired | 401 | TOKEN_EXPIRED |
| Event not found | 404 | EVENT_NOT_FOUND |
| Section not found | 404 | SECTION_NOT_FOUND |
| No quote available | 200 | Empty data array |
When there is no quote available for a section or row, the API returns 200 OK with an empty data array — not an error.
Full Seat Selection Flow
Here is a complete example that chains both endpoints to build a seat selector:
async function getSeatOptions(eventId) {
// Step 1 — get all available sections
const sectionsRes = await fetch(
`https://api.ticketbuyback.com/partner/v1/events/${eventId}/sections`,
{ headers: { Authorization: `Bearer ${token}` } }
);
const { data: sections } = await sectionsRes.json();
// Step 2 — get rows for the first section
const firstSection = sections[0];
const rowsRes = await fetch(
`https://api.ticketbuyback.com/partner/v1/events/${eventId}/sections/${firstSection.section_name}/rows`,
{ headers: { Authorization: `Bearer ${token}` } }
);
const { data: rows } = await rowsRes.json();
return {
section: firstSection,
rows,
};
}
Next Step
With a section_name and row_name selected, generate a price quote: