[Index de la documentation](https://prescriptio.fr/docs/llms.txt)

# Authentification et quotas

Prescriptio s'appelle par OAuth 2.1 avec PKCE, sans clé à recopier ; un compte gratuit dispose de 100 appels par 24 heures, 5 par minute et 5 dossiers par jour, un abonné de 5 000 appels, 30 par minute et 500 dossiers.

## Le parcours d'autorisation

Votre client mène ce parcours seul à partir de l'adresse du connecteur. Vous n'avez rien à saisir à la main, sauf l'accord sur la page de Prescriptio.

1. **Découverte**

   Un appel sans jeton répond `401` avec un en-tête `WWW-Authenticate` qui désigne la métadonnée de ressource. Le client lit `/.well-known/oauth-protected-resource` (RFC 9728), puis `/.well-known/oauth-authorization-server` (RFC 8414).

   ```http
   WWW-Authenticate: Bearer realm="MCP",
     resource_metadata="https://prescriptio.fr/.well-known/oauth-protected-resource"
   ```

2. **Enregistrement du client**

   Si l'hôte le demande, le client s'enregistre lui-même (RFC 7591). Il n'y a pas d'identifiant à demander à Prescriptio.

3. **Autorisation**

   `GET /oauth/authorize`, avec PKCE S256 obligatoire. La page de Prescriptio s'ouvre : la personne se connecte et accepte les portées demandées.

4. **Jeton**

   `POST /oauth/token`. La ressource canonique est `https://prescriptio.fr/api/mcp`. Le jeton est opaque et lié au compte ; le client le révoque par `POST /oauth/revoke` (RFC 7009), et la révocation vaut dès l'appel suivant. Vous pouvez aussi retirer l'accès vous-même : Paramètres › Accès IA › Gérer mes connexions, puis « Déconnecter cet accès » sur l'agent concerné ; ses jetons sont révoqués.

5. **Appels**

   Chaque appel porte l'en-tête `Authorization: Bearer <jeton>`, sur `https://prescriptio.fr/api/mcp` (MCP) ou `https://prescriptio.fr/api/mcp/v1/{opération}` (REST).

> **Note :** Dans Claude, ChatGPT ou Cursor, il n'y a rien à coder : collez l'adresse du connecteur dans l'assistant, puis acceptez la page d'autorisation. Aucun jeton de modèle IA n'est requis.

## Les portées

| Portée | Ce qu'elle ouvre |
|---|---|
| `mcp:read` | Les lectures : la donnée publique du bâti, et ce que votre espace contient |
| `mcp:write` | Les écritures dans votre espace (alertes, suivis, dossiers de réponse, brouillons) et les envois d'e-mails que vous demandez |
| `mcp:public` | La portée historique, attribuée par défaut à un client qui n'en demande aucune : elle ouvre les lectures et les écritures du connecteur, sauf les abonnements d'automatisation, et aucune écriture REST |

Les écritures exigent une organisation : un outil qui écrit résout l'organisation de l'appelant à partir de son identité, jamais d'un paramètre, et n'agit que dans son périmètre. Un compte sans organisation reçoit un refus explicite.

## Les offres

L'offre gratuite ne filtre pas les noms du registre général : à profil et portées identiques, les noms annoncés sont les mêmes. Cela ne garantit pas la réussite de chaque action. Les droits sur les objets, les conditions d'offre et les quotas restent contrôlés par les traitements. Le rapport de marque (`marque_rapport`) et l'envoi d'e-mails exigent notamment un accès payant ou offert admissible ; un domaine d'envoi personnalisé demande l'option e-mail. L'abonnement à 12 € HT par mois et par utilisateur, sans engagement, relève les plafonds d'appels et de dossiers.

Deux règles ne bougent pas, quelle que soit l'offre :

- Les coordonnées des fiches publiques (téléphone, e-mail, site) ne sortent par aucun outil.
- Chaque outil ne voit que l'espace du porteur du jeton.

## Les quotas

Un appel compte pour **une unité** dans les deux compteurs d'appels, partagés entre le connecteur MCP et l'API REST.

| Compteur | Compte gratuit | Abonné |
|---|---|---|
| Appels par 24 heures glissantes | 100 | 5 000 |
| Appels par 60 secondes glissantes (anti-rafale) | 5 | 30 |
| Dossiers distincts lus par jour civil (heure de Paris) | 5 | 500 |

- **Une unité de dossier vaut un dossier pour la journée**, quel que soit le nombre de pièces lues ou téléchargées dedans.
- **Chercher n'en consomme aucune** : la table des matières d'un dossier et la localisation d'un terme sont gratuites ; seule la restitution du texte ou d'un lien est décomptée.
- **La fenêtre de 24 heures glisse** : il n'y a pas de remise à zéro à minuit.
- **Les outils d'aide et d'abonnement consomment aussi un appel.** Ils ne contournent pas un quota d'appels atteint. Si vous souhaitez vous abonner dans ce cas, ouvrez directement [Paramètres › Abonnement](https://prescriptio.fr/parametres?tab=abonnement) ; après un seul refus de consultation de dossier, le lien peut encore être obtenu s'il reste des appels.

### Que faire quand un quota est atteint ?

Lisez le message. « Quota par minute atteint » est un frein passager : attendez le délai indiqué, puis reprenez. « Quota journalier atteint » et « Quota de consultation atteint » correspondent à deux compteurs différents ; l'abonnement relève leurs plafonds. Il reste lui-même soumis à des limites. L'analyse du rapport de marque demande aussi l'abonnement. Ne bouclez jamais sur un appel refusé.

## Les limites techniques

| Limite | Valeur |
|---|---|
| Taille du corps d'une requête | 3 Mio, au connecteur comme à l'API REST |
| Délai d'une opération REST | 35 secondes |
| Recherches | bornées, sans export massif |
| Événements d'alerte | 100 par page, 20 abonnements actifs par compte et organisation |

## Pour aller plus loin

- [Codes d'erreur](https://prescriptio.fr/docs/reference/erreurs) : La conduite à tenir pour chaque erreur, et tester un jeton
- [Catalogue des outils](https://prescriptio.fr/docs/api) : La portée de chaque outil, en lecture ou en écriture
