Save a copy
Copies a recipe that is visible to the caller — typically one shared through a household — into their own library as an independent record. Later edits to the original do not propagate.
Copies a recipe that is visible to the caller — typically one shared through a household — into their own library as an independent record. Later edits to the original do not propagate.
Authorization
bearerAuth A Clerk session JWT. Obtain one with a Clerk frontend SDK
(session.getToken()) or, for server-to-server use, with a Clerk
machine token. The token's sub claim is the Flambe user id that scopes
every request.
In: header
Path Parameters
Recipe identifier.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/recipes/497f6eca-6276-4993-bfeb-53cbbbba6f08/save-copy"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "user_id": "string", "title": "Brown Butter Chocolate Chip Cookies", "subtitle": "string", "description": "string", "notes": "", "tags": [ "dessert", "cookies" ], "ingredients": [ { "name": "all-purpose flour", "quantity": 2.5, "unit": "cups", "preparation": "sifted", "isOptional": false } ], "components": [ { "title": "Brown butter frosting", "description": "string", "notes": "string", "ingredients": [ { "name": "all-purpose flour", "quantity": 2.5, "unit": "cups", "preparation": "sifted", "isOptional": false } ], "instructions": [ "string" ] } ], "instructions": [ "string" ], "media": [ { "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "url": "http://example.com", "blur_hash": "string", "width": 0, "height": 0, "kind": "image" } ], "blur_hash": "string", "prep_time": 20, "cook_time": 12, "servings": 24, "difficulty": "easy", "rating": 0, "source_section": "string", "nutrition": { "calories": 0, "protein_g": 0, "fat_g": 0, "carbs_g": 0, "fiber_g": 0, "sugar_g": 0, "sodium_mg": 0, "per": "serving", "computed_at": "2019-08-24T14:15:22Z", "ingredients_hash": "string" }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}List recipes GET
The authenticated user's recipe library, plus any recipes shared with them through a household. Supports two independent mechanisms: - **Pagination** — `limit` (default 24, max 100) and `cursor`. - **Delta sync** — pass `updated_since` to receive only recipes changed since that instant, along with `revoked_ids` for recipes that are no longer visible. Mirror `server_timestamp` back as the next `updated_since`. Change history is retained for 30 days. A watermark older than 25 days is refused with `full_sync_required: true` and an empty result — drop your local state and re-sync without `updated_since`.
Set legacy source PUT
The v1 provenance model, kept for older clients. Use `PUT /api/recipes/{id}/source-v2` or `POST /api/recipes/{id}/sources`.