Headless API Access
Recipe Kit provides a public API for headless Shopify stores and custom integrations.
Available on: Enterprise plan only
To get started: Contact support at [email protected] to request API access.
API Overview
The Recipe Kit API allows you to:
- Fetch recipes for custom frontends
- Build headless commerce experiences
- Integrate recipes into mobile apps
- Create custom recipe displays
Base URL
All API endpoints are accessed via:
https://app.getrecipekit.com/api/public/
Available Endpoints
List Recipes
Endpoint: GET /api/public/recipes
Parameters:
| Parameter | Type | Description |
|---|---|---|
limit |
number | Results per page (default: 20, max: 50) |
cursor |
string | Recipe ID for pagination |
category |
string | Filter by category |
dietary |
string | Filter by dietary tags (comma-separated) |
q |
string | Search title and description |
sort |
string | Sort order: recent, popular, alphabetical |
Valid Dietary Tags:
veganvegetariangluten-freedairy-freeketopaleolow-carbnut-freesugar-free
Example Response:
{
"success": true,
"recipes": [
{
"id": "12345",
"title": "Chocolate Chip Cookies",
"description": "Classic homemade cookies",
"image": "https://...",
"imageAlt": "Chocolate chip cookies on a plate",
"category": "Desserts",
"cuisine": "American",
"tags": ["vegetarian"],
"prepTime": "15",
"cookTime": "12",
"servingSize": "24",
"store": {
"name": "Example Bakery",
"domain": "example-bakery.myshopify.com"
}
}
],
"pagination": {
"nextCursor": "12344",
"hasNextPage": true,
"limit": 20
},
"filters": {
"category": null,
"dietary": [],
"search": null,
"sort": "recent"
}
}
Get Single Recipe
Endpoint: GET /api/public/recipes/:id
Returns full recipe details including ingredients, directions, nutrition, and equipment.
Example Response:
{
"success": true,
"recipe": {
"id": "12345",
"title": "Chocolate Chip Cookies",
"description": "Classic homemade cookies",
"author": "Jane Baker",
"image": "https://...",
"imageAlt": "Chocolate chip cookies",
"category": "Desserts",
"cuisine": "American",
"tags": ["vegetarian"],
"prepTime": "15",
"cookTime": "12",
"servingSize": "24",
"calories": "150",
"ingredients": [
{ "text": "butter", "quantity": "1", "unit": "cup" },
{ "text": "sugar", "quantity": "1", "unit": "cup" }
],
"directions": [
{ "text": "Preheat oven to 375°F" },
{ "text": "Cream butter and sugar together" }
],
"nutrition": { ... },
"equipment": ["mixing bowl", "baking sheet"],
"note": "Best served warm",
"video": null,
"customFields": {},
"store": {
"name": "Example Bakery",
"domain": "example-bakery.myshopify.com",
"url": "https://example-bakery.com"
}
}
}
List Categories
Endpoint: GET /api/public/categories
Returns available recipe categories with recipe counts.
Example Response:
{
"success": true,
"categories": [
{ "name": "Desserts", "count": 45 },
{ "name": "Main Course", "count": 32 },
{ "name": "Appetizers", "count": 18 }
]
}
Pagination
The API uses cursor-based pagination:
- First request: No cursor parameter
- Response includes
nextCursorif more results exist - Pass
cursorparameter for next page - Continue until
hasNextPageis false
Example:
GET /api/public/recipes?limit=20
GET /api/public/recipes?limit=20&cursor=12344
Filtering Examples
By Category
GET /api/public/recipes?category=Italian
By Dietary Tags
GET /api/public/recipes?dietary=vegan
GET /api/public/recipes?dietary=vegan,gluten-free
Search
GET /api/public/recipes?q=chocolate
Combined Filters
GET /api/public/recipes?category=Desserts&dietary=vegan&q=cake&sort=alphabetical
Rate Limiting
The API is rate limited to 100 requests per minute per IP address.
When exceeded:
- 429 status code returned
- Wait before retrying
Caching
- Recipe list: cached for 5 minutes
- Single recipe: cached for 5 minutes
- Categories: cached for 15 minutes
Responses include cache headers (X-Cache: HIT or X-Cache: MISS).
Error Responses
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Invalid request parameters |
| 404 | Recipe not found |
| 405 | Method not allowed (only GET supported) |
| 429 | Rate limit exceeded |
| 500 | Server error |
What's Next?
- Linking Products to Recipes - Product integration
- Contact Support - API questions