API v1 · read-only · no key
RecetteClic developer documentation
Public, read-only access to the RecetteClic recipe directory: community recipes structured by AI from TikTok, YouTube, Instagram videos and websites, with ingredients, steps, timings and estimated nutrition. Three interfaces over the same data: a REST API, an MCP server and an A2A agent.
Authentication
None. Every endpoint documented here is public and read-only: no account, no API key, no OAuth. Requests are limited per IP (see Rate limits).
When you show a recipe, link its page (https://recetteclic.app/<locale>/r/<slug>) and credit the original creator (originalAuthor, sourceUrl). Recipes with isPublic: false are shared by link only: do not list or republish them.
Base URL and versioning
https://api.recetteclic.app/v1- The major version is in the path:
/v1. Within a version, changes are additive only: new endpoints, new optional parameters, new response fields. Ignore fields you do not know. - A breaking change ships as a new version (
/v2); the previous one keeps working until its sunset date. - Deprecation is announced at least 6 months before removal, by the
Deprecationheader (RFC 9745) and theSunsetheader (RFC 8594) on every response of the affected endpoint, and on this page. - Machine-readable description: OpenAPI 3.1.
Language
Recipe text is served in French, English or Spanish. Send the x-rc-locale header (fr, en or es, default fr); a missing translation falls back to the original text.
curl -sS -H 'x-rc-locale: en' 'https://api.recetteclic.app/v1/recipes/by-slug/tarte-aux-figues-jepfsanl'GET /v1/recipes/public/list — Search or browse public recipes
Newest first. q matches the original title, description and tags (mostly French); ingredients are not searched.
| Parameter | In | Type | Description |
|---|---|---|---|
q | query | string, max 80 chars | Keyword matched against the original title, description and tags. |
tag | query | string | Category slug from /recipes/public/tags. |
page | query | integer, default 1 | Page number, from 1. |
limit | query | integer, default 30, max 60 | Results per page. |
x-rc-locale | header | string, fr / en / es, default fr | Language of the returned recipe text. |
curl -sS 'https://api.recetteclic.app/v1/recipes/public/list?q=lasagne&limit=5'GET /v1/recipes/by-slug/{slug} — Full recipe by slug
Ingredients, steps, servings, timings, estimated nutrition per serving, source and author. Also serves recipes shared by link only (isPublic: false); do not list or republish those.
| Parameter | In | Type | Description |
|---|---|---|---|
slug | path | string | |
x-rc-locale | header | string, fr / en / es, default fr | Language of the returned recipe text. |
curl -sS 'https://api.recetteclic.app/v1/recipes/by-slug/tarte-aux-figues-jepfsanl'GET /v1/health — Service status
curl -sS 'https://api.recetteclic.app/v1/health'Errors
Every 4xx and 5xx response has a JSON body with a stable machine-readable error code and a human-readable message. Switch on error, never on message.
{ "error": "not_found", "message": "No recipe with this slug." }| Status | error | When |
|---|---|---|
| 404 | not_found | Unknown path, or no recipe with this slug. |
| 429 | rate_limited | More than 120 requests per 60 s from one IP. Wait Retry-After seconds. |
| 500 | internal_error | Unexpected server error. Safe to retry with backoff. |
Rate limits
The REST API allows 120 requests per 60 seconds per IP. Every response announces the quota, so you can throttle before you hit it:
RateLimit-Policy: "public-v1";q=120;w=60
RateLimit: "public-v1";r=117;t=48
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 48RateLimitandRateLimit-Policyfollow the IETF draftdraft-ietf-httpapi-ratelimit-headers:q= requests per window,w= window in seconds,r= requests left,t= seconds until reset.RateLimit-Limit,RateLimit-RemainingandRateLimit-Resetcarry the same values in the older, widely parsed form.- Over the limit:
429withRetry-After(seconds) and{ "error": "rate_limited", "retryAfterSec": … }. Wait that long, then retry. - The MCP server and the A2A agent allow 60 requests per minute per IP, with the same headers.
MCP server and A2A agent
- MCP (streamable HTTP, stateless, no auth):
https://recetteclic.app/agents/mcp. Tools:search_recipes,get_recipe,list_categories,about_recetteclic. Server card. - A2A (JSON-RPC):
https://recetteclic.app/agents/a2a. Agent card. - Any public page of recetteclic.app is also served as markdown with the
Accept: text/markdownheader.
Discovery documents
Contact
Questions, higher limits or a bug: hello@recetteclic.app.