Culvers API endpoint
Returns one Fresh Frozen Custard flavor's full detail, including its declared allergens, a component-by-component ingredient breakdown, and Culver's own flavor-category labels. slug comes from GET /culvers/calendar (flavors[].slug) or GET /culvers/store (flavors_of_the_day[].slug).
/culvers/flavorReturns one Fresh Frozen Custard flavor's full detail, including its declared allergens, a component-by-component ingredient breakdown, and Culver's own flavor-category labels. This is the only endpoint in the Culver's family that exposes allergen and ingredient data.
Query parameters:
slug (required) — flavor slug, e.g. chocolate-covered-strawberry. Slugs come from /culvers/calendar (flavors[].slug) or /culvers/store (flavors_of_the_day[].slug).An unknown slug returns 404. The index pages under the same path prefix (view-all-flavors) also return 404, because Culver's serves them with an empty flavor block rather than a not-found status.
Response includes flavor_id, menu_item_id, name, slug, description, image_url, allergens[], ingredients[], categories[], nutrition_url, source_url, and fetched_at.
allergens[] is Culver's declared major-allergen list, split from its comma-separated form, e.g. ["Egg","Milk","Soy"].
ingredients[] breaks the flavor into components, each with title and details — the component's full ingredient statement, including Culver's own upper-case allergen callouts such as CONTAINS MILK, EGG.
categories[] is Culver's flavor taxonomy, e.g. ["Chocolate","Fruit","Vanilla"].
nutrition_url links Culver's Nutritionix label for the flavor.
| Field | In the sample | Value in the sample |
|---|---|---|
| flavor_id | Has a value | |
| menu_item_id | Has a value | |
| name | Has a value | “Chocolate Covered Strawberry” |
| slug | Has a value | |
| description | Has a value | “Our creamy Vanilla Fresh Frozen Custard complemented with p…” |
| image_url | Has a value | cdn.culvers.com |
| allergens | Has a value | 3 entries |
| ingredients | Has a value | 3 entries |
| categories | Has a value | 3 entries |
| nutrition_url | Has a value | restaurant.nutritionix.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Flavor slug from /culvers/calendar or /culvers/store | chocolate-covered-strawberry | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/culvers/flavor?slug=chocolate-covered-strawberry" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"flavor_id": 69,
"menu_item_id": 735,
"name": "Chocolate Covered Strawberry",
"slug": "chocolate-covered-strawberry",
"description": "Our creamy Vanilla Fresh Frozen Custard complemented with plump strawberries and novelty chocolate.",
"image_url": "https://cdn.culvers.com/menu-item-detail/img-Chocolate-Covered-Strawberry1.png",
"allergens": [
"Egg",
"Milk",
"Soy"
],
"ingredients": [
{
"title": "Vanilla Frozen Custard",
"details": "Milk (pasteurized), Cream, Skim Milk, Sugar, Corn Syrup, Egg Yolk (pasteurized), Guar Gum, Mono and Diglycerides, Locust Bean Gum, Carrageenan, Natural and Artificial Vanilla Flavor. CONTAINS MILK, EGG"
}
],
"categories": [
"Chocolate",
"Fruit",
"Vanilla"
],
"nutrition_url": "https://restaurant.nutritionix.com/culvers/label/modifier/150095",
"source_url": "https://www.culvers.com/flavor-of-the-day/chocolate-covered-strawberry",
"fetched_at": "2026-09-05T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/culvers.flavorResponseDoc
| 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 | culvers.FlavorResponse | No | ||||
| data.allergens | array | No | Allergens are the major allergens Culver's declares for this flavor, split from its comma-separated list, e.g. ["Egg","Milk","Soy"]. | |||
| data.categories | array | No | Categories are Culver's own flavor-taxonomy labels, e.g. ["Chocolate","Fruit","Vanilla"]. | |||
| data.description | string | No | Description is Culver's own marketing description of the flavor. | |||
| data.fetched_at | string | No | ||||
| data.flavor_id | integer | No | 69 | |||
| data.image_url | string | No | ||||
| data.ingredients | array | No | Ingredients breaks the flavor into its components, each with its own full ingredient statement. | |||
| data.ingredients[].details | string | No | Details is the component's full ingredient statement, including Culver's own upper-case allergen callouts (e.g. "CONTAINS MILK, EGG"). | |||
| data.ingredients[].title | string | No | Vanilla Frozen Custard | |||
| data.menu_item_id | integer | No | 735 | |||
| data.name | string | No | Chocolate Covered Strawberry | |||
| data.nutrition_url | string | No | NutritionURL is Culver's Nutritionix label for this flavor. | |||
| data.slug | string | No | chocolate-covered-strawberry | |||
| 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 |
| 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/culvers/flavor?slug=chocolate-covered-strawberry" \
-H "x-api-key: $CRAWLORA_API_KEY"