Grubhub · Schema
StatusUpdate
A status update reflects each successive change in the status of an order.
Food DeliveryRestaurantMarketplaceOnline OrderingPoint-of-SaleLogisticsLast Mile DeliveryMenu ManagementHospitalityLocal CommerceDelivery
Properties
| Name | Type | Description |
|---|---|---|
| status | string | The status of an order as it passes through the Grubhub fulfillment flow. ANTICIPATED: denotes a future order, which may be cancelled by diner. RESTAURANT_CONFIRMABLE: pending confirma |
| timestamp | object | |
| update_source | string | The source of the update. |
| reason | string | An optional reason for the update. |
| segment_index | integer | A number denoting the order of the status. Higher numbers correspond to more recent order statuses |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/grubhub/main/json-schema/grubhub-statusupdate-schema.json",
"title": "StatusUpdate",
"x-generated": "2026-09-17",
"x-method": "derived",
"x-source": "openapi/grubhub-orders-openapi.yml#/components/schemas/StatusUpdate",
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The status of an order as it passes through the Grubhub fulfillment flow.<br /><br />ANTICIPATED: denotes a future order, which may be cancelled by diner.<br />RESTAURANT_CONFIRMABLE: pending confirmation of receipt by the restaurant. These are effectively new ASAP orders. ANTICIPATED orders will automatically become RESTAURANT_CONFIRMABLE at the promise time, less the restaurant's configured pickup or delivery prep time.<br />DINER_CONFIRMABLE: a status held for future use.<br />CONFIRMED: denotes that the order was received by restaurant, even if the restaurant is unable to fulfill it.<br />REJECTED: an error status. For example, if an order is unable to be inserted to the POS, due to menu item mismatch, restaurant offline, etc., the status should be updated to REJECTED. This is not to be used when the order was successfully transmitted, but the restaurant is unable to fulfill it for operational reasons. In that scenario, a Change Request should be submitted to cancel the order.<br />CANCELLED: a cancellation request by the diner or restaurant has been processed by Grubhub Customer Care.<br />PICKUP_READY: indicates that the food is prepared and ready for pickup by the diner or a Grubhub delivery courier.<br />OUT_FOR_DELIVERY: the food is on the way to the diner.<br />FULFILLED: denotes that the food has been delivered to or picked up by the diner.<br />UNKNOWN: provided for error handling of strings unmappable to known enumeration values.",
"enum": [
"REJECTED",
"READY_FOR_PICKUP",
"ANTICIPATED",
"RESTAURANT_CONFIRMABLE",
"CONFIRMED",
"CANCELLED",
"DELIVERY_CONFIRMABLE",
"DINER_CONFIRMABLE",
"UNKNOWN",
"PICKUP_READY",
"OUT_FOR_DELIVERY",
"FULFILLED",
"POS_VALIDATING",
"POS_VALIDATED",
"POS_VALIDATION_REJECTED"
]
},
"timestamp": {
"$ref": "#/$defs/Instant"
},
"update_source": {
"type": "string",
"description": "The source of the update.",
"enum": [
"DINER",
"RESTAURANT",
"GRUBHUB",
"GRUBHUB_ADMIN",
"GRUBHUB_CARE",
"GRUBHUB_CORE",
"GRUBHUB_DAPI",
"GRUBHUB_ORDERS_REAPER",
"CONFIRMATION_EMAIL_SERVICE",
"FAX_RING",
"MERCHANT_ORDERS",
"CONFIRMATION_AUTOMATION",
"POS_MICROS",
"POS_GENERIC",
"POS_ALOHA",
"POS_XENIAL",
"POS_POSITOUCH",
"TX",
"TXS",
"GRUBHUB_ORDERS_ANTICIPATED_REAPER",
"GRUBHUB_ORDERS_DAPI_SUPERVISOR",
"GRUBHUB_ORDERS_AUTOCONFIRM_SUPERVISOR",
"GRUBHUB_ORDERS_AUTOBUMP",
"GRUBHUB_ORDERS_NOTIFICATION_SUPERVISOR",
"GRUBHUB_ORDERS_FULFILLMENT_SUPERVISOR",
"GRUBHUB_ORDERS_TRANSMISSION_SUPERVISOR",
"UNKNOWN"
]
},
"reason": {
"type": "string",
"description": "An optional reason for the update."
},
"segment_index": {
"type": "integer",
"description": "A number denoting the order of the status. Higher numbers correspond to more recent order statuses",
"format": "int32"
}
},
"description": "A status update reflects each successive change in the status of an order.",
"$defs": {
"Chronology": {
"type": "object",
"properties": {
"zone": {
"$ref": "#/$defs/DateTimeZone"
}
}
},
"DateTimeZone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"fixed": {
"type": "boolean"
}
},
"description": "The timezone of the restaurant"
},
"Instant": {
"type": "object",
"properties": {
"chronology": {
"$ref": "#/$defs/Chronology"
},
"millis": {
"type": "integer",
"format": "int64"
},
"zone": {
"$ref": "#/$defs/DateTimeZone"
},
"after_now": {
"type": "boolean"
},
"before_now": {
"type": "boolean"
},
"equal_now": {
"type": "boolean"
}
},
"description": "The time that the diner placed the order"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/grubhub-statusupdate"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.