fetchLocations
Your physical locations (kitchens): address, timezone, the brands each carries, and the store count.
Cross-reference: every store from fetchStores carries its location.id and brand.id, so the directory reads join on ids.
Scope: kitchens your organization OWNS, plus kitchens where one of your brands operates. Retired kitchens are excluded. Location.storeCount counts exactly the storefronts fetchStores would return for you at that kitchen, so the two always reconcile.
Paging: sorted by name ascending. Loop until nextCursor is absent.
Request
- pageobject
Cursor pagination.
- limitnumber
Page size, 1-100. Defaults to 50 when omitted.
- cursorstring
Opaque cursor from the previous response. Omit for the first page.
- limitnumber
{
"page": {
"limit": 50,
"cursor": "<cursor>"
}
}Responses
- locationsobject[]
The page of locations.
- idstring
OneTablet's identifier for the location.
- codestring
The location's short site code, as shown on kitchen tickets and platform dashboards.
- namestring
Operator-facing name.
- timezonestring
IANA timezone, e.g. "America/New_York" — NOT an offset, which DST breaks.
- addressstring
Free-text street address as configured. Structured components may be added additively later.
- brandsobject[]
The brands carried at this location.
- idstring
OneTablet's identifier for the brand — join the directory reads on this, not on
name. - codestring
The brand's short code.
- namestring
The brand's display name.
- displayNamestring
The brand's public-facing name, as printed on tickets (ONE-2618).
ADDITIVE to the published shape.
namestays what it always was; this is the prose form where the two differ.
- idstring
- storeCountnumber
How many storefronts operate at this location.
- displayNamestring
Human-readable display name, e.g. "Harlem Store" (ONE-2618, additive).
nameis the unique operator-facing name; this is the one to show a person where they differ. - organizationIdstring
The organization that OWNS the kitchen (ONE-2618, additive).
NOT necessarily yours — for a host-located brand this is the host's id, which is exactly how you tell the two cases apart.
- idstring
- nextCursorstring
Opaque cursor for the next page. Absent means the last page.
About Stores
The places you operate and the brands you operate there.
OneTablet models a restaurant business in three layers, and every other section of this API assumes them. A brand is a menu concept — what a customer sees on a delivery app. A location is a physical address with a kitchen in it. A store is one storefront: a single brand, at a single location, on a single platform — so a location running two brands on three platforms has six stores, each with its own menu, hours and pause state.
The directory reads join on IDS, never on display names: every store carries its location.id and brand.id, and a location carries the id of each brand it runs.
Start here — a location carries the timezone that every schedule, report window and business day elsewhere on this API is interpreted in.
All three reads are org-scoped to the organization your api key resolves to, and all three are reads: nothing here mutates, and nothing here calls out to a delivery platform live (ONE-2618).