Chaque clé porte une liste de scopes, de la forme ressource:read ou ressource:write. Chaque opération en exige un ; une clé qui ne l'a pas reçoit 403 insufficient_scope et rien n'est exécuté.
Les 10 scopes
| Scope | Permet de | Opérations |
|---|---|---|
barometer:read | Lire le baromètre des prix (France et régions, cinq carburants). | GET /v1/barometer |
fuel-stations:read | Lister et lire les stations carburant, et les moins chères d'un département. | GET /v1/fuel-stationsGET /v1/fuel-stations/cheapestGET /v1/fuel-stations/{id} |
charging-stations:read | Lister et lire les bornes de recharge (IRVE). | GET /v1/charging-stationsGET /v1/charging-stations/{id} |
companies:read | Chercher et lire les établissements de l'annuaire SIRENE. | GET /v1/companiesGET /v1/companies/{siret} |
fleet-costs:read | Calculer le surcoût carburant et carbone d'une flotte (rien n'est enregistré). | POST /v1/fleet-costs |
simulations:read | Lister et lire les simulations de couverture de l'organisation. | GET /v1/simulationsGET /v1/simulations/{id} |
simulations:write | Créer une simulation, changer son statut, rédiger son argumentaire. | POST /v1/simulationsPATCH /v1/simulations/{id}POST /v1/simulations/{id}/pitch |
prospects:read | Lister et lire les prospects de l'organisation, avec leur coût recalculé. | GET /v1/prospectsGET /v1/prospects/{id} |
prospects:write | Créer, remplacer et supprimer des prospects. | POST /v1/prospectsPUT /v1/prospects/{id}DELETE /v1/prospects/{id} |
geo:read | Géocoder une adresse et calculer un itinéraire (30 appels par minute). | GET /v1/geocodePOST /v1/routes |
write n'inclut pas read : une intégration qui crée des prospects et les relit demande prospects:write et prospects:read. La liste est fermée : un scope qui n'y figure pas ne peut pas être attribué.
Choisir les scopes d'une clé
Les scopes sont fixés à la création de la clé, avec notre équipe : indiquez-nous ceux dont chaque intégration a besoin. Pour en changer, une nouvelle clé est créée avec les bons scopes, puis l'ancienne est révoquée.
Le refus 403 insufficient_scope
details.required donne le scope exigé, details.granted ceux de la clé :
{
"error": {
"code": "insufficient_scope",
"message": "Cette clé d'API n'a pas le scope nécessaire à cette route.",
"details": {
"required": "prospects:write",
"granted": [
"barometer:read",
"fuel-stations:read"
]
}
}
}