Food
Search restaurants, grocery stores and shops, read a menu, price a basket, and place an order. There is no server-side cart: you send the items you want with the quote, and the quote you were given is the order you place.
Search restaurants, grocery stores and shops, read a menu, price a basket, and place an order. There is no server-side cart: you send the items you want with the quote, and the quote you were given is the order you place.
Lifecycle
QUOTED
|
PLACED
|
MERCHANT ACCEPTED ----> rejected
|
PREPARING
|
READY FOR PICKUP
|
COURIER ASSIGNED (skipped when the customer collects it)
|
PICKED UP
|
DELIVERING
|
DELIVERED (or CANCELLED, before pickup)
Operations
GET /v1/food/merchants
Coming soon Sandbox supported
Find open restaurants, grocery stores and shops near a point.
| Operation | search_restaurants |
|---|---|
| Scope | food.read |
| Entitlement | None |
| Idempotency | Not required |
| MCP tool | search_restaurants |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/food/merchants' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
POST /v1/food/orders/quote
Coming soon Sandbox supported
Price a basket exactly as checkout would: items, fees, taxes, any member discount, and the total. Returns the quote_id place_food_order requires.
| Operation | quote_food_order |
|---|---|
| Scope | food.read |
| Entitlement | None |
| Idempotency | Not required |
| MCP tool | quote_food_order |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/food/orders/quote' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'
POST /v1/food/orders
Coming soon Ryde One required Sandbox supported
Place the order the customer confirmed, from a quote_id they were shown.
| Operation | place_food_order |
|---|---|
| Scope | food.order |
| Entitlement | Ryde One required |
| Idempotency | Required |
| MCP tool | place_food_order |
Requires a fresh quote the customer was shown, plus an Idempotency-Key.
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/food/orders' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' \
-d '{ … }'
GET /v1/food/orders/{order_id}
Coming soon Sandbox supported
Live state of one order, including courier progress. Deliberately NOT membership-gated: an order that exists stays trackable whatever happens to the membership.
| Operation | get_food_order |
|---|---|
| Scope | food.read |
| Entitlement | None |
| Idempotency | Not required |
| MCP tool | get_food_order |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/food/orders/$order_id' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
GET /v1/food/orders
Coming soon Sandbox supported
The customer's own order history, newest first.
| Operation | list_food_orders |
|---|---|
| Scope | food.read |
| Entitlement | None |
| Idempotency | Not required |
| MCP tool | list_food_orders |
Example request
curl -s 'https://sandbox-api.ryde.us.com/v1/food/orders' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN"
POST /v1/food/orders/{order_id}/cancel
Coming soon Sandbox supported
Cancel an order, where its current state still allows it. Never membership-gated — getting OUT of a transaction must not require an entitlement.
| Operation | cancel_food_order |
|---|---|
| Scope | food.read |
| Entitlement | None |
| Idempotency | Supported |
| MCP tool | cancel_food_order |
Example request
curl -sX POST 'https://sandbox-api.ryde.us.com/v1/food/orders/$order_id/cancel' \
-H "Authorization: Bearer $RYDE_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{ … }'