Schnellstart
Von einem Schlüssel zu Ihren ersten Datensätzen und einem Lieferfoto in fünf Minuten, mit curl.
Sie brauchen nur eines: einen Partnerschlüssel. Er weiß bereits, welche Restaurants ihm freigegeben wurden, und die API sagt es Ihnen.
1. Einen Schlüssel besorgen
Schreiben Sie an contact@backresto.com mit Ihrem Unternehmen, den Restaurants, die Sie brauchen, und den Scopes, die Sie wollen. Wir stimmen uns mit dem Restaurant ab und senden den Schlüssel dann an den technischen Kontakt, den Sie genannt haben. Einen Schlüssel erhalten ist die vollständige Checkliste, und wer sie vollständig sendet, macht aus dem Hin und Her eine E-Mail statt vier.
Ein Schlüssel sieht so aus:
brp_hV8kZ2pQ.tW3nR7yL9cF1sB4xJ6mA8dK0gN5vE2uP7hQ3rT1zY6i
Die Hälfte vor dem Punkt ist ein öffentliches Präfix: Es benennt den Schlüssel in der Liste auf jener Seite und in Support-Gesprächen, und man darf es aufschreiben. Die Hälfte dahinter ist das Secret, und es erscheint nirgends außer auf diesem einen Bildschirm.
2. Ihn speichern
Legen Sie den gesamten Wert als einen einzigen String in Ihren Secret Manager und löschen Sie die E-Mail, mit der er kam. Nie ein Repository, nie eine URL, nie eine Logzeile. Wir behalten nur einen Digest des Secrets, ein verlorener Schlüssel bedeutet also einen Widerruf und einen neuen. Schreiben Sie uns, und beides passiert am selben Tag.
export BACKRESTO_PARTNER_API_KEY='brp_…'
3. Ihr Restaurant finden
Fragen Sie den Schlüssel, welche Restaurants er erreicht und mit welchen Scopes:
curl "https://api.backresto.com/v1/restaurants" \
-H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
{
"data": [
{
"restaurantId": "restaurant-1",
"scopes": ["deliveries:read", "delivery-pictures:read", "temperature-records:read"]
}
]
}
Die meisten Schlüssel erreichen ein Restaurant. Behalten Sie seine Kennung für die folgenden Aufrufe:
export RESTAURANT_ID='restaurant-1'
4. Sehen, welche Collections der Schlüssel öffnet
Jeder Datensatztyp, Lieferungen eingeschlossen, ist eine Collection. Fragen Sie den Schlüssel, welche er erreicht:
curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections" \
-H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
{
"data": [
{
"collection": "deliveries",
"readScope": "deliveries:read",
"description": "Received shadow snapshots for deliveries; not complete primary-store history.",
"stateKind": "received-shadow-snapshot",
"payloadVersion": 1
}
]
}
Ein leeres data heißt, dass der Schlüssel noch keine Collection-Zuweisungen
hat. Fragen Sie nach denen, die Sie brauchen.
5. Die Lieferungen durchlaufen
Eine Collection wird Seite für Seite mit einem undurchsichtigen Cursor durchlaufen. Zeitstempel sind Millisekunden seit Epoch, als Strings: Das ist die Konvention in der gesamten API, nie Sekunden, nie ISO 8601.
curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/deliveries/records" \
-H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
--get --data-urlencode "limit=100"
{
"data": [
{
"id": "8f2c1b04-0d5a-4b7e-9f31-6ad2c0e77a51",
"restaurantId": "restaurant-1",
"collection": "deliveries",
"deleted": false,
"capturedAt": "1787932805120",
"receivedAt": "1787932911004",
"sequence": "88",
"data": {
"timestamp": "1787932800000",
"isCompliant": false,
"supplierDeliveriesId": "supplier-7",
"temperatureRecords": [
{ "product": "Poulet fermier", "lotNumber": "L2291", "value": 6.4, "unit": "C" }
],
"nonComplianceReasons": ["Température trop élevée"],
"correctiveActions": ["Produit refusé"],
"commentary": null
}
}
],
"nextCursor": null
}
Temperaturen sind immer in Celsius. Hier kein Zeitraum: Sie durchlaufen die
Collection, filtern nach data.timestamp, wenn Sie eine Woche wollen, und
behalten id, um beim nächsten Durchlauf abzugleichen. Die anderen Collections
(Temperaturen, Kühlen, Reinigung, Etiketten) werden genauso durchlaufen.
6. Die Fotos einer Lieferung abrufen
Fotos sind die Collection delivery-pictures. Jeder Datensatz nennt seine
Lieferung in data.deliveryId, und die Bytes kommen von seinen Assets:
curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/delivery-pictures/records" \
-H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY" \
--get --data-urlencode "limit=100"
curl "https://api.backresto.com/v1/restaurants/$RESTAURANT_ID/collections/delivery-pictures/records/$PICTURE_ID/assets" \
-H "Authorization: Bearer $BACKRESTO_PARTNER_API_KEY"
Der zweite Aufruf antwortet mit signierten URLs, die fünfzehn Minuten gültig
sind; laden Sie die Bytes ohne Authorization-Header herunter. Er braucht den
Scope delivery-pictures:read. Hat Ihr Schlüssel nur deliveries:read,
antworten die Lieferungen und die Fotos antworten 403: Das ist die Zuweisung,
die ihre Arbeit tut, und die Lösung ist, dass der Kunde einen Schlüssel mit
beiden ausstellen lässt.
7. Die beiden Fehler behandeln, die Ihnen wirklich begegnen
404: Das Restaurant steht nicht auf Ihrem Schlüssel, oder der Datensatz
existiert nicht. Beides ist bewusst nicht unterscheidbar: Die API bestätigt
einem Aufrufer, der es nicht sehen kann, nicht, dass ein Restaurant existiert.
403: Das Restaurant steht auf Ihrem Schlüssel, aber der Scope, den
dieser Endpunkt braucht, nicht.
Jeder Fehler ist ein Problemdokument, nie eine HTML-Seite, und
trägt eine requestId, die zu nennen sich lohnt, wenn Sie uns schreiben.
Wie es weitergeht
- Einen Schlüssel erhalten: die Checkliste für die Anfrage und wie Sie einen Schlüssel später ändern.
- Authentifizierung: Scopes, Schlüsselwechsel, was ein Schlüssel kann und was nicht.
- Paginierung: der Cursor und wie Sie eine Kopie aktuell halten.
- Lieferungen: jedes Feld einer Wareneingangskontrolle und ihrer Fotos.
- Collections & Datensätze: alle sechsundzwanzig Datensatztypen und der Umschlag, den sie teilen.
- MCP: dieselben Daten in einem KI-Client, in etwa drei Minuten.