Get one store's status
Status for ONE storefront — the single-store form of fetchStoreStatuses, answering the same three things distinctly: desired, observed, discrepancy.
Identical projection, not a similar one. Every caveat on fetchStoreStatuses applies here unchanged, and lastPolledAt is still the field that tells you how much to trust observed.
NOT FOUND IS 404, AND COVERS TWO CASES ON PURPOSE, matching how the bulk read treats the same store — it simply omits it from the page:
- the
storeIddoes not exist, or belongs to another organization (indistinguishable by design, as everywhere else on this API), and - the storefront IS yours but OneTablet has never polled it, so there is no observation to report. The response message says which of the two you hit; the status code does not, because in both cases there is no status to return.
If you need the storefront's identity rather than its status, fetchStores answers for a never-polled store where this one does not.
Safe to retry: this operation is read-only and idempotent.
Request
- storeIdstring
The
Store.idto read.
{
"storeId": "00000000-0000-0000-0000-000000000000"
}Responses
Headers
- x-mealco-tx-idstringoptional
The correlation id for this call, echoed on every response — a 200 exactly as much as a 400, 401 or 500. Quote it when reporting a problem and we can find every log line for the request, in every service it touched. You may also send your own x-mealco-tx-id on the request and we adopt it, so your correlation id becomes ours. Not marked required for one reason: a request whose JSON body is malformed is rejected before it reaches an operation, so no id exists yet and that single response carries neither this header nor the txId field of the error body. Everything that reaches an operation carries it.
- statusStoreStatus
The storefront's status — the SAME
StoreStatusthe bulk read returns, not a near-identical single-store variant. An object wrapper rather than a bareStoreStatusso later versions can add sibling fields additively.
About Store status
Whether each storefront is actually taking orders — and whether OneTablet and the delivery platform agree about it.
Separate from Stores, which is the identity map: the brands, kitchens and storefronts you operate, which changes when your estate changes. This section is the OPERATIONAL layer on top of it — one read (fetchStoreStatuses), two writes (pauseStores, unpauseStores) and the store.status.changed webhook — all addressed by the Store.id values fetchStores hands you. Same api key, same org scoping, same ids; a different job, and a different route prefix (/management/store-status) so the url says which.
Three things are kept distinct throughout, and conflating them is the mistake this section exists to prevent: desired is what OneTablet is configured to do, observed is what the platform reports, and discrepancy is the classified disagreement between the two.
Org-scoped to the organization your api key resolves to, exactly as the directory reads are.