Documentação da API da NFL
Gere rótulos nutricionais compatíveis, gerencie receitas e extraia dados nutricionais de forma programática. Duas coisas funcionam hoje para todas as contas qualificadas: incorporação de rótulo ao vivo e exportações renderizadas pelo servidorA API de recursos REST está em acesso antecipado no plano Business.
A API aceita e retorna apenas JSON (os endpoints de renderização de rótulos retornam o arquivo binário).
Definição
https://nutritionfactlabel.com/api/v1
endpoint da API
Todos os recursos REST residem sob uma única URL base versionada. Alterações que quebram a compatibilidade são sempre lançadas sob um novo prefixo de versão. Durante o acesso antecipado, o e-mail de boas-vindas confirma a URL base ativa para suas chaves.
Resumo dos padrões de URL de recursos
/v1/recipes
/v1/recipes/{RECIPE_ID}
/v1/recipes/{RECIPE_ID}/label.{svg|png|pdf}
/v1/ingredients
/v1/ingredients/{INGREDIENT_ID}
/v1/analyze
Autenticação
Autentique cada solicitação com sua chave secreta no Authorization Cabeçalho. As chaves são específicas para sua conta e contêm os direitos do seu plano: os mesmos controles do lado do servidor que o aplicativo.
Mantenha as chaves em segredo. Nunca envie chaves no código do lado do cliente; utilize um proxy através do seu backend. Em caso de vazamento de chaves, entre em contato imediatamente com o suporte.
Exemplo de solicitação
curl https://nutritionfactlabel.com/api/v1/recipes \ -H 'Authorization: Bearer nfl_live_9f30c2...'
Limites de taxa
Para manter as coisas justas e estáveis: 60 solicitações por minuto por chave; os rótulos são adicionalmente limitados a 5 simultâneos; corpos de requisição de 1 MB. Acima desse limite, você obtém 429 com um Retry-After cabeçalho.
Exemplo de resposta
HTTP/2 429 Too Many Requests
Retry-After: 22
{ "error": { "code": "rate_limited",
"message": "Try again in 22 seconds." } }
Incorporação de rótulo ao vivo Disponível agora
Exiba um rótulo sempre atualizado em qualquer site, sem chave de API. Habilite a incorporação em uma receita no Gerador (linha da receita → Incorporar) para obter seu token público.
A tag de script ajusta automaticamente sua altura; atualize a receita na NFL e todas as páginas que exibem o conteúdo incorporado serão atualizadas. Planos Profissional e Empresarial; desativar o conteúdo incorporado remove o token imediatamente.
Definição: tag de script
<script src="https://nutritionfactlabel.com/embed.js"
data-label="YOUR_EMBED_TOKEN"
data-width="290"></script>
Alternativa: iframe
<iframe src="https://nutritionfactlabel.com/embed/TOKEN" width="290" height="560" frameborder="0" title="Nutrition Facts"></iframe>
Exportações de etiquetas Disponível agora
SVG / PNG / PDF renderizados no servidor pelo mesmo mecanismo do aplicativo, com regras do plano (formatos, tipos de arquivo, marca d'água) aplicadas desde o início. Chame-o diretamente com seu token de sessão até que as chaves da API estejam disponíveis para o público em geral. Retorna o arquivo binário ou 403 fora do seu plano.
Duas observações sobre a paridade com a exportação no aplicativo. O aplicativo é renderizado no navegador, portanto, use este endpoint quando precisar de um rótulo gerado sem um. E jpg atualmente retorna bytes PNG, enquanto eps e ai São formatos exclusivos para exportação que o endpoint não suporta.
Definição
POST /functions/v1/export-label
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json
{
"fileType": "pdf",
"data": { ...label state },
"extra": { }
}
Receitas Acesso antecipado · Negócios
O objetivo principal: ingredientes, porções e um label_format (152 formatos em 114 países) produzem o calculado labelInformações nutricionais arredondadas de acordo com a jurisdição, lista de ingredientes, alérgenos.
Principais atributos: id, name, servings, serving_weight_g, label_format, label (calculado), embed_enabled, carimbos de data/hora.
Definição
GET /v1/recipes
POST /v1/recipes
GET /v1/recipes/{ID}
PUT /v1/recipes/{ID}
DELETE /v1/recipes/{ID}
GET /v1/recipes/{ID}/label.pdf
Exemplo de resposta
{
"id": "rcp_2m4k9q",
"name": "Chocolate Chip Cookies",
"servings": 12,
"serving_weight_g": 28,
"label_format": "standard",
"label": {
"calories": 140,
"total_fat_g": 7,
"allergens": ["wheat","milk","soy"],
...
},
"embed_enabled": false
}
Ingredientes Acesso antecipado · Negócios
Ingredientes personalizados com informações nutricionais por 100 g, espécies de alérgenos e custo opcional, idênticos aos criados no aplicativo, pesquisáveis no Gerador. Endereço dos ingredientes segundo o USDA. usda:{fdc_id}; definir "archived": true arquivar (excluído das listas por padrão).
Definição
GET /v1/ingredients
POST /v1/ingredients
GET /v1/ingredients/{ID}
PUT /v1/ingredients/{ID}
DELETE /v1/ingredients/{ID}
Exemplo de solicitação
POST /v1/ingredients
{
"name": "Organic almond flour",
"nutrients_per_100g": {
"calories": 571, "total_fat_g": 50,
"protein_g": 21, "dietary_fiber_g": 10
},
"allergens": ["tree_nuts"],
"cost_per_unit": 12.5, "unit": "kg"
}
Análise nutricional Acesso antecipado · Negócios
Análise única sem salvar a receita. Retorna o mesmo. label objeto mais claims: as alegações de conteúdo nutricional para as quais os valores se qualificam (por exemplo "boa fonte de fibras") com suas citações do CFR. Os nomes não correspondentes são comparados com o USDA.
Exemplo de solicitação
POST /v1/analyze
{
"label_format": "standard",
"servings": 12,
"serving_weight_g": 28,
"ingredients": [
{ "ingredient_id": "usda:173410", "grams": 120 },
{ "name": "brown sugar", "grams": 80 }
]
}
Erros
Códigos HTTP convencionais; os corpos de erro são JSON com código de máquina estável e mensagem legível. 400 entrada malformada · 401 tecla inválida · 403 fora do seu plano · 404 Não encontrado / não é seu · 429 Taxa limitada · 500 Tente novamente com um intervalo de espera.
Exemplo de resposta
{
"error": {
"code": "plan_format_not_allowed",
"message": "The 'eu-1169' label format
requires the Professional plan."
}
}
Como obter acesso
O recurso incorporado não precisa de chave; habilite-o por receita (Profissional+). O acesso antecipado à API REST está incluído. Negócios plano: e-mail support@nutritionfactlabel.com A partir do seu e-mail de acesso à conta, as chaves serão disponibilizadas em até um dia útil.
Não encontrou o endpoint que precisa? Conte para nós. Os parceiros de acesso antecipado definem o roteiro.
Faça upgrade para a versão Business