Skip to main content

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.

Authentication Required

All endpoints require a valid Bearer token. See Authentication to get your token.


Endpoints

MethodEndpointDescription
GET/v1/events/{event_id}/sectionsGet all available sections for an event
GET/v1/events/{event_id}/sections/{section_name}/rowsGet 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

ParameterTypeRequiredDescription
event_idstringYesEvent ID from the Discovery API

Request

cURL
curl "https://api.ticketbuyback.com/partner/v1/events/9bab6d6a4b5641931cab9fd942e81242/sections" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
JavaScript
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

FieldDescription
section_nameSection identifier — use this value in the rows endpoint and quote request
section_name_displayHuman-readable label to show your customer
section_descOptional description of the section, or null if not provided
is_gatrue if this is a General Admission section (no assigned rows or seats)
has_quotetrue 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

ParameterTypeRequiredDescription
event_idstringYesEvent ID from the Discovery API
section_namestringYesSection name from the Get Sections response (e.g. CAB01, GA)

Request

cURL
curl "https://api.ticketbuyback.com/partner/v1/events/9bab6d6a4b5641931cab9fd942e81242/sections/CAB01/rows" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
JavaScript
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

FieldDescription
section_nameSection identifier this row belongs to
section_name_displayHuman-readable label for the section
row_nameRow identifier — use this value in the quote request
row_name_displayHuman-readable label to show your customer
row_orderNumeric sort order of the row within the section, starting at 1
tip

row_name is ignored when creating a quote for sections where GA=True.


Error Scenarios

ScenarioHTTP StatusError Code
Missing or invalid Bearer token401UNAUTHORIZED
Token expired401TOKEN_EXPIRED
Event not found404EVENT_NOT_FOUND
Section not found404SECTION_NOT_FOUND
No quote available200Empty data array
note

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:

JavaScript — Full seat selection
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:

Create Quote