API do Chef
API REST em JSON. Leitura pública (CORS liberado); escrita exige uma chave gerada em Painel → API, enviada somente no cabeçalho Authorization: Bearer … (nunca na URL).
Limites: 600 leituras e 120 escritas por minuto por IP (veja os cabeçalhos RateLimit-Remaining e Retry-After); 20 importações por minuto; corpo JSON até 1 MB (20 MB na importação em lote); até 20 arquivos de 200 MB por envio.
Especificação OpenAPI: /api/v1/openapi.json
Exemplos
# Buscar por palavra-chave
curl "https://chef.jf.eng.br/api/v1/recipes?q=bolo&maxTime=60"
# Buscar por código
curl "https://chef.jf.eng.br/api/v1/recipes/code/K7M2QX"
# O que fazer com o que tenho em casa
curl "https://chef.jf.eng.br/api/v1/recipes?ingredients=ovo,tomate"
# Criar receita
curl -X POST "https://chef.jf.eng.br/api/v1/recipes" \
-H "Authorization: Bearer SUA_CHAVE" -H "Content-Type: application/json" \
-d '{"title":"Brigadeiro","ingredients":"1 lata de leite condensado\n1 colher (sopa) de manteiga\n4 colheres (sopa) de chocolate em pó","steps":"Misture tudo em fogo baixo.\nMexa por 10 minutos até desgrudar.","status":"published"}'
# Importar de uma URL (pré-visualizar ou salvar)
curl -X POST "https://chef.jf.eng.br/api/v1/import" \
-H "Authorization: Bearer SUA_CHAVE" -H "Content-Type: application/json" \
-d '{"url":"https://site.com/receita","save":true,"status":"draft"}'
# Enviar foto ou vídeo
curl -X POST "https://chef.jf.eng.br/api/v1/uploads" -H "Authorization: Bearer SUA_CHAVE" -F "[email protected]"
Endpoints
GET | /api/v1/recipes | Lista/busca (q, code, category, tag, diet, maxTime, difficulty, ingredients, sort, page, perPage) |
GET | /api/v1/recipes/{id|código|slug} | Detalhe |
GET | /api/v1/recipes/code/{código} | Busca exata por código |
POST | /api/v1/recipes | Criar 🔑 |
PUT/PATCH | /api/v1/recipes/{ref} | Atualizar 🔑 |
DELETE | /api/v1/recipes/{ref} | Remover 🔑 |
POST | /api/v1/recipes/{ref}/duplicate | Duplicar 🔑 |
GET/POST | /api/v1/recipes/{ref}/comments | Comentários e notas |
GET | /api/v1/search/suggest?q= | Autocomplete |
POST | /api/v1/import | Importar por URL 🔑 |
POST | /api/v1/import/json | Importar JSON em lote 🔑 |
GET | /api/v1/export | Backup completo 🔑 |
POST | /api/v1/uploads | Fotos e vídeos 🔑 |
GET/POST | /api/v1/categories | Categorias |
GET | /api/v1/tags | Tags |
GET/POST/PUT/DELETE | /api/v1/products | Produtos de afiliado 🔑 |
GET/POST/PUT/DELETE | /api/v1/ads | Anúncios 🔑 |
GET/PUT | /api/v1/settings | Configurações 🔑 |
GET | /api/v1/stats | Estatísticas 🔑 |
POST | /api/v1/auth/logout-all | Sair de todos os aparelhos 🔑 |
DELETE | /api/v1/uploads/{id} | Remover arquivo 🔑 |
GET | /api/v1/audit | Auditoria (admin) 🔑 |