Recipe Import API
Send plain text recipe content. Get back a link that opens in the Replay Recipes app with the recipe parsed and ready to cook.
Quick Start
One request is all you need. No authentication required for basic usage.
curl -X POST https://www.replayrecipes.com/api/import \
-H "Content-Type: text/plain" \
-d 'Chicken Parmesan
Ingredients:
2 chicken breasts
1 cup breadcrumbs
1/2 cup parmesan cheese, grated
1 cup marinara sauce
1 cup mozzarella cheese, shredded
2 eggs, beaten
Salt and pepper to taste
Instructions:
1. Preheat oven to 425°F.
2. Season chicken with salt and pepper.
3. Dip in beaten eggs, then coat with breadcrumbs mixed with parmesan.
4. Bake for 20 minutes until golden.
5. Top with marinara and mozzarella.
6. Bake 10 more minutes until cheese melts.
Serves 2'{
"success": true,
"url": "https://replay-recipes.web.app/recipe/abc123/chicken-parmesan?import=true",
"recipe": {
"id": "abc123",
"title": "Chicken Parmesan",
"servings": 2
}
}Your API Key
Generate an API key for higher rate limits and usage tracking.
Quick Setup
Copy a ready-to-use config for your platform. Your API key is pre-filled automatically.
Generate an API key above to auto-fill these config snippets.
{
"mcpServers": {
"replay-recipes": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://replayrecipes.com/api/mcp"
],
"env": {
"API_KEY": "YOUR_API_KEY"
}
}
}
}Endpoint Reference
/api/importHeaders
| Header | Required | Description |
|---|---|---|
Content-Type | Yes | text/plain or application/json |
X-API-Key | No | API key for higher rate limits (100/hr vs 5/hr) |
X-Source | No | Identifier for your integration (e.g. claude-mcp) |
Body
text/plain
Raw recipe text as the request body. Must be at least 50 characters. Include a title, ingredients, and optionally instructions.
application/json
JSON object with a text field containing the recipe content, and an optional source field.
{ "text": "Recipe content...", "source": "my-app" }Rate Limits
Without API Key
5 / hour
Per IP address
With API Key
100 / hour
Per API key
Code Examples
import requests
response = requests.post(
"https://www.replayrecipes.com/api/import",
headers={
"Content-Type": "text/plain",
"X-API-Key": "rr_your_key_here", # optional
"X-Source": "my-app",
},
data="""Chocolate Chip Cookies
Ingredients:
2 1/4 cups all-purpose flour
1 cup butter, softened
3/4 cup sugar
2 eggs
1 tsp vanilla extract
2 cups chocolate chips
Instructions:
1. Cream butter and sugar until fluffy.
2. Beat in eggs and vanilla.
3. Mix in flour gradually.
4. Fold in chocolate chips.
5. Drop spoonfuls onto baking sheet.
6. Bake at 375°F for 9-11 minutes.
Makes 48 cookies""",
)
data = response.json()
print(data["url"]) # Deep link to open in appconst response = await fetch("https://www.replayrecipes.com/api/import", {
method: "POST",
headers: {
"Content-Type": "text/plain",
"X-API-Key": "rr_your_key_here", // optional
"X-Source": "my-app",
},
body: recipeText,
});
const data = await response.json();
console.log(data.url); // Deep link to open in appAI Assistant Integration
Build an MCP server that lets Claude, ChatGPT, or any AI assistant import recipes directly into Replay Recipes.
MCP Integration GuideError Codes
| Status | Meaning |
|---|---|
| 200 | Recipe imported successfully |
| 400 | Text too short (<50 chars) or too long (>50k chars) |
| 401 | Invalid API key |
| 429 | Rate limit exceeded (check Retry-After header) |
| 500 | AI parsing failed or internal error |