> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lecommis.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue d'ensemble

> Lire l'identité, les horaires et les menus d'un établissement en JSON, en lecture seule.

L'API Le Commis expose les informations d'un établissement (identité, horaires, menus web) sous forme de **JSON**, en **lecture seule** (GET uniquement). Elle se consomme depuis votre **backend** pour afficher des données à jour sans les recopier à la main.

## Base URL

```text theme={null}
https://app.lecommis.fr/api/v1
```

Le serveur OpenAPI est `https://app.lecommis.fr` ; le préfixe `/api/v1` fait partie de chaque chemin.

<Note>
  Toutes les routes partagent la même base URL `https://app.lecommis.fr/api/v1`. Chaque chemin documenté ici s'y ajoute (ex. `/establishments/au-bistrot`).
</Note>

<Tip>
  L'API est **désactivée par défaut**. Elle doit d'abord être activée par l'**administrateur de l'établissement**, depuis la page **Réglages de l'établissement → Paramètres de l'API**, qui génère également la clé d'accès.
</Tip>

## Principes

* **Tenant par slug** — chaque établissement est identifié par son **slug** (ex. `au-bistrot`), jamais par un identifiant numérique.
* **Lecture seule** — uniquement des requêtes `GET`. Aucune écriture n'est possible via l'API.

## Authentification

Chaque requête doit porter le header `X-Api-Key` avec la clé de l'établissement. C'est une clé **serveur-à-serveur** : ne l'exposez jamais dans du JavaScript navigateur.

```bash Exemple d'appel theme={null}
curl https://app.lecommis.fr/api/v1/establishments/au-bistrot \
  -H "X-Api-Key: VOTRE_CLE_API"
```

Détails complets (activation, rotation, codes 401/404) sur la page [Authentification](/essentials/authentication).

## Les 4 endpoints

| Méthode | Chemin                                          | Description                                  |
| ------- | ----------------------------------------------- | -------------------------------------------- |
| `GET`   | `/establishments/{slug}`                        | Identité de l'établissement                  |
| `GET`   | `/establishments/{slug}/hours`                  | Horaires (réguliers + exceptionnels à venir) |
| `GET`   | `/establishments/{slug}/menus`                  | Liste des menus web                          |
| `GET`   | `/establishments/{slug}/menus/{menu_type_slug}` | Détail d'un menu (sections + items)          |

<Note>
  Le seul paramètre de requête disponible est `?locale=fr|en`, et uniquement sur les endpoints **menus** (liste et détail). Voir [Sélection de la langue](/i18n/selecting-language).
</Note>

## Pour aller plus loin

* [**Établissement**](/integrations/api/establishment) — identité, contact, localisation, logo.
* [**Horaires**](/integrations/api/hours) — horaires réguliers et exceptionnels.
* [**Menus**](/integrations/api/menus) — liste des menus, sections et items.
* [**content\_revision**](/integrations/api/content-revision) — détecter les changements et invalider votre cache.

<Note>
  Consultez aussi les [quotas de requêtes](/essentials/rate-limiting), le [format des erreurs](/essentials/errors), et l'onglet **API Reference** pour le playground interactif : [/api-reference](/api-reference).
</Note>
