FiveGuys API endpoint
Returns 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.
/fiveguys/storeGet a path from /api/v1/fiveguys/search or /api/v1/fiveguys/nearby (locations[].path), or from /api/v1/fiveguys/directory (children[].path where is_location is true).
Query parameters:
path — the restaurant's locator slug, e.g. 703-s-seely-ave. At most 3 segments; lowercase letters, digits, - and . only.id — the restaurant's entity id, e.g. 4060, from /api/v1/fiveguys/search or /api/v1/fiveguys/nearby (locations[].id).Either path or id is required. Prefer id when you have one: it resolves in a single upstream call, while path must first read the location page to discover the id.
This endpoint also returns three extras that search and nearby results do not carry, because they only make sense one restaurant at a time:
description — the restaurant's own published blurb. Templated, but genuinely per-location: each interpolates its own street address and city.photos[] — its published gallery images, each with url plus optional description, alternate_text, width, height. Sparse: many locations publish none, in which case the field is omitted entirely.breadcrumbs[] — the directory trail above this restaurant, outermost first, each with name and a path that feeds straight back into /api/v1/fiveguys/directory. The root crumb carries no path (that endpoint's own default). The restaurant's own leaf entry is not included, since it has no directory path.Two fields that search and nearby results carry are not published on this surface and are omitted here: price_range and pickup_and_delivery_services. Read those from a search or nearby result if you need them.
Passing a state or city path (e.g. il, il/chicago) returns 404 — use /api/v1/fiveguys/directory for those. An unknown slug returns 404.
Response includes location, description, photos[], breadcrumbs[], profile, source_url, and fetched_at. The location has id, name (the generic brand name — use geomodifier to tell locations apart), geomodifier, address, latitude, longitude, phone, hours (in-store, a Monday-first weekly schedule, each day carrying closed plus open_intervals[]), delivery_hours (same shape, omitted when Five Guys has not published a delivery schedule — not always identical to hours), timezone, services[], order_url, delivery_url, menu_url, website_url, path, and google_place_id.
profile is extra per-restaurant detail from a second Yext key, populated best-effort — a failed lookup simply omits profile rather than failing the rest of the response. Fields, all confirmed to genuinely vary by location: google_attributes (structured amenity flags, e.g. has_takeout, has_delivery — richer and more machine-readable than location.services), review_page_url/review_invite_url (this restaurant's own review links), featured_message/featured_message_url (its current promotional message, when it publishes one), google_cid/facebook_store_id (external platform ids, useful for joining other datasets), routable_latitude/routable_longitude (a driving destination, distinct from location.latitude/location.longitude — use it for routing, not map placement), payment_options[], meals_served[], services[] (Yext's plain service labels, published separately from location.services), permanently_closed, directory_listing_url, franchisee_group (this specific restaurant's operator — a short corporate code such as "FGO", or a franchisee's own company name), facebook_vanity_url (this location's own Facebook handle, e.g. "FiveGuysChicagoIL" — sparse, omitted when none is published), and faq[] (this restaurant's own generated question/answer set, each with question and answer naming this store's own address, hours and services — distinct from the national FAQ corpus /api/v1/fiveguys/faq already serves in full).
| Field | Filled in, of 14 checked | Values in the sample |
|---|---|---|
| url | 14 | a.mktgcdn.com |
| description | 14 | median 109 characters |
| alternate_text | 14 | median 109 characters |
| width | 14 | |
| height | 14 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| path | string | No | The restaurant's locator slug, e.g. \ | 703-s-seely-ave | |
| id | string | No | The restaurant's entity id, e.g. \ | 4060 | |
| 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"
{
"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 | object | 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_hours.friday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.friday.closed | boolean | No | false | |||
| data.location.delivery_hours.friday.open_intervals | array | No | ||||
| data.location.delivery_hours.friday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.friday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.monday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.monday.closed | boolean | No | false | |||
| data.location.delivery_hours.monday.open_intervals | array | No | ||||
| data.location.delivery_hours.monday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.monday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.saturday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.saturday.closed | boolean | No | false | |||
| data.location.delivery_hours.saturday.open_intervals | array | No | ||||
| data.location.delivery_hours.saturday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.saturday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.sunday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.sunday.closed | boolean | No | false | |||
| data.location.delivery_hours.sunday.open_intervals | array | No | ||||
| data.location.delivery_hours.sunday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.sunday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.thursday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.thursday.closed | boolean | No | false | |||
| data.location.delivery_hours.thursday.open_intervals | array | No | ||||
| data.location.delivery_hours.thursday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.thursday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.tuesday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.tuesday.closed | boolean | No | false | |||
| data.location.delivery_hours.tuesday.open_intervals | array | No | ||||
| data.location.delivery_hours.tuesday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.tuesday.open_intervals[].start | string | No | 10:00 | |||
| data.location.delivery_hours.wednesday | fiveguys.DayHours | No | ||||
| data.location.delivery_hours.wednesday.closed | boolean | No | false | |||
| data.location.delivery_hours.wednesday.open_intervals | array | No | ||||
| data.location.delivery_hours.wednesday.open_intervals[].end | string | No | 23:00 | |||
| data.location.delivery_hours.wednesday.open_intervals[].start | string | No | 10:00 | |||
| 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 | object | 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.profile.directory_listing_url | string | No | DirectoryListingURL is the location's page on Yext's public location.com directory. | |||
| data.profile.facebook_store_id | string | No | ||||
| data.profile.facebook_vanity_url | string | No | FacebookVanityURL is this location's own Facebook vanity handle (e.g. "FiveGuysChicagoIL"), distinct per location -- unlike the brand-wide facebookPageUrl/instagramHandle/twitterHandle this family already checked and excluded. Sparse: some locations publish none. | |||
| data.profile.faq | array | No | FAQ is this restaurant's own auto-generated question set -- its address, hours, reservation policy and services answered for this specific store ("What are the operating hours of Five Guys in the Medical District?"). Confirmed distinct across every sampled location, unlike the brand-level FAQ corpus, which is national and already served in full by GET /fiveguys/faq. | |||
| data.profile.faq[].answer | string | No | ||||
| data.profile.faq[].question | string | No | What are the operating hours of Five Guys in the Medical District? | |||
| data.profile.featured_message | string | No | FeaturedMessage is the store's current promotional message, when it publishes one (e.g. "Try our fan-favorite Patty Melt today!"). | |||
| data.profile.featured_message_url | string | No | ||||
| data.profile.franchisee_group | string | No | FranchiseeGroup is the operator of this specific restaurant -- corporate-owned locations publish a short internal code ("FGO"); franchised locations publish the franchisee's own company name (e.g. "Bighorn Five Guys Acquisitions", "Evergreen Burgers, Inc."). Not exposed anywhere else in this family. Confirmed genuinely per-location across a multi-state live sample, unlike most of this entity's other social/brand fields. | |||
| data.profile.google_attributes | object | No | GoogleAttributes are Yext's structured amenity flags as published to Google, e.g. "has_takeout", "has_delivery", "wheelchair_accessible_ entrance". Richer and more machine-readable than the display labels on Location.Services, and confirmed to differ between locations. | |||
| data.profile.google_cid | string | No | GoogleCID and FacebookStoreID are this location's ids on those platforms -- useful for joining against external datasets. Both confirmed distinct per location. | |||
| data.profile.meals_served | array | No | MealsServed are the dayparts this location serves, e.g. "LUNCH". | |||
| data.profile.payment_options | array | No | PaymentOptions are accepted payment methods, e.g. "APPLEPAY", "CASH". | |||
| data.profile.permanently_closed | boolean | No | PermanentlyClosed reports Yext's own closed flag for this location. | |||
| data.profile.review_invite_url | string | No | ||||
| data.profile.review_page_url | string | No | ReviewPageURL and ReviewInviteURL are this restaurant's own first-party review pages, distinct per location. | |||
| data.profile.routable_latitude | number | No | RoutableLatitude/RoutableLongitude are Yext's driving-destination coordinate, which differs from the display pin (Location.Latitude) -- use it for routing, not for map placement. | |||
| data.profile.routable_longitude | number | No | ||||
| data.profile.services | array | No | Services are Yext's plain service labels ("Dine-In", "Takeout"), published separately from Location.Services' amenity labels. | |||
| 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" |
| 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 |
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"