Docs βΊ Guides
Catering & on-demand drops
One order per event, dispatched immediately.
For catering, events and on-demand orders, each order is its own delivery and is dispatched as soon as you send it. Your account is set to dispatch on receipt.
Send the order when it's confirmed
bash
curl -s https://api.trydragonfly.com/v1/orders \
-H "Authorization: Bearer $DRAGONFLY_API_KEY" -H 'content-type: application/json' -d '{
"externalId": "cater-88412",
"pickup": { "address": "100 W Randolph St, Chicago, IL 60601", "contactName": "Kitchen", "contactPhone": "+13125550100",
"windowStart": "2026-10-09T10:45:00-05:00" },
"dropoff": { "address": "233 S Wacker Dr, Chicago, IL 60606", "contactName": "Priya, 31st floor", "contactPhone": "+13125550111",
"windowStart": "2026-10-09T11:30:00-05:00", "windowEnd": "2026-10-09T11:45:00-05:00",
"notes": "Check in at security with the order number; set up on the credenza", "photoRequired": "REQUIRED",
"items": [{ "name": "Hot trays", "quantity": 4 }, { "name": "Salad bowls", "quantity": 2 }, { "name": "Utensil kit", "quantity": 1 }] },
"subtotalCents": 64000,
"tipCents": 9000
}'Tips that make catering go smoothly
- Ready time: set
pickup.windowStartto when the food is actually ready. Drivers are timed to it. - Setup instructions go in
dropoff.notes; the driver sees them on arrival. - Itemize with
items, so the driver confirms everything left the kitchen. - Send
subtotalCents. Catering pricing is usually tiered by order value, and some contracts set a minimum gratuity. - Several drops from one kitchen at once? Send one order per drop. Each gets its own driver and tracking.
Track it
Use delivery.assigned_driver, delivery.pickup_complete and delivery.dropoff_complete webhooks to update your customer. trackingUrl is a live map you can share.
Something unclear or missing? Tell us.