FiveGuys API endpoint
Use Crawlora's Five Guys Store API to extract supported public FiveGuys data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.
/fiveguys/storeReturns one Five Guys restaurant's full published profile by its locator slug -- address, phone, weekly in-store hours, separate delivery hours, coordinate, Google Place id, restaurant-amenity labels, and order/delivery/menu URLs. Get a path from GET /fiveguys/search or /fiveguys/nearby's `locations[].path`, or from GET /fiveguys/directory's `children[].path` where `is_location` is true. It also returns three detail-only extras that search and nearby results do not carry: `description` (this restaurant's own blurb, templated but genuinely per-location), `photos` (its published gallery images, omitted for the many locations that publish none), and `breadcrumbs` (the directory trail above it, each entry's `path` feeding straight back into GET /fiveguys/directory). Two fields available on search and nearby results are not published on this surface and are omitted here: `price_range` and `pickup_and_delivery_services`. A `profile` block, populated best-effort from a second Yext key, adds further per-restaurant detail no other field in this family carries: `google_attributes` (structured amenity flags, richer than `services`), `review_page_url`/`review_invite_url`, `featured_message`/`featured_message_url`, `google_cid`/`facebook_store_id`, `routable_latitude`/`routable_longitude` (a driving destination, distinct from the display coordinate), `payment_options`, `meals_served`, `services`, `permanently_closed`, `directory_listing_url`, `franchisee_group` (the operator of this specific restaurant -- a corporate code or a franchisee's own company name), `facebook_vanity_url` (this location's own Facebook handle), and `faq` (this restaurant's own generated question set, distinct from the national corpus GET /fiveguys/faq serves). Passing a state or city path returns 404 -- use GET /fiveguys/directory for those. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and agent-native workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.
Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| path | string | No | The restaurant's locator slug, e.g. \ | ||
| id | string | No | The restaurant's entity id, e.g. \ | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fiveguys/store" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint is executed through Crawlora's managed scraping infrastructure.
Crawlora does not silently return bad data when the upstream page cannot be used.
| Status | Common failure case |
|---|---|
| 400 | Invalid input or missing required parameter |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal execution error |
| 502 | Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved |
When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"location": {
"id": "4060",
"name": "Five Guys",
"geomodifier": "Medical District",
"address": {
"line1": "703 S. Seely Ave.",
"city": "Chicago",
"region": "IL",
"postal_code": "60612",
"country": "US"
},
"latitude": 41.8690698,
"longitude": -87.6770724,
"phone": "+13122431070",
"hours": {
"monday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"tuesday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"wednesday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"thursday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"friday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"saturday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
},
"sunday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "00:00"
}
]
}
},
"delivery_hours": {
"monday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"tuesday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"wednesday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"thursday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"friday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"saturday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
},
"sunday": {
"closed": false,
"open_intervals": [
{
"start": "08:00",
"end": "23:45"
}
]
}
},
"timezone": "America/Chicago",
"services": [
"Takeout",
"Dine In",
"Delivery",
"Curbside",
"Breakfast",
"Outside Seating",
"Pick Up Window",
"Mobile Ordering"
],
"website_url": "https://restaurants.fiveguys.com/703-s-seely-ave",
"path": "703-s-seely-ave",
"google_place_id": "ChIJqRe0mlUtDogRxdQlapFbEmw"
},
"description": "Your nearby Five Guys at 703 S. Seely Ave. in Chicago is ready to offer you a classic take on burgers, hot dogs, fries, milkshakes and more!",
"photos": [
{
"url": "https://a.mktgcdn.com/p/example/1200x800.jpg",
"description": "A close-up view of regular order of Five Guys fries.",
"width": 1200,
"height": 800
}
],
"breadcrumbs": [
{
"name": "Directory"
},
{
"name": "Illinois",
"path": "il"
},
{
"name": "Chicago",
"path": "il/chicago"
}
],
"profile": {
"google_attributes": {
"has_takeout": [
"true"
],
"has_delivery": [
"true"
]
},
"review_page_url": "https://www.leavefeedback.app/survey/xlbZMB",
"review_invite_url": "https://www.leavefeedback.app/tp/xlbZMB",
"featured_message": "Try our fan-favorite Patty Melt today!",
"google_cid": "7787387385786258629",
"facebook_store_id": "4060",
"routable_latitude": 41.876374,
"routable_longitude": -87.677762,
"payment_options": [
"APPLEPAY",
"CASH",
"VISA"
],
"meals_served": [
"LUNCH",
"DINNER"
],
"services": [
"Dine-In",
"Takeout",
"Delivery"
],
"permanently_closed": false,
"directory_listing_url": "https://location.com/categories/food-and-dining/us/il/chicago/five-guys-4016028199",
"franchisee_group": "FGO",
"facebook_vanity_url": "FiveGuysChicagoIL",
"faq": [
{
"question": "What are the operating hours of Five Guys in the Medical District?",
"answer": "Five Guys is open daily from 11:00 AM to midnight."
}
]
},
"source_url": "https://restaurants.fiveguys.com/703-s-seely-ave",
"fetched_at": "2026-09-05T04:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/fiveguys.storeResponseDoc
| 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.StoreResponse | No | ||||
| data.breadcrumbs | array | No | Breadcrumbs is the directory trail from the root down to this restaurant, outermost first. Each entry's Path feeds straight back into GET /fiveguys/directory, so a caller landing on a store can navigate back up without a second lookup. The Answers API publishes a trail too, but with entity ids and no slugs -- only these page documents carry a usable path, which is why this is store-only. | |||
| data.breadcrumbs[].name | string | No | Illinois | |||
| data.breadcrumbs[].path | string | No | il | Path feeds GET /fiveguys/directory's path. Empty on the root crumb, which is that endpoint's own default (omit path for the root). | ||
| data.description | string | No | Description is this restaurant's own published blurb. It is templated but genuinely per-location (each interpolates its own street address and city -- confirmed distinct across every sampled location), unlike the nationally-identical FAQ text this family deliberately does not surface. | |||
| data.fetched_at | string | No | 2026-09-05T12:00:00Z | |||
| data.location | fiveguys.Location | No | ||||
| data.location.address | fiveguys.LocationAddress | No | ||||
| data.location.address.city | string | No | Chicago | |||
| data.location.address.country | string | No | US | |||
| data.location.address.line1 | string | No | 180 N Michigan Ave | |||
| data.location.address.line2 | string | No | ||||
| data.location.address.postal_code | string | No | 60601 | |||
| data.location.address.region | string | No | IL | |||
| data.location.delivery_hours | unknown | No | DeliveryHours is this location's delivery-order cutoff schedule, kept separate from Hours (in-store hours) because Yext publishes the two independently and they can differ -- confirmed live 2026-09-05: a Chicago location open in-store until midnight cuts delivery off at 23:45. Nil when Yext has not published a delivery schedule for this location (e.g. it does not offer delivery). | |||
| data.location.delivery_url | string | No | ||||
| data.location.distance_kilometers | number | No | 0.74 | |||
| data.location.distance_miles | number | No | 0.46 | DistanceMiles/DistanceKilometers are measured from the resolved search center -- the coordinate GET /fiveguys/nearby was given, or the location GET /fiveguys/search's `query` text resolved to. | ||
| data.location.geomodifier | string | No | Michigan Ave | Geomodifier is Yext's short area/plaza descriptor for this location (e.g. "Michigan Ave", "Medical District") -- every location's Name is the generic brand name "Five Guys", so Geomodifier is the field that actually distinguishes one result from another the way restaurants.fiveguys.com's own location pages title themselves ("Five Guys Medical District"). Empty when Yext has not published one. | ||
| data.location.google_place_id | string | No | ChIJHTEJ8EgtDogRepA4KPyvUCU | GooglePlaceID is this location's Google Places identifier, when Yext has published one, matching this repo's other Yext-family locators. | ||
| data.location.hours | fiveguys.WeeklyHours | No | ||||
| data.location.hours.friday | fiveguys.DayHours | No | ||||
| data.location.hours.friday.closed | boolean | No | false | |||
| data.location.hours.friday.open_intervals | array | No | ||||
| data.location.hours.friday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.friday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.monday | fiveguys.DayHours | No | ||||
| data.location.hours.monday.closed | boolean | No | false | |||
| data.location.hours.monday.open_intervals | array | No | ||||
| data.location.hours.monday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.monday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.saturday | fiveguys.DayHours | No | ||||
| data.location.hours.saturday.closed | boolean | No | false | |||
| data.location.hours.saturday.open_intervals | array | No | ||||
| data.location.hours.saturday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.saturday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.sunday | fiveguys.DayHours | No | ||||
| data.location.hours.sunday.closed | boolean | No | false | |||
| data.location.hours.sunday.open_intervals | array | No | ||||
| data.location.hours.sunday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.sunday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.thursday | fiveguys.DayHours | No | ||||
| data.location.hours.thursday.closed | boolean | No | false | |||
| data.location.hours.thursday.open_intervals | array | No | ||||
| data.location.hours.thursday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.thursday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.tuesday | fiveguys.DayHours | No | ||||
| data.location.hours.tuesday.closed | boolean | No | false | |||
| data.location.hours.tuesday.open_intervals | array | No | ||||
| data.location.hours.tuesday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.tuesday.open_intervals[].start | string | No | 10:00 | |||
| data.location.hours.wednesday | fiveguys.DayHours | No | ||||
| data.location.hours.wednesday.closed | boolean | No | false | |||
| data.location.hours.wednesday.open_intervals | array | No | ||||
| data.location.hours.wednesday.open_intervals[].end | string | No | 23:00 | |||
| data.location.hours.wednesday.open_intervals[].start | string | No | 10:00 | |||
| data.location.id | string | No | 4020 | ID is Yext's internal entity id for this restaurant. | ||
| data.location.latitude | number | No | 41.885572 | Latitude/Longitude are Yext's display coordinate (rooftop-accurate pin location), falling back to the raw geocoded coordinate when Yext has not published a display override. | ||
| data.location.longitude | number | No | -87.624864 | |||
| data.location.menu_url | string | No | ||||
| data.location.name | string | No | Five Guys | |||
| data.location.order_url | string | No | OrderURL and DeliveryURL point at order.fiveguys.com, which this repo cannot reach (confirmed hard wall -- see service.go); they are still published here since Five Guys publishes them and a caller may want to hand the URL to an end user. | |||
| data.location.path | string | No | 180-n-michigan-ave | Path is the restaurants.fiveguys.com slug for this location. | ||
| data.location.phone | string | No | +13122919686 | |||
| data.location.pickup_and_delivery_services | array | No | PickupAndDeliveryServices are Five Guys' own fulfillment-channel labels, e.g. "In-Store Pickup". | |||
| data.location.price_range | string | No | $ | |||
| data.location.services | array | No | Services are Five Guys' own restaurant-amenity labels for this location, e.g. "Takeout", "Dine In", "Curbside", "Mobile Ordering". | |||
| data.location.timezone | string | No | America/Chicago | |||
| data.location.website_url | string | No | https://restaurants.fiveguys.com/180-n-michigan-ave | |||
| data.photos | array | No | Photos are this restaurant's own published gallery images. Sparse: many locations publish none, in which case this is omitted. | |||
| data.photos[].alternate_text | string | No | AlternateText is the image's accessibility text, when published. | |||
| data.photos[].description | string | No | A close-up view of regular order of Five Guys fries. | Description is Yext's caption for the image, when published. | ||
| data.photos[].height | integer | No | 800 | |||
| data.photos[].url | string | No | https://a.mktgcdn.com/p/example/1200x800.jpg | |||
| data.photos[].width | integer | No | 1200 | |||
| data.profile | unknown | No | Profile is extra per-restaurant detail from Yext's Content Delivery API -- structured Google amenity attributes, per-location review links, the store's current featured message, external platform ids, and a routing coordinate. Populated best-effort: when the lookup fails the rest of the response is still returned, since it is enrichment rather than core data. | |||
| data.source_url | string | No | https://restaurants.fiveguys.com/703-s-seely-ave | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/fiveguys/store" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms