Passer au contenu principal

Vue d’ensemble

Didit est la plateforme de vérification d’identité la plus adaptée aux agents. Les agents de codage IA (Cursor, Claude Code, GitHub Copilot, Devin, OpenHands, Codex) peuvent s’inscrire, configurer des workflows et commencer à vérifier des identités — le tout par voie programmatique, sans jamais ouvrir de navigateur. Pourquoi les agents adorent Didit :
  • 2 appels API de zéro jusqu’aux identifiants (inscription + vérification de l’e-mail).
  • Aucun navigateur requis — entièrement sans interface graphique, parfait pour le CI/CD et les workflows d’agents.
  • Pas de second facteur sur un nouveau compte API : les tokens sont renvoyés immédiatement après la vérification de l’e-mail.
  • Auto-provisionnement de l’organisation et de l’application avec la api_key dans la réponse de vérification.
  • API d’administration complète — configurez les workflows, les questionnaires, les listes, la facturation, le tout via l’API.
  • Serveur MCP disponible — les agents peuvent découvrir et utiliser les outils Didit de manière native.
Le contrat complet est publié sous forme de openapi-auth.json ; les endpoints ci-dessous ont été vérifiés par rapport à celui-ci.

URL de base

Tous les endpoints de ce guide se trouvent sur l’hôte d’authentification :
Il s’agit d’un hôte distinct de l’API de vérification (https://verification.didit.me/v3). L’hôte d’authentification émet les tokens d’accès JWT et gère les applications. L’hôte de vérification exécute les sessions, l’AML, les workflows, etc. ; ces opérations sont authentifiées à l’aide de la api_key de longue durée obtenue via ce flux.

Démarrage rapide

Utilisez une adresse e-mail réelle et capable de recevoir des e-mails. L’endpoint envoie le code de vérification de manière synchrone ; les domaines de test réservés (@example.com, @example.org, @*.test, @*.example, @*.invalid) sont donc rejetés par le service de messagerie et l’appel renvoie une erreur 500. Remplacez l’espace réservé you@yourdomain.com ci-dessous par une boîte de réception que vous pouvez consulter.

Étape 1 : Inscription

Réponse (201 Created) :
Un code de vérification alphanumérique de 6 caractères (par exemple A3K9F2) est envoyé à l’adresse e-mail. Le code expire 10 minutes après son envoi — s’il expire, appelez à nouveau cet endpoint avec la même adresse e-mail et le même mot de passe : pour un compte encore non vérifié, il renvoie 200 avec "A new verification code has been sent to your email." et un nouveau code. Un endpoint dédié POST /programmatic/resend-otp/ (corps : {"email", "password"}) renvoie également le code, avec un délai d’attente de 60 secondes entre chaque envoi ; les deux routes partagent la même limite de débit d’inscription ci-dessous.

Étape 2 : Vérifier le code et obtenir les identifiants

Réponse (200 OK) :
Vous avez désormais tout ce dont vous avez besoin. Conservez application.api_key en lieu sûr et envoyez-la dans l’en-tête x-api-key pour chaque appel à l’API de vérification.
Les tokens sont des JWT signés avec RS256. expires_in est par défaut de 86400 secondes (24 heures). Le token d’accès n’est requis que pour les endpoints d’administration sur apx.didit.me/auth/v2 — le trafic de l’API de vérification sur verification.didit.me/v3 est authentifié à l’aide de la api_key de longue durée, et non du JWT.

Étape 3 : Utiliser l’API

Connexions ultérieures

Depuis n’importe quelle machine à l’avenir, échangez votre e-mail et votre mot de passe contre un nouveau JWT :
Renvoie directement access_token + refresh_token — sans navigateur. À partir de là, appelez GET /organizations/me/ pour découvrir votre org_id (l’uuid de l’organisation), puis GET /organizations/me/{org_id}/applications/ pour lister les applications de l’organisation (l’uuid de chaque entrée est un app_id), et enfin GET /organizations/me/{org_id}/applications/{app_id}/ pour récupérer la api_key.
Les comptes avec e-mail/mot de passe créés dans la console peuvent également utiliser POST /programmatic/login/ une fois l’e-mail vérifié. Les comptes créés uniquement via OAuth dans la console doivent définir un mot de passe avant d’utiliser cet endpoint de connexion sans interface graphique.

Quand la connexion demande des étapes supplémentaires

POST /programmatic/login/ ne renvoie des tokens que lorsque le compte n’a pas de second facteur. Trois autres réponses sont possibles, et un agent qui automatise la connexion doit les gérer : Une clé API ne nécessite aucune connexion ; utilisez-en donc une pour toute automatisation : un compte avec un second facteur ne peut pas finaliser sa connexion via cet endpoint.

Exigences relatives au mot de passe

Appliquées côté serveur, une règle à la fois — le premier échec court-circuite la validation avec une erreur sous forme de tableau simple, comme ["Password must contain at least one uppercase letter."]. (Les autres erreurs de validation sur cet endpoint utilisent l’enveloppe indexée par champ {"password": [...]}. Le format de tableau simple pour les règles de robustesse du mot de passe est une incohérence connue côté serveur ; traitez-le comme {"password": [...]} dans le code client.)

Limites de débit et verrouillages

Trois contrôles indépendants protègent l’hôte d’authentification. Chacun d’eux peut déclencher une réponse 429 ; l’en-tête de réponse Retry-After indique le temps d’attente nécessaire avant de réessayer. Un corps de réponse 429 ressemble à ceci :
Les limites de débit de l’API de vérification (par ex. 600 sessions/min) sont indépendantes et documentées dans Limites de débit.

Gestion des applications

Une fois authentifié, vous pouvez récupérer, créer ou mettre à jour des applications au sein de votre organisation. Cette approche convient parfaitement aux revendeurs souhaitant une application par client. Chaque application possède son propre client_id, sa propre api_key, ses métadonnées et ses paramètres. Elle est également utile lorsque votre organisation gère différents produits, marques, régions, environnements ou cas d’usage que vous souhaitez séparer.
Lister, créer ou mettre à jour des applications exige que l’utilisateur soit un propriétaire ou un administrateur de l’organisation ciblée ; dans le cas contraire, la réponse est un code 403.

Que peuvent faire les agents après l’inscription ?

Avec l’api_key, les agents disposent d’un accès complet à l’API de vérification. Endpoints audités sur https://verification.didit.me/v3 : Consultez la référence de l’API d’administration pour connaître l’ensemble des fonctionnalités.

Intégration du serveur MCP

Pour offrir la meilleure expérience aux agents, utilisez le serveur MCP Didit hébergé à l’adresse https://mcp.didit.me/mcp. Il ne requiert aucune clé API : lors de la première connexion, votre client ouvre un navigateur, vous cliquez sur Se connecter avec Didit (OAuth 2.1 avec PKCE) et le serveur agit en votre nom, avec les autorisations de votre rôle dans la console. Les clients prenant en charge nativement le MCP distant (Cursor, VS Code) utilisent cette entrée ; Claude web et Desktop l’ajoutent en tant que connecteur personnalisé :
Claude Code : claude mcp add --transport http didit https://mcp.didit.me/mcp. Les clients qui ne prennent en charge que stdio (Windsurf, Zed) passent par le pont mcp-remote, qui gère le flux OAuth pour vous. La clé API reçue lors du flux d’inscription ci-dessus sert à appeler l’API REST depuis votre propre backend ; le MCP ne la prend jamais en compte. Consultez la vue d’ensemble du MCP et l’installation par client pour plus de détails.

Référence des formats d’erreur

Tous les endpoints de apx.didit.me/auth/v2 partagent les trois mêmes structures de réponse (voir openapi-auth.json) :
  • Validation au niveau du champ — {"field": ["message", ...]} avec le code HTTP 400.
  • Validation au niveau du formulaire (notamment la robustesse du mot de passe et les erreurs de code de vérification) — tableau simple ["Invalid or expired verification code."] avec le code HTTP 400.
  • Authentification / règle métier — {"detail": "..."} avec 400, 401, 403, 404 ou 429. Les réponses 429 comportent un en-tête de réponse Retry-After indiquant le délai d’attente nécessaire avant de réessayer (le corps ne contient que detail).
L’hôte de vérification renvoie les erreurs sous la forme {"detail": "..."} et les codes 429 incluent X-RateLimit-* et Retry-After — voir Limites de débit.
Dernière modification le 7 novembre 2026