NFL-API-Dokumentation
Erstellen Sie normkonforme Nährwertkennzeichnungen, verwalten Sie Rezepte und rufen Sie Nährwertdaten programmgesteuert ab. Zwei Dinge funktionieren heute für jedes qualifizierte Konto: die Live-Label-Einbettung Und Servergerenderte ExporteDie REST-Ressourcen-API befindet sich im Rahmen des Business-Plans in der frühen Zugriffsphase.
Die API akzeptiert und gibt ausschließlich JSON zurück (die Label-Render-Endpunkte geben die Binärdatei zurück).
Definition
https://nutritionfactlabel.com/api/v1
API-Endpunkt
Alle REST-Ressourcen befinden sich unter einer versionierten Basis-URL. Änderungen, die die Kompatibilität beeinträchtigen, werden ausschließlich unter einem neuen Versionspräfix veröffentlicht. Während der Early-Access-Phase bestätigt Ihre Willkommens-E-Mail die für Ihre Schlüssel aktive Basis-URL.
Zusammenfassung der Ressourcen-URL-Muster
/v1/recipes
/v1/recipes/{RECIPE_ID}
/v1/recipes/{RECIPE_ID}/label.{svg|png|pdf}
/v1/ingredients
/v1/ingredients/{INGREDIENT_ID}
/v1/analyze
Authentifizierung
Authentifizieren Sie jede Anfrage mit Ihrem geheimen Schlüssel im Authorization Header. Die Schlüssel sind auf Ihr Konto beschränkt und beinhalten die Berechtigungen Ihres Tarifs: dieselben serverseitigen Zugangsdaten wie die App.
Schlüssel geheim halten. Senden Sie diese niemals im clientseitigen Code aus; verwenden Sie stattdessen einen Proxy über Ihr Backend. Melden Sie einen durchgesickerten Schlüssel umgehend dem Support.
Beispielanfrage
curl https://nutritionfactlabel.com/api/v1/recipes \ -H 'Authorization: Bearer nfl_live_9f30c2...'
Ratenbegrenzungen
Um Fairness und Stabilität zu gewährleisten: 60 Anfragen pro Minute pro Taste; Label-Renderings zusätzlich begrenzt auf 5 gleichzeitig; Anfragetexte mit 1 MB. Ab einem bestimmten Limit erhalten Sie 429 mit einem Retry-After Kopfzeile.
Beispielantwort
HTTP/2 429 Too Many Requests
Retry-After: 22
{ "error": { "code": "rate_limited",
"message": "Try again in 22 seconds." } }
Live-Label-Einbettung Jetzt erhältlich
Zeigen Sie auf jeder Website ein stets aktuelles Label an – kein API-Schlüssel erforderlich. Aktivieren Sie die Einbettung in einem Rezept im Generator (Rezeptzeile → Einbetten) um sein öffentliches Token zu erhalten.
Das Skript-Tag passt seine Höhe automatisch an; aktualisieren Sie das Rezept in NFL, und jede Seite, die die Einbettung anzeigt, wird aktualisiert. Bei Professional- und Business-Tarifen wird das Token sofort gelöscht, wenn die Einbettung deaktiviert wird.
Definition: Script-Tag
<script src="https://nutritionfactlabel.com/embed.js"
data-label="YOUR_EMBED_TOKEN"
data-width="290"></script>
Alternative: iframe
<iframe src="https://nutritionfactlabel.com/embed/TOKEN" width="290" height="560" frameborder="0" title="Nutrition Facts"></iframe>
Etikettenexporte Jetzt erhältlich
SVG-, PNG- und PDF-Dateien werden serverseitig von derselben Engine wie die App gerendert, wobei die Planregeln (Formate, Dateitypen, Wasserzeichen) beim Zugriff durchgesetzt werden. Rufen Sie die Funktion direkt mit Ihrem Sitzungstoken auf, bis API-Schlüssel allgemein verfügbar sind. Gibt die Binärdatei zurück. 403 außerhalb Ihres Plans.
Zwei Anmerkungen zur Kompatibilität mit dem In-App-Export. Die App wird im Browser gerendert. Verwenden Sie diesen Endpunkt daher, wenn Sie ein Label benötigen, das ohne eines erstellt wird. jpg Gibt aktuell PNG-Bytes zurück, während eps Und ai sind Formate, die nur exportiert werden und vom Endpunkt nicht unterstützt werden.
Definition
POST /functions/v1/export-label
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json
{
"fileType": "pdf",
"data": { ...label state },
"extra": { }
}
Rezepte Früher Zugang · Unternehmen
Das Kernobjekt: Zutaten, Portionen und ein label_format (152 Formate in 114 Ländern) erzeugen das berechnete labelNährwertangaben gerundet gemäß den jeweiligen Rechtsordnungen, Zutatenliste, Allergene.
Wichtigste Merkmale: id, name, servings, serving_weight_g, label_format, label (berechnet), embed_enabled, Zeitstempel.
Definition
GET /v1/recipes
POST /v1/recipes
GET /v1/recipes/{ID}
PUT /v1/recipes/{ID}
DELETE /v1/recipes/{ID}
GET /v1/recipes/{ID}/label.pdf
Beispielantwort
{
"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
}
Zutaten Früher Zugang · Unternehmen
Benutzerdefinierte Zutaten mit Nährwertangaben pro 100 g, Allergeninformationen und optionalen Kosten, identisch mit den in der App erstellten, können im Generator gesucht werden. USDA-Zutatenadressen werden wie folgt angegeben: usda:{fdc_id}; Satz "archived": true zum Archivieren (standardmäßig von Listen ausgeschlossen).
Definition
GET /v1/ingredients
POST /v1/ingredients
GET /v1/ingredients/{ID}
PUT /v1/ingredients/{ID}
DELETE /v1/ingredients/{ID}
Beispielanfrage
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"
}
Nährwertanalyse Früher Zugang · Unternehmen
Einmalige Analyse ohne Speichern eines Rezepts. Gibt dasselbe Ergebnis zurück. label Objekt plus claims: die Angaben zum Nährstoffgehalt, für die die Werte gelten (z. B. "gute Ballaststoffquelle") mit ihren CFR-Zitaten. Nicht übereinstimmende Namen werden mit dem USDA abgeglichen.
Beispielanfrage
POST /v1/analyze
{
"label_format": "standard",
"servings": 12,
"serving_weight_g": 28,
"ingredients": [
{ "ingredient_id": "usda:173410", "grams": 120 },
{ "name": "brown sugar", "grams": 80 }
]
}
Fehler
Konventionelle HTTP-Codes; Fehlermeldungen sind im JSON-Format mit einem stabilen Maschinencode und einer lesbaren Fehlermeldung. 400 fehlerhafte Eingabe · 401 falscher Schlüssel · 403 außerhalb Ihres Plans · 404 Nicht gefunden / Nicht Ihr Eintrag · 429 Ratenbegrenzung · 500 Wiederholungsversuch mit Backoff.
Beispielantwort
{
"error": {
"code": "plan_format_not_allowed",
"message": "The 'eu-1169' label format
requires the Professional plan."
}
}
Zugang erhalten
Die Einbettung benötigt keinen Schlüssel; aktivieren Sie sie pro Rezept (Professional+). Der frühzeitige Zugriff auf die REST-API ist enthalten. Geschäft Plan: E-Mail support@nutritionfactlabel.com Die E-Mail-Adresse und die Schlüssel für Ihr Kundenkonto werden innerhalb eines Werktages bereitgestellt.
Fehlt Ihnen ein benötigter Endpunkt? Teilen Sie es uns mit. Unsere Early-Access-Partner bestimmen die Roadmap.
Upgrade auf Business