curl -H "X-API-Key: $GOMRY_RETAIL_API_KEY" \
"https://integration.example.com/api/vendor/v1/catalog?vendorKey=acme&page=1&updatedSince=2026-09-30T00:00:00.000Z"
{
"events": [
{
"vendorEventId": "3273941",
"name": "City FC vs United",
"occursAt": "2026-11-14T20:00:00.000Z",
"occursAtLocal": "2026-11-14T15:00:00-05:00",
"timeTbd": false,
"venue": {
"name": "Riverside Stadium",
"locality": "Philadelphia",
"region": "PA",
"countryCode": "US",
"postalCode": "19148",
"latitude": 39.9008,
"longitude": -75.1675,
"timezone": "America/New_York"
},
"categoryName": "Soccer",
"performerNames": ["City FC", "United"],
"state": "shown",
"updatedAt": "2026-09-29T11:42:10.000Z",
"availableCount": 174
}
],
"nextPage": 2
}
Catalog and Listings
Catalog
Return your events, one page at a time
curl -H "X-API-Key: $GOMRY_RETAIL_API_KEY" \
"https://integration.example.com/api/vendor/v1/catalog?vendorKey=acme&page=1&updatedSince=2026-09-30T00:00:00.000Z"
{
"events": [
{
"vendorEventId": "3273941",
"name": "City FC vs United",
"occursAt": "2026-11-14T20:00:00.000Z",
"occursAtLocal": "2026-11-14T15:00:00-05:00",
"timeTbd": false,
"venue": {
"name": "Riverside Stadium",
"locality": "Philadelphia",
"region": "PA",
"countryCode": "US",
"postalCode": "19148",
"latitude": 39.9008,
"longitude": -75.1675,
"timezone": "America/New_York"
},
"categoryName": "Soccer",
"performerNames": ["City FC", "United"],
"state": "shown",
"updatedAt": "2026-09-29T11:42:10.000Z",
"availableCount": 174
}
],
"nextPage": 2
}
Catalog
Returns your events: what could be sold, as opposed to what is for sale right now. Retail polls this every 15 minutes and stores the results. It is the only endpoint whose data Retail keeps.A catalog entry is a durable description of a real event, safe to store and show. A listing is a quote with a short life. Keep the two apart: nothing here should say how many tickets are purchasable.
Query Parameters
string
required
Your supplier identifier.
integer
default:"1"
1-based page number.
string
ISO 8601 instant. Return only events changed since then. When absent, Retail is doing a full sweep. If your system has no modified-since filter you may ignore this parameter and return everything.
string
Look up a single event, used when Retail re-reads one that looks stale. Optional to support: if you ignore it and return an ordinary page, Retail keeps only the matching row.
Paging
Paging is required. A real catalog runs to tens of thousands of events, and answering in one response will time out. Size your pages so each answers within 30 seconds.nextPage: null is the only end-of-catalog signal. An empty events array on a page in the middle is treated as a hiccup, not the end. Retail uses absence from the catalog to flag events for review, so ending early by mistake looks like you dropped every event after that page.Response
array
required
Show Event object
Show Event object
string
required
Your id for the event, as a string.
string
required
Event name as a buyer should read it.
string | null
The start instant in UTC, ISO 8601.Do not create this by appending
Z to a local time. Some systems do, which shifts events by hours. If you cannot convert honestly, send null and fill occursAtLocal instead. Retail prefers rebuilding the instant from local time.string | null
The local wall-clock start as your system states it, ISO 8601 with offset, for example
2026-11-14T20:00:00-05:00.boolean
true when the date or time is not confirmed. A placeholder time such as midnight otherwise shows to a buyer as a real “12:00 AM” start.object
Omit the whole object if you have no venue data. Never send a venue without a name.
Show Venue object
Show Venue object
string
required
Venue name.
string
Street address.
string
City.
string
State or region.
string
ISO 3166-1 alpha-2, for example
US.string
Postal code.
number
Latitude.
number
Longitude.
string
IANA zone, for example
Europe/Madrid. Send it whenever you have it. Without it Retail has to derive the zone, and when that fails the event is stored in UTC and shows the wrong start time.string
Your category, for example
Concerts.string[]
default:"[]"
Performers or teams, headliner first.
string
Your lifecycle state for the event, in your own vocabulary, for example
shown, postponed or rescheduled. ignored means not for sale, and Retail never shows it to a buyer.string | null
Your last-modified stamp for the event. Drives incremental sync.
integer
Indicative only. How many listings you see on the event, never a purchasable quantity. Retail stores it as an observation and gets real supply from listings.
integer | null
required
The next page number, or
null when the catalog is exhausted.curl -H "X-API-Key: $GOMRY_RETAIL_API_KEY" \
"https://integration.example.com/api/vendor/v1/catalog?vendorKey=acme&page=1&updatedSince=2026-09-30T00:00:00.000Z"
{
"events": [
{
"vendorEventId": "3273941",
"name": "City FC vs United",
"occursAt": "2026-11-14T20:00:00.000Z",
"occursAtLocal": "2026-11-14T15:00:00-05:00",
"timeTbd": false,
"venue": {
"name": "Riverside Stadium",
"locality": "Philadelphia",
"region": "PA",
"countryCode": "US",
"postalCode": "19148",
"latitude": 39.9008,
"longitude": -75.1675,
"timezone": "America/New_York"
},
"categoryName": "Soccer",
"performerNames": ["City FC", "United"],
"state": "shown",
"updatedAt": "2026-09-29T11:42:10.000Z",
"availableCount": 174
}
],
"nextPage": 2
}

