Skip to main content
L’API menus expose deux endpoints : la liste des menus web et le détail d’un menu (avec ses sections et items). Les deux acceptent ?locale=fr|en. La liste expose également l’URL de la Carte unifiée (champ master_menu_url), le PDF qui combine toutes les cartes de l’établissement.
MéthodeCheminDescription
GET/establishments/{slug}/menusListe des menus web
GET/establishments/{slug}/menus/{menu_type_slug}Détail d’un menu
Le menu_type_slug est stable par établissement (ex. menu-du-midi). Vous pouvez le coder en dur dans votre intégration. Si le menu n’existe pas (ou n’a pas de version courante), l’API renvoie 404 {"error":"Not found"}.

Langue

Ajoutez ?locale=fr ou ?locale=en pour choisir la langue du contenu. Valeur absente sur le détail → fr. Valeur invalide → coercée silencieusement en fr. Seuls les noms/descriptions d’items et noms de sections sont traduits ; avec un repli en → fr si une traduction manque. Voir Sélection de la langue.
GET /api/v1/establishments/{slug}/menus

Exemple

curl "https://app.lecommis.fr/api/v1/establishments/au-bistrot/menus?locale=fr" \
  -H "X-Api-Key: VOTRE_CLE_API"
Réponse 200
{
  "content_revision": 67,
  "master_menu_url": "https://app.lecommis.fr/files/au-bistrot/carte-unifiee.pdf",
  "menus": [
    {
      "menu_type": { "slug": "menu-du-midi", "name": "Menu du midi", "kind": "menu" },
      "reference_date": "2026-06-13",
      "assets": [
        { "language_scope": "fr", "urls": ["https://app.lecommis.fr/menus/au-bistrot/menu-du-midi/web_fr.png"] }
      ]
    }
  ]
}

Champs de la réponse

master_menu_url
string | null
URL du PDF de la Carte unifiée de l’établissement (toutes les cartes combinées en un seul document), si disponible.
menus
array
Liste des menus web courants.
content_revision
integer
Numéro de révision du contenu (commun à toutes les ressources). Voir content_revision.

Fichiers du menu (champ assets)

Chaque menu porte un tableau assets. Une entrée du champ assets décrit un ou plusieurs fichiers du menu (un menu peut s’étaler sur plusieurs pages).
assets[].language_scope
string
Langues couvertes par le fichier : fr, en, ou fr_en (un fichier fr_en couvre les deux langues).
assets[].urls
array
Tableau d’URLs des fichiers (image ou PDF). Plusieurs entrées = plusieurs pages.
Sans ?locale, tous les language_scope sont renvoyés. Avec ?locale, seuls les fichiers correspondant à la langue demandée (y compris fr_en) sont retournés.
Il n’y a aucun repli de langue sur les fichiers du menu. Un fichier peut exister en fr et être absent en en. Contrôlez toujours language_scope avant d’afficher un fichier, et prévoyez le cas où aucun fichier ne correspond à la langue demandée. Voir Comportement de repli.
Pour servir un fichier du menu directement via une URL plug-and-play (<img>, <iframe>…) sans appeler l’API, voyez les redirections de fichiers du menu.