Create Recipe
Create a new recipe — start a new recipe from scratch.
Only name is required. Country defaults to US and demographic to
adults_and_children_over_4. Recipe name must be unique within the
organization. Country determines the regulatory authority (US -> US_FDA).
The response carries version_id — the sealed Version ULID — which
callers pass back as If-Match on the next mutation for optimistic
concurrency. On a conflict the server returns 412 with the current
version_id so the client can refetch and retry.
Header Parameters
Optimistic-concurrency token. Pass the version_id returned by the previous mutation (or by GET /recipes/{id}/versions) so the server can reject the request when another writer has advanced the recipe in the meantime. A mismatch surfaces HTTP 412 with the current version_id in the response body so the client can decide whether to retry, merge, or surface the conflict to the user. Only consumed on API versions that declare the recipe_versioning capability — older versions ignore the header.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/studio/recipes" \ -H "Content-Type: application/json" \ -d '{ "name": "Chocolate Chip Cookies" }'{
"data": {
"id": "string",
"name": "string",
"country": "US",
"regulatory_authority": "US_FDA",
"demographic": "adults_and_children_over_4",
"status": "active",
"created_at": "string",
"updated_at": "string",
"summary": {
"ingredient_count": 0,
"has_nutrition": true,
"is_nutrition_current": true,
"serving_count": 0,
"has_nutrition_facts": true
},
"actions": {
"can_modify": true,
"can_archive": true,
"can_delete": true
}
},
"meta": {
"version": "string",
"request_id": "string",
"timestamp": "string"
},
"version_id": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}