List menu publications
Per-store, per-platform publication outcomes — by publication id (the polling path after publishMenu) or filtered by menu or store.
acknowledged and confirmed are DISTINCT states, never collapsed: acknowledged means the platform accepted the submission; confirmed means the platform reported the menu live. confirmationMode says which a given platform is capable of reporting — see that field.
Scope: publications this organization owns — including those started from the OneTablet portal's own "publish menu" flow, not only those started through this API.
Paging: sorted by request time descending, at the PUBLICATION grain. Loop until nextCursor is absent.
Safe to retry: this operation is read-only and idempotent.
Request
- publicationIdsstring[]
Return only these publications (the
publicationIdvaluespublishMenureturned). Absent means no filter on publication. - menuIdsstring[]
Return only publications that submitted at least one of these menus to at least one store. A matching publication still returns ALL of its stores. Absent means no filter on menu.
- storeIdsstring[]
Return only publications that touched at least one of these storefronts. A matching publication still returns ALL of its stores, not only these. Absent means no filter on store.
- pagePageRequest
Cursor pagination, at PUBLICATION grain.
{
"publicationIds": [
"<publicationIds>"
],
"menuIds": [
"<menuIds>"
],
"storeIds": [
"<storeIds>"
],
"page": {
"limit": 50,
"cursor": "<cursor>"
}
}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.
- publicationsMenuPublication[]
The page of publications, newest first.
- nextCursorstring
Opaque cursor for the next page. Absent means the last page.
About Menus
Menus — read a menu, publish it to the delivery platforms, and follow each publication's per-store, per-platform outcome.
publishMenu is the only write here and the only operation on this API that changes what guests see on live DoorDash, Uber Eats and Grubhub storefronts. There is no unpublish.
Every operation is scoped to the organization your API key belongs to. An id that does not exist and one that belongs to another organization are the same 404, indistinguishably — and on publishMenu a menu or store outside your organization is rejected before anything is published.
Retries create a second publication. publishMenu does not replay a previous result: a retried call creates a new publication with its own publicationId and re-submits to the platforms. That changes no content — a publication is a full replace of the same saved menu — but it doubles platform traffic. Treat a timeout as "may have succeeded" and check fetchMenuPublications before retrying.