FiveGuys API endpoint
Returns Five Guys restaurants near a latitude/longitude as Five Guys' own ordering platform publishes them, with commerce detail no other endpoint in this family carries: per-store delivery fee, delivery and pickup order minimums, whether the store is currently accepting orders at all, the handoff modes an order placed now could actually use (delivery, pickup, curbside, dine-in, drive-thru, dispatch), group-order/coupon/loyalty support, how many days ahead an order may be scheduled, and the store's own order URL. Set `include_hours` to also return each store's dated business and delivery calendars -- concrete dated windows rather than the recurring weekly schedule the locator endpoints publish, so they reflect holiday and special hours a weekly schedule cannot express. This is a different upstream from GET /fiveguys/nearby, which returns the marketing/locator record: the two describe the same restaurants but do not share ids, and this one carries a per-store name ("Five Guys Austin Arbor") where the locator publishes the generic brand name. Use each result's `id` with GET /fiveguys/ordering-menu for that store's priced menu. A coordinate with no Five Guys nearby returns an empty list rather than an error.
/fiveguys/ordering-locationsid here is the ordering platform's own identifier;Use /api/v1/fiveguys/nearby for addresses, hours, and amenity labels; use this endpoint for fees, minimums, and what an order placed right now could actually use.
Query parameters:
latitude (required) — search center latitude, e.g. 30.267153.longitude (required) — search center longitude, e.g. -97.743061.radius (optional, default 20, max 50) — search radius in miles.limit (optional, default 10, max 50) — maximum restaurants to return.include_hours (optional) — set true to also return each store's dated operating calendars.days (optional, default 7, max 30) — how many days of calendar to return from today. Only meaningful with include_hours.No per-item prices here. This endpoint publishes per-store fees and order minimums only. Use each result's id with /api/v1/fiveguys/ordering-menu for that store's actual priced menu.
The ordering platform rate-limits bursts. When it does, this endpoint returns 503 with a retry message rather than partial or malformed data; retry shortly.
Response includes locations[], count, radius, source_url, and fetched_at. Each location has id, store_number, slug, name, address, latitude, longitude, phone, distance_miles, is_available, availability_message, customer_message, delivery_fee, minimum_delivery_order, minimum_pickup_order, fulfillment (delivery, pickup, curbside, dine_in, drive_thru, dispatch, group_orders, coupons, loyalty, calories_displayed), advance_order_days, advance_only, supported_time_modes[], utc_offset, order_url, and (with include_hours) calendars[].
Each entry in calendars[] has a type (business for store hours, dispatch for delivery, and occasionally others the platform publishes), an optional label, and ranges[] of start/end/weekday. Starts and ends are dated, formatted YYYYMMDD HH:MM in the store's own local time and passed through unchanged. Because they are dated rather than recurring, they capture holiday and special hours that the weekly schedule on /api/v1/fiveguys/search and /api/v1/fiveguys/nearby cannot express.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Search center latitude | 30.267153 | |
| longitude | number | Yes | Search center longitude | -97.743061 | |
| radius | integer | No | Search radius in miles, 1-50 (default 20) | 20 | |
| limit | integer | No | Maximum restaurants to return, 1-50 (default 10) | 10 | |
| include_hours | boolean | No | Include each store's dated business and delivery calendars | true | |
| days | integer | No | Days of calendar to return from today, 1-30 (default 7). Only meaningful with include_hours. | 7 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fiveguys/ordering-locations?latitude=30.267153&longitude=-97.743061&limit=10&include_hours=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"locations": [
{
"id": "23841",
"store_number": "656",
"slug": "five-guys-656",
"name": "Five Guys Fig @ 7th Downtown LA",
"address": {
"line1": "735 S Figueroa St",
"city": "Los Angeles",
"region": "CA",
"postal_code": "90017",
"country": "US"
},
"latitude": 34.0492055,
"longitude": -118.2610677,
"phone": "(213) 628-3375",
"distance_miles": 0.4,
"is_available": true,
"customer_message": "DELIVERY is available at this location.",
"delivery_fee": 0,
"minimum_delivery_order": 15,
"minimum_pickup_order": 0,
"fulfillment": {
"delivery": false,
"pickup": true,
"curbside": false,
"dine_in": false,
"drive_thru": false,
"dispatch": true,
"group_orders": true,
"coupons": true,
"loyalty": false,
"calories_displayed": true
},
"advance_order_days": 7,
"supported_time_modes": [
"advance",
"asap"
],
"utc_offset": -7,
"order_url": "https://fiveguys.olo.com/menu/five-guys-656/"
}
],
"count": 1,
"radius": 20,
"source_url": "https://order.fiveguys.com/restaurants/near?lat=34.048051&long=-118.254187&radius=20&limit=10",
"fetched_at": "2026-09-06T04:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/fiveguys.orderingLocationsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | fiveguys.OrderingLocationsResponse | No | ||||
| data.count | integer | No | 3 | |||
| data.fetched_at | string | No | 2026-09-06T12:00:00Z | |||
| data.locations | array | No | ||||
| data.locations[].address | fiveguys.LocationAddress | No | LocationAddress record, 6 fields: city, country, line1, line2, postal_code, region. Described under Five Guys Store API. | |||
| data.locations[].advance_only | boolean | No | AdvanceOnly marks a store that takes only scheduled orders, never ASAP. | |||
| data.locations[].advance_order_days | integer | No | 7 | AdvanceOrderDays is how many days ahead an order may be scheduled. | ||
| data.locations[].availability_message | string | No | ||||
| data.locations[].calendars | array | No | Calendars are this store's dated operating windows, present only when include_hours was requested. Unlike the weekly recurring schedule GET /fiveguys/search and /fiveguys/nearby publish, these are concrete dated ranges, so they reflect holiday and special hours a recurring schedule cannot express. | |||
| data.locations[].calendars[].label | string | No | Delivery | Label is the platform's display label when it publishes one, e.g. "Delivery". | ||
| data.locations[].calendars[].ranges | array | No | ||||
| data.locations[].calendars[].ranges[].end | string | No | 20260906 23:00 | |||
| data.locations[].calendars[].ranges[].start | string | No | 20260906 10:00 | Start and End are published as "YYYYMMDD HH:MM" in the store's own local time, passed through unchanged rather than reinterpreted into a timezone this API would have to guess. | ||
| data.locations[].calendars[].ranges[].weekday | string | No | Sun | |||
| data.locations[].calendars[].type | string | No | business | Type is the ordering platform's own calendar type, e.g. "business", "dispatch". | ||
| data.locations[].customer_message | string | No | ||||
| data.locations[].delivery_fee | number | No | 0 | Ordering economics, in the store's own currency. DeliveryFee and the minimums are published as 0 when the store sets none. | ||
| data.locations[].distance_miles | number | No | 0.4 | DistanceMiles is measured from the requested coordinate. | ||
| data.locations[].fulfillment | object | No | Fulfillment is what the ordering platform will actually accept for this store right now. This is a different thing from the locator's amenity labels (GET /fiveguys/search's `services`), which describe what the restaurant offers in general -- these describe what an order placed now could use. | |||
| data.locations[].fulfillment.calories_displayed | boolean | No | true | |||
| data.locations[].fulfillment.coupons | boolean | No | true | |||
| data.locations[].fulfillment.curbside | boolean | No | false | |||
| data.locations[].fulfillment.delivery | boolean | No | false | |||
| data.locations[].fulfillment.dine_in | boolean | No | false | |||
| data.locations[].fulfillment.dispatch | boolean | No | true | |||
| data.locations[].fulfillment.drive_thru | boolean | No | false | |||
| data.locations[].fulfillment.group_orders | boolean | No | true | |||
| data.locations[].fulfillment.loyalty | boolean | No | false | |||
| data.locations[].fulfillment.pickup | boolean | No | true | |||
| data.locations[].id | string | No | 23841 | ID is the ordering platform's restaurant id. | ||
| data.locations[].is_available | boolean | No | true | IsAvailable reports whether the ordering platform is currently accepting orders for this restaurant at all. AvailabilityMessage and CustomerMessage carry the store's own explanation when it publishes one (e.g. a delivery caveat, a temporary notice). | ||
| data.locations[].latitude | number | No | 30.396 | Latitude/Longitude come from the ordering platform's own record. | ||
| data.locations[].longitude | number | No | -97.72 | |||
| data.locations[].minimum_delivery_order | number | No | 15 | |||
| data.locations[].minimum_pickup_order | number | No | 0 | |||
| data.locations[].name | string | No | Five Guys Austin Arbor | Name is the ordering platform's per-store label ("Five Guys Fig @ 7th Downtown LA"), unlike the locator's generic "Five Guys". | ||
| data.locations[].order_url | string | No | OrderURL is the ordering platform's own menu/order page for this store. Note it is hosted on a domain this API cannot itself read (see the endpoint description) -- it is published for handing to an end user, not for further scraping. | |||
| data.locations[].phone | string | No | (512) 719-3300 | |||
| data.locations[].slug | string | No | five-guys-656 | |||
| data.locations[].store_number | string | No | 656 | StoreNumber is Five Guys' own internal store number. | ||
| data.locations[].supported_time_modes | array | No | SupportedTimeModes are the ordering platform's own labels, e.g. "asap", "advance". | |||
| data.locations[].utc_offset | number | No | -7 | UTCOffset is the store's current offset in hours. | ||
| data.radius | integer | No | 20 | |||
| data.source_url | string | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/fiveguys/ordering-locations?latitude=30.267153&longitude=-97.743061&limit=10&include_hours=true" \
-H "x-api-key: $CRAWLORA_API_KEY"