Sections & Rows
Once you have an event_id from the Discovery API, use these endpoints to retrieve available seating sections and rows. 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 |
8.1 β Get Sections for an Eventβ
Returns all sections where Ticket Buyback has ticket inventory available for the given event.
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/5496123/sections" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
const response = await fetch(
"https://api.ticketbuyback.com/partner/v1/events/5496123/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_id": "sec_lower_101",
"section_name": "101",
"section_name_display": "Section 101"
},
{
"section_id": "sec_lower_102",
"section_name": "102",
"section_name_display": "Section 102"
},
{
"section_id": "sec_lower_ga",
"section_name": "GA",
"section_name_display": "General Admission"
}
],
"pagination": {
"total": 18,
"limit": 100,
"offset": 0,
"has_more": false
},
"meta": {
"request_id": "abc123",
"timestamp": "2026-02-26T10:30:00Z"
}
}
Response Fieldsβ
| Field | Description |
|---|---|
section_id | Unique identifier for the section |
section_name | Section name β use this value in the rows endpoint and quote request |
section_name_display | Human-readable label to show your customer |
Only sections with available inventory are returned. If a section is sold out it will not appear in this list.
8.2 β Get Rows for a Sectionβ
Returns all available rows within a specific section for the given event.
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. 101, GA) |
Requestβ
curl "https://api.ticketbuyback.com/partner/v1/events/5496123/sections/101/rows" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json"
const eventId = "5496123";
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": [
{
"row_name": "A",
"row_name_display": "Row A"
},
{
"row_name": "B",
"row_name_display": "Row B"
},
{
"row_name": "C",
"row_name_display": "Row C"
}
],
"meta": {
"request_id": "abc123",
"timestamp": "2026-02-26T10:30:00Z"
}
}
Response Fieldsβ
| Field | Description |
|---|---|
row_name | Row identifier β use this value in the quote request |
row_name_display | Human-readable label to show your customer |
row_name is optional when creating a quote. If you omit it, Ticket Buyback will automatically assign the best available row for the requested section and quantity.
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 inventory available | 200 | Empty data array |
When there is no inventory 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:
β Create Quote