Tandoor Recipes · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Tandoor API
8 actions
8 updates
servers
Derived by API Evangelist
Built from the contracts Tandoor Recipes publishes. Tandoor Recipes did not publish this file.
What the actions change
x-dry-run-forx-agent-safetyx-api-evangelistserversdescriptionx-token-endpointssummaryx-api-evangelist-note
Targets 8
$.info
$
$.components.securitySchemes.ApiKeyAuth
$.paths['/api/recipe/{id}/cascading/'].get
$.paths['/api/recipe/{id}/protecting/'].get
$.paths['/api/recipe/{id}/nulling/'].get
$.paths['/api/recipe/'].get
$.paths['/api/meal-plan/ical/'].get
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Tandoor API
version: 1.0.0
x-provenance:
generated: '2026-08-27'
method: generated
source: openapi/tandoor-api-openapi.yml
extends: openapi/tandoor-api-openapi.yml
note: >-
This overlay carries API Evangelist's additions ONLY. It never mutates Tandoor's own contract on
disk. Every value below is either an observed fact (the server host, the media type, the live
document URL) or a label for behaviour already described in Tandoor's own operation descriptions
(the delete-impact endpoints). No error responses, examples or schemas are invented — the fact
that the contract declares none is recorded as a finding in errors/tandoor-problem-types.yml, not
papered over here.
actions:
- target: $.info
description: >-
Record where this document was actually fetched from and what it describes, since Tandoor's own
info block carries only a title and the running build number.
update:
x-api-evangelist:
harvested_from: https://app.tandoor.dev/openapi/
harvested_at: '2026-08-27'
harvest_status: 200
content_type: application/vnd.oai.openapi
product: Tandoor Recipes
vendor: Tandoor Recipes (Benedikt Sienz, Falkensee, Germany)
deployment_model: self-hosted-first-with-hosted-option
documentation: https://docs.tandoor.dev/
source_code: https://github.com/TandoorRecipes/recipes
operations: 462
paths: 244
schemas: 244
- target: $
description: >-
The published document declares no servers[]. Tandoor is deployed per-instance, so the correct
server list is a template plus the vendor's own hosted instance. Both entries below are
observed, not guessed: app.tandoor.dev is where this document was fetched, and the {instance}
form is how every self-hosted deployment is addressed.
update:
servers:
- url: https://app.tandoor.dev
description: Tandoor's hosted service. Requires an account; the OpenAPI document itself is public.
- url: https://{instance}
description: Any self-hosted Tandoor instance. The API lives under /api/ and the contract under /openapi/.
variables:
instance:
default: tandoor.example.com
description: Hostname of the Tandoor instance you are integrating with.
- target: $.components.securitySchemes.ApiKeyAuth
description: >-
Tandoor declares the scheme but not how to obtain or format the credential. Both facts come from
the contract itself (/api/access-token/, POST /api-token-auth/).
update:
description: >-
An access token sent in the Authorization request header. Tokens are created through
/api/access-token/ in the application, or minted by POSTing {username, password} to
/api-token-auth/. Session-cookie authentication also works for browser clients.
x-token-endpoints:
- POST /api-token-auth/
- POST /api/access-token/
- target: $.paths['/api/recipe/{id}/cascading/'].get
description: Label Tandoor's delete-impact preview as a dry run so agent tooling can find it.
update:
x-dry-run-for: DELETE /api/recipe/{id}/
x-agent-safety: >-
Read-only preview of what a delete would destroy. Call this before apiRecipeDestroy.
- target: $.paths['/api/recipe/{id}/protecting/'].get
description: Label the delete-blocking preview.
update:
x-dry-run-for: DELETE /api/recipe/{id}/
x-agent-safety: >-
Lists the objects that will make the delete FAIL. A non-empty result means the delete is
refused, not that it is dangerous.
- target: $.paths['/api/recipe/{id}/nulling/'].get
description: Label the reference-nulling preview.
update:
x-dry-run-for: DELETE /api/recipe/{id}/
x-agent-safety: >-
Lists the objects that will keep existing but lose their reference to this one.
- target: $.paths['/api/recipe/'].get
description: >-
drf-spectacular generates no summary for any operation in this contract. Adding one to the most
used operation makes the entry point legible without touching Tandoor's own document.
update:
summary: Search and list recipes
x-api-evangelist-note: >-
The richest filter surface in the API — free-text `query`, plus five-way keyword and food
modifiers (or/and/or_not/and_not), books, rating, timescooked, makenow, new and random.
Paginated with page/page_size.
- target: $.paths['/api/meal-plan/ical/'].get
description: Flag the only non-JSON response in the contract.
update:
x-media-type: text/calendar
x-standard: RFC 5545 (iCalendar)
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/tandoor-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.