Docs Autonomy
API HTTP v1

Authentification

Authentifiez les requêtes de l'API HTTP avec une clé d'API d'organisation ou un jeton d'accès OAuth.

Envoyez un identifiant Bearer dans chaque requête POST /api/v1/* :

En-tête Authorizationhttp
Authorization: Bearer <credential>

Un identifiant qui commence par aut_ est une clé d'API d'organisation. Tout autre identifiant est vérifié comme jeton d'accès OAuth.

Clés d'API d'organisation

Utilisez une clé d'API pour les tâches CI, les scripts et les autres systèmes qui n'agissent pas au nom d'une personne.

  1. Ouvrez Organization → API keys. Seuls les propriétaires et les administrateurs peuvent gérer les clés.
  2. Sous Create a key, saisissez un Key name, comme « GitHub Actions », puis cliquez sur Generate key.
  3. Copiez la clé immédiatement. Le tableau de bord ne l'affiche qu'une fois : « Copy this key now. You won't see it again. »
Codehttp
Authorization: Bearer aut_…

Ce qu'une clé peut faire :

  • Elle appartient à une organisation et atteint tous ses projets.
  • Elle possède toutes les portées ci-dessous. Il n'y a ni choix des portées ni date d'expiration.
  • Elle peut envoyer 1 000 requêtes par heure.
  • Elle ne fonctionne que sur l'API HTTP. Les assistants IA se connectent à MCP avec OAuth.

Le tableau API keys liste chaque clé avec son nom, le début de la clé et sa date de création. Pour désactiver une clé, cliquez sur Revoke key : tout ce qui l'utilise cesse immédiatement de fonctionner. Conservez les clés dans le coffre de secrets de votre CI, jamais dans un corps de requête ni dans un dépôt.

Jetons d'accès OAuth

Un jeton d'accès OAuth agit au nom de la personne qui l'a autorisé, dans une organisation. C'est ce qu'utilisent les clients MCP, et l'API HTTP l'accepte aussi. La personne doit toujours être membre de cette organisation, et un membre n'atteint que les projets qu'il peut ouvrir. Les propriétaires et les administrateurs atteignent tous les projets.

Les jetons d'accès durent une heure. Un client qui a demandé offline_access peut renouveler son jeton sans vous le redemander.

Portées

Chaque opération nécessite une portée. Les clés d'API les possèdent toutes. Un jeton OAuth possède les portées approuvées sur l'écran de consentement.

PortéeLibellé sur l'écran de consentementOpérations
autonomy:readRead projects, test cases, runs and issuesToutes les opérations list et get, run.step_actions et run.evidence
autonomy:test_cases:writeCreate and edit test casestest_case.create, test_case.update_steps, test_case.archive
autonomy:test_plans:writeCreate and edit test planstest_plan.create, test_plan.set_members
autonomy:runs:writeStart runsrun.trigger
autonomy:environments:writeCreate and edit environmentsenvironment.upsert
autonomy:issues:writeFile and update issuesissue.create, issue.comment, issue.set_status

Un jeton qui n'a pas la portée requise par une opération reçoit 403 FORBIDDEN avec le message « This operation requires the <scope> scope. » et la portée dans details.scope. Le catalogue d'opérations indique la portée de chaque opération.

Échecs d'authentification

Un identifiant absent, mal formé, expiré ou invalide renvoie 401 avec l'erreur UNAUTHENTICATED :

Codejson
1{2  "error": {3    "code": "UNAUTHENTICATED",4    "message": "Missing or invalid programmatic credentials."5  }6}

La réponse contient aussi un défi Bearer, que les clients OAuth utilisent pour trouver le serveur d'autorisation :

Défi 401http
WWW-Authenticate: Bearer resource_metadata="https://app.autonomyqa.com/.well-known/oauth-protected-resource/api/mcp"

Vous n’avez pas trouvé ?

On this page