FiveGuys API endpoint
Returns one page of Five Guys' published customer FAQ corpus -- 142 entries across 17 categories (Menu, Nutritional and Allergens, Ordering, Gift Card, Careers, Franchise, App, Company, The Crew, and others), filterable by category id and free text, in English (default) or Spanish via `lang`. Get valid category values from GET /fiveguys/faq-categories using the same `lang` -- category ids are language-specific.
/fiveguys/faqQuery parameters:
lang (optional, default en) — content language. One of en, es. Any other value is rejected (the CMS silently serves English for unsupported codes).search (optional) — free-text filter over question and answer text.category (optional) — comma-separated faq_category term ids, from /api/v1/fiveguys/faq-categories.page (optional, default 1) — 1-based page number.per_page (optional, default 20, max 100) — entries per page.Response includes entries[], pagination (page, per_page, total, total_pages), source_url, and fetched_at. Each entry has:
id, slug, question.answer — the answer body flattened to plain text.answer_html (optional) — the same answer with its original markup preserved (some answers carry links).categories[] (optional) — each with id, name, slug.page_url, modified_at.Pass lang=es for the Spanish FAQ corpus. Coverage is close to but not identical to English — 139 translated entries across 15 categories versus 142 across 17 in English, confirmed live.
Category ids are language-specific. The same category has a different id in each language, so read ids from /api/v1/fiveguys/faq-categories with the same lang you intend to query with, and do not reuse an English id under lang=es.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| slug | 20 | |
| question | 20 | “Am I receiving the same number of fries in a fry bag versus…” and 18 other values |
| answer | 20 | median 172 characters |
| answer_html | 20 | median 204 characters |
| categories | 20 | median 1 entry |
| page_url | 20 | |
| modified_at | 20 | 2025-07-19 to 2026-06-30 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| search | string | No | Optional. Free-text filter over question and answer text. | gluten | |
| category | string | No | Optional. Comma-separated faq_category term ids, from GET /fiveguys/faq-categories. | 21 | |
| page | integer | No | Optional. 1-based page number, default 1. | 1 | |
| per_page | integer | No | Optional. Entries per page, 1-100, default 20. | 20 | |
| lang | string | No | Optional. Content language: en (default) or es. Allowed values: en, es. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fiveguys/faq?page=1&lang=en" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"entries": [
{
"id": 4817,
"slug": "im-writing-a-story-about-five-guys-who-should-i-contact",
"question": "I'm writing a story about Five Guys. Who should I contact?",
"answer": "Please direct media inquiries to External Communications Specialist Christine Cube at press@fiveguys.com.",
"answer_html": "Please direct media inquiries to External Communications Specialist Christine Cube at <a href=\"mailto:press@fiveguys.com\"><strong>press@fiveguys.com</strong></a>.",
"categories": [
{
"id": 132,
"name": "Media Relations",
"slug": "media-relations"
}
],
"page_url": "https://www.fiveguys.com/?faq=im-writing-a-story-about-five-guys-who-should-i-contact",
"modified_at": "2026-06-30T20:29:34Z"
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 142,
"total_pages": 8
},
"source_url": "https://www.fiveguys.com/wp-json/wp/v2/faq?page=1&per_page=20",
"fetched_at": "2026-09-05T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/fiveguys.faqResponseDoc
| 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.FAQResponse | No | ||||
| data.entries | array | No | ||||
| data.entries[].answer | string | No | ||||
| data.entries[].answer_html | string | No | ||||
| data.entries[].categories | array | No | ||||
| data.entries[].categories[].id | integer | No | 21 | |||
| data.entries[].categories[].name | string | No | Menu | |||
| data.entries[].categories[].slug | string | No | menu | |||
| data.entries[].id | integer | No | 4817 | |||
| data.entries[].modified_at | string | No | 2026-06-30T20:29:34Z | |||
| data.entries[].page_url | string | No | ||||
| data.entries[].question | string | No | I'm writing a story about Five Guys. Who should I contact? | |||
| data.entries[].slug | string | No | im-writing-a-story-about-five-guys-who-should-i-contact | |||
| data.fetched_at | string | No | ||||
| data.pagination | fiveguys.pagination | No | ||||
| data.pagination.page | integer | No | 1 | |||
| data.pagination.per_page | integer | No | 20 | |||
| data.pagination.total | integer | No | 142 | |||
| data.pagination.total_pages | integer | No | 8 | |||
| 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/faq?page=1&lang=en" \
-H "x-api-key: $CRAWLORA_API_KEY"