Inventory / Index

Inventory / Index

Name

Inventory Index

Name

Inventory Index

Description

Returns information for all of the inventory an Office has sent to TEvo

Type

GET

URL

/v9/inventory

Credential Type

APICredential|UserCredential

Supports Pagination

Cursor Pagination

Long Description

Returns information for all of the inventory an Office has sent to TEvo.

By default, the endpoint returns a minimal payload (id, remote_id, event_id) per record. To receive the full per–ticket-group attribute set (the same shape POST /v9/inventory and PATCH /v9/inventory/:id already return for single records), pass response=detailed. See Detailed Response Mode below.

Parameters

Name

Description

Value Type

Required

Name

Description

Value Type

Required

office_id

ID of the Office for which you would like to get inventory

Integer

Required

state

Indicates if you want to retrieve inventory that has been mapped (available for sale on a specific event) or is unmapped (waiting to be mapped to an event). One of ALL MAPPED UNMAPPED

String

Optional. Default: ALL. (See restrictions in Detailed Response Mode when response=detailed.)

response

Set to detailed to opt into the rich per–ticket-group payload. Omit (or pass any other value — which is rejected as invalid) for the default minimal payload.

String

Optional

Pagination Parameters

Note: When paginating, you must include the state parameter as either MAPPED or UNMAPPED

Name

Description

Value Type

Required

Name

Description

Value Type

Required

page[cursor]

Remote ID to start paginating from, ascending. This is the ID on your system or record.

Integer

Optional. Default: 1

page[items]

Number of items to return. You will receive the first <items> inventory,MAPPED or UNMAPPED, depending on the state value passed, starting with <cursor> and counting up.

Integer

Optional. Default: 10000

When you receive a response, to get the next page available, take the last remote_id of the page response, add 1 to it, then make a second call with this new remote_id + 1 as the cursor. Stop when there are no items returned.

Response Properties

Name

Description

Value Type

Notes

Name

Description

Value Type

Notes

id

TEvo's ID for the ticket group

Integer|NULL

NULL if the inventory is not yet mapped.

remote_id

This is the ID of the ticket group in your POS that was provided when the tickets were sent to TEvo.

Integer

 

event_id

The ID of the TEvo Event where these tickets are available for sale.

Integer|NULL

NULL if the inventory is not yet mapped.

Examples

Request

Response

Request

Response

GET /v9/inventory?office_id=1234

[ { "id": 1939203215, "remote_id": 605696419, "event_id": 2306558 }, { "id": null, "remote_id": 79253586, "event_id": null }, { "id": null, "remote_id": 79253588, "event_id": null }, { "id": 1952306134, "remote_id": 600809252, "event_id": 2236152 } ]

GET /v9/inventory?office_id=1234&state=MAPPED

[ { "id": 1939203215, "remote_id": 605696419, "event_id": 2306558 }, { "id": 1952306134, "remote_id": 600809252, "event_id": 2236152 } ]

GET /v9/inventory?office_id=1234&state=UNMAPPED

[ { "id": null, "remote_id": 79253586, "event_id": null }, { "id": null, "remote_id": 79253588, "event_id": null } ]


Detailed Response Mode

Pass response=detailed to receive the full per–ticket-group attribute set — the same shape POST /v9/inventory and PATCH /v9/inventory/:id already return for single records — wrapped under an inventory key.

Differences from the default mode

Constraint

Default mode

response=detailed

Constraint

Default mode

response=detailed

Top-level shape

[{...}, {...}] (bare array)

{ "inventory": [{...}, {...}] } (wrapped)

Per-record fields

id, remote_id, event_id

Full per-TicketGroup attributes (see below)

state

MAPPED, UNMAPPED, or ALL (default ALL)

MAPPED only (or omitted; defaults to MAPPED). UNMAPPED and ALL are rejected with 400 Bad Request.

page

Optional

Required — pagination is mandatory in detailed mode. Missing page returns 400 Bad Request with "page is missing".

page[items] default

10000

1000

page[items] max

10000

1000 (exceeding returns 400 Bad Request with "page[items] must be less than or equal to 1000")

Pagination semantics are the same as the default mode: take the last record's id (note: id, not remote_id, in detailed mode), add 1, pass it as the next page[cursor]. Stop when fewer than page[items] records come back.

Validation failures return 400 Bad Request with a structured errors payload:

{ "errors": [ { "code": "invalid_params", "message": "page is missing" } ] }

Authorization failures (the requested office_id does not belong to the calling brokerage) return 401 Unauthorized with a generic message that does not enumerate accessible offices.

Detailed Response Properties

Each record in the inventory array carries the full attribute set described below::

Name

Description

Value Type

Name

Description

Value Type

id

TEvo's ID for the ticket group. Use this as the cursor base when paginating.

Integer

remote_id

The ID of the ticket group in your POS.

Integer

event_id

The ID of the TEvo Event where these tickets are available for sale.

Integer

office_id

TEvo Office ID.

Integer

account_email

Email associated with the listing.

String

cost

Cost basis.

Decimal

taxed_cost

Cost including tax.

Decimal

price

Listing price.

Decimal

face_value

Ticket face value.

Decimal

discount

Discount applied.

Decimal

quantity

Number of available tickets in the group.

Integer

format

Ticket format (e.g. TM_MOBILE, ETICKET, PHYSICAL, FLASH_SEATS, GUEST_LIST, PAPERLESS).

String

type

Inventory type (e.g. EVENT, PARKING).

String

view_type

View type (e.g. FULL, OBSTRUCTED).

String|NULL

section

Section label.

String

row

Row label.

String

seats

Array of seat objects. Each has barcode, primary_ticket_id, seat, verification_id.

Array

split_type

Split type (e.g. NEVERLEAVEONE, ANY).

String

split_override

Array of allowed split quantities (subject to availability).

Array of Integer

wheelchair_accessible

Whether the seats are wheelchair accessible.

Boolean

eticket

Whether the inventory is delivered as eticket.

Boolean

instant_delivery

Whether the inventory supports instant delivery.

Boolean

in_hand

Whether tickets are currently in hand.

Boolean

in_hand_on

Date the tickets will be in hand.

Date|NULL

external_notes

Notes visible to external viewers.

String|NULL

speculative

Whether the inventory is speculative.

Boolean

created_at

Timestamp when the ticket group was created.

DateTime

updated_at

Timestamp of the last update.

DateTime

Example

Request

Response

Request

Response

GET /v9/inventory?office_id=1234&response=detailed&page[cursor]=1&page[items]=2

{ "inventory": [ { "id": 1939203215, "remote_id": 605696419, "event_id": 8675309, "office_id": 1234, "account_email": "broker@example.com", "cost": "75.00", "taxed_cost": "78.50", "price": "120.00", "face_value": "100.00", "discount": "0.00", "quantity": 2, "format": "ETICKET", "type": "EVENT", "view_type": "FULL", "section": "100", "row": "5", "seats": [ { "barcode": null, "primary_ticket_id": null, "seat": "12", "verification_id": null }, { "barcode": null, "primary_ticket_id": null, "seat": "13", "verification_id": null } ], "split_type": "ANY", "split_override": [1, 2], "wheelchair_accessible": false, "eticket": true, "instant_delivery": true, "in_hand": true, "in_hand_on": "2026-05-15", "external_notes": null, "speculative": false, "created_at": "2026-04-15T13:24:08Z", "updated_at": "2026-04-20T09:11:32Z" }, { "id": 1952306134, "remote_id": 600809252, "event_id": 8675310, "office_id": 1234, ... } ] }

 

To request the next page, take the last record's id (here 1952306134), add 1, and pass page[cursor]=1952306135. Stop when fewer than page[items] records come back.