GoOrder Developers
GoOrder Partner API · v1
Put GoOrder’s restaurants inside your product.
Browse live menus, quote delivery, place and track orders, and get signed webhooks for every change. One REST API, a full sandbox, and a quickstart that fits in one sitting.
- 24 endpoints
- Signed webhooks
- Idempotent orders
- Free sandbox
curl -X POST https://back.goorder.com/api/partner/v1/orders \ -H "Authorization: Bearer $GOORDER_API_KEY" \ -H "Idempotency-Key: order-100234" \ -H "Content-Type: application/json" \ -d '{ "store_id": "66f1a2b3c4d5e6f708192a3b", "fulfilment": "delivery", "items": [ { "item_id": "66f1a2b3c4d5e6f708192a50", "quantity": 2 } ], "customer": { "name": "Sara Ahmed", "phone": "+971501234567" }, "delivery_address": { "line1": "Marina Tower", "floor": "12", "apartment": "1204", "area": "Dubai Marina", "location": { "lat": 25.0805, "lng": 55.1403 } }, "payment_method": "cash", "reference": "PARTNER-100234" }'const res = await fetch('https://back.goorder.com/api/partner/v1/orders', { method: 'POST', headers: { Authorization: `Bearer ${process.env.GOORDER_API_KEY}`, 'Idempotency-Key': 'order-100234', 'Content-Type': 'application/json', }, body: JSON.stringify({ store_id: '66f1a2b3c4d5e6f708192a3b', fulfilment: 'delivery', items: [ { item_id: '66f1a2b3c4d5e6f708192a50', quantity: 2 }, ], customer: { name: 'Sara Ahmed', phone: '+971501234567' }, delivery_address: { line1: 'Marina Tower', floor: '12', apartment: '1204', area: 'Dubai Marina', location: { lat: 25.0805, lng: 55.1403 }, }, payment_method: 'cash', reference: 'PARTNER-100234', }),});const { data: order } = await res.json();import os, requests
res = requests.post( "https://back.goorder.com/api/partner/v1/orders", headers={ "Authorization": f"Bearer {os.environ['GOORDER_API_KEY']}", "Idempotency-Key": "order-100234", }, json={ "store_id": "66f1a2b3c4d5e6f708192a3b", "fulfilment": "delivery", "items": [ {"item_id": "66f1a2b3c4d5e6f708192a50", "quantity": 2}, ], "customer": {"name": "Sara Ahmed", "phone": "+971501234567"}, "delivery_address": { "line1": "Marina Tower", "floor": "12", "apartment": "1204", "area": "Dubai Marina", "location": {"lat": 25.0805, "lng": 55.1403}, }, "payment_method": "cash", "reference": "PARTNER-100234", },)order = res.json()["data"]{ "data": { "id": "66f1a2b3c4d5e6f708192a3b", "object": "order", "environment": "live", "reference": "PARTNER-100234", "order_number": "GO-004218", "status": "placed", "fulfilment": "delivery", "store": { "id": "66f1a2b3c4d5e6f708192a3b", "name": "Burger Lab" }, "pricing": { "subtotal": 60.0, "delivery_fee": 7.0, "tip": 0, "discount": 0, "total": 67.0, "currency": "AED" }, "payment": { "method": "cash", "status": "pending" } }}Everything a branded ordering experience needs
-
Live menus
Stores, hours, prices, modifiers and availability exactly as customers see them.
-
Delivery quotes
Check an address against the delivery area and get the fee before you order.
-
Orders you can trust
Server-side pricing, idempotent creation and clear business-rule errors.
-
Live tracking
A status timeline and the rider’s position while the order is on its way.
-
Signed webhooks
Every status and payment change, HMAC-signed, retried for ~20 hours.
-
A real sandbox
Simulate the whole lifecycle with a test key — no restaurant, no rider, no card.
Your first order in three calls
-
Find a store
GET /stores?lat=25.2&lng=55.27Only stores that deliver to your customer, nearest first.
-
Quote the address
GET /stores/{id}/delivery-quoteFee, distance and whether the address is in range.
-
Place the order
POST /ordersPrices are calculated by GoOrder — you send items, not totals.