Skip to Content

S’authentifier sur l’API

L’API publique n’accepte pas votre clé d’API directement : vous l’échangez contre un jeton d’accès, que vous présentez ensuite sur chaque appel. Il n’existe pas d’en-tête de clé statique. Cet article décrit cet échange, la durée de vie des jetons, l’identité qu’ils portent et les erreurs renvoyées.

Sur cette page

S’authentifier sur l’API

L’API publique n’accepte pas votre clé d’API directement : vous l’échangez contre un jeton d’accès, que vous présentez ensuite sur chaque appel. Il n’existe pas d’en-tête de clé statique. Cet article décrit cet échange, la durée de vie des jetons, l’identité qu’ils portent et les erreurs renvoyées.

⚠️ Prérequis : vous devez disposer d’une clé d’API. Elle se génère dans Configuration > Intégration > Developers API, une entrée qui n’apparaît que si l’option d’API publique est ouverte sur votre compte. La procédure est décrite dans Générer et gérer vos clés d’API.

Échanger la clé contre un jeton

Envoyez un POST sur /v1/token en plaçant la clé dans le corps de la requête, sous la forme { "appSecret": "votre_clé" }. Cet appel n’est pas authentifié : la clé est la seule preuve d’identité.

La réponse contient deux jetons, { "access_token": "…", "refresh_token": "…" }. Conservez-les tous les deux : le premier authentifie vos appels, le second sert à renouveler le premier.

Présenter le jeton sur vos appels

Sur tous les appels suivants, placez le jeton d’accès dans l’en-tête Authorization: Bearer <access_token>.

⚠️ Le préfixe Bearer est obligatoire, espace compris. Envoyer le jeton nu renvoie un 400, distinct de l’erreur d’un jeton invalide.

Renouveler le jeton d’accès

Le jeton d’accès est valable 6 heures et le jeton de rafraîchissement 730 heures, soit environ un mois. Ces durées sont fixées côté serveur et ne se paramètrent pas.

Pour renouveler, envoyez un POST sur /v1/token/refresh avec { "refreshToken": "…" }. La réponse renvoie un nouveau jeton d’accès et un nouveau jeton de rafraîchissement.

⚠️ Le jeton de rafraîchissement est à usage unique. Celui que vous venez d’employer est consommé : stockez le nouveau à sa place. Une intégration qui rejoue toujours le même jeton reçoit un 404 au deuxième essai.

⚠️ Un seul jeton de rafraîchissement reste valide à la fois par compte. Repasser par /v1/token consomme le précédent, quelle que soit la clé utilisée : deux intégrations qui partagent un compte se déconnectent donc mutuellement. Faites porter le renouvellement par un seul processus.

💡 Conseil : obtenir un jeton ne suffit pas à valider votre intégration. Laissez-la tourner plus de six heures et vérifiez qu’elle franchit le renouvellement sans intervention.

L’identité portée par le jeton

Le jeton identifie le compte, jamais une personne. Il n’agit au nom d’aucun administrateur ni d’aucun apprenant, et ce qu’il écrit n’est attribué à personne. Les lectures restent cloisonnées sur ce compte, qu’il s’agisse des utilisateurs, des groupes, des capsules, des parcours ou des catégories.

Les limites à connaître

  • La portée est définie au niveau du compte. Toutes les clés d’un même compte reçoivent la même portée : vous ne pouvez pas créer une clé limitée à la lecture, à un groupe ou à un département.
  • Un jeton déjà émis ne se révoque pas. Supprimer une clé n’annule pas le jeton d’accès qui en est issu : il reste valable jusqu’au bout de ses 6 heures.
  • Il n’existe pas de quota d’appels. Aucune limitation de débit ne s’applique sur l’API publique, donc rien ne vous protège d’une boucle partie de votre côté.

L’URL de base

Tous les appels sont adressés à https://api.developers.beedeez.com. Les entrées /v1/token et /v1/token/refresh, avec leurs schémas, sont décrites dans la référence OpenAPI publiée sur doc.developers.beedeez.com .

Les réponses d’erreur

SituationCodeMessage
En-tête Authorization absent401No jwt token provided
Préfixe Bearer manquant400Invalid authorization prefix, should be `Bearer token_value`
Jeton expiré401jwt expired
Jeton tronqué ou signé ailleurs401jwt malformed, invalid signature
Clé inconnue ou supprimée, sur /v1/token404Credentials not found
Jeton de rafraîchissement déjà consommé404Refresh Token not found

Le corps de la réponse porte toujours les champs message, kind et statusCode.

💡 Conseil : distinguez le 401 du 404 dans votre traitement d’erreur. Un 401 se règle en renouvelant le jeton, alors qu’un 404 sur /v1/token signifie que la clé n’existe plus : réessayer ne la fera pas revenir.

Pour aller plus loin


Discutez avec nous