OAC Open Standard
Eine anbieterneutrale JSON-Spezifikation für Betriebsdaten — Restaurants wie Geschäfte. Ein einziger Endpunkt liefert alles, was Sie zum Anzeigen, Routen oder Reservieren benötigen.
Schnelles Beispiel
curl https://www.openalacarte.com/api/standard/v1/restaurants/<slug>
Keine Authentifizierung. 5 Minuten am Edge zwischengespeichert. CORS offen — vom Browser aus aufrufbar.
Was die Antwort enthält
restaurant.*
Identität, Kontakt, Währung, Adresse mit lat/lng, Öffnungszeiten pro Tag, was sie akzeptieren (Reservierungen / Lieferung / Abholung).
menu.sections[].items[]
Die primäre aktive Speisekarte des Betriebs (niedrigste `sortOrder`) — Name, Beschreibung, Preis, Währung, Allergene, Bild — nach Abschnitten gruppiert. Ein Betrieb mit mehreren Karten veröffentlicht eine; Payloads mit mehreren Karten sind für v2 vorgesehen.
spec + fetched
Versionierter Umschlag (`openalacarte.standard/v1`) + ISO-Zeitstempel, damit nachgelagerte Caches wissen, was sie haben.
Stabile IDs
Der `slug` des Betriebs ist die kanonische Kennung. Slugs werden bei der Erstellung vergeben und nie umgeschrieben — ein gespeicherter Slug bleibt also gültig.
restaurant.venueType
Entweder `restaurant` oder `shop`, in jeder Antwort. Verzweigen Sie darüber — nicht darüber, welche anderen Felder zufällig leer sind.
Restaurants und Geschäfte
Bäckereien, Metzgereien, Feinkostläden, Gemüsehändler und Weinhandlungen sind auf OpenALaCarte eine eigene Betriebsklasse, und dieser Endpunkt liefert sie ebenfalls aus:
- Beide Klassen antworten auf demselben Pfad
/v1/restaurants/und kommen unter demselben Schlüsselrestaurantder obersten Ebene an. Beides ist festgeschrieben — v1 verspricht, dass dagegen geschriebener Code weiter funktioniert, und ein Umzug der Geschäfte würde genau das brechen. restaurant.venueTypeist das Unterscheidungsmerkmal. Es ist in jeder Antwort vorhanden, Sie können es also ohne Rückfallwert auslesen.- Ein Geschäft meldet immer
acceptsReservations: false. Geschäfte nehmen in keinem Tarif Reservierungen an, das ist also eine Tatsache über die Betriebsklasse — nie ein Restaurant, das Reservierungen abgeschaltet hat. - Das Feld
cuisineeines Geschäfts trägt seine Handelskategorie (Bäckerei, Metzgerei, Gemüsehändler), und seinmenuist sein Produktkatalog, in derselben Form aus Abschnitten und Artikeln. - Ein Geschäft, das von Marktständen statt von einer festen Adresse aus verkauft, veröffentlicht
address: nullund ein leereshours-Array. Seine Adresszeile ist ein Lager und seine Verkaufszeiten gehören zu einer Tour — keines von beidem beschreibt eine Tür, an der ein Kunde erscheinen kann.
Versionierung
SemVer auf URL-Ebene. v1.*-Ergänzungen sind abwärtskompatibel (neue Felder, niemals entfernt/umbenannt). Inkompatible Änderungen wandern nach /v2/ mit einer Überschneidung von 12 Monaten.
Veraltungen werden im Entwickler-Änderungsprotokoll dieser Seite + über den Antwort-Header Deprecation angekündigt.
Wo diese Daten ebenfalls erscheinen
Dieselben Betriebsdaten werden in mehreren Formen veröffentlicht. Genau genommen sind dies parallele Darstellungen und keine Konsumenten dieses Endpunkts:
- Unser JSON-LD für Google Maps Reserve und Apple Business Connect — dieselben Daten, aus der Datenbank erzeugt statt über diesen Feed abgerufen.
- Eingebettete Widgets (/restaurants/[slug]) — dieselbe Nutzlast, als HTML gerendert.
- (Zukünftig) Drittanbieter-Integratoren — DoorDash, Uber Eats, Tock — wenn sie kanonische OAC-Daten möchten
Bauen Sie darauf auf? Schreiben Sie an devs@openalacarte.com und wir listen Sie hier auf.
Warum „Open“ Standard?
Weil die Spezifikation dokumentiert + versioniert + stabil ist. Wir verpflichten uns, sie nicht zu brechen. Wenn Sie Code gegen /v1/ schreiben, funktioniert dieser Code weiter — selbst wenn OAC pivotiert, selbst wenn wir übernommen werden.