# Une API pour générer et vérifier des mots de passe · password.es

> api.password.es répond : POST /v1/generate renvoie des mots de passe et leur analyse exacte, avec les mêmes chiffres que ce site. 60 requêtes/min, sans inscription.

password.es · Original: https://password.es/fr/api/

---

# Une API pour générer et vérifier des mots de passe

`api.password.es` répond. Une requête renvoie des mots de passe et leur analyse avec les mêmes chiffres que ceux affichés sur ce site : la même formule de bits, le même modèle d'attaque et la même échelle de niveau que le vérificateur.

**Sans inscription et sans clé.** On l'appelle, c'est tout : 60 requêtes par minute et par IP. Générer fonctionne aujourd'hui ; vérifier pas encore, et on dit plus bas exactement pourquoi.

## Ce qui répond aujourd'hui

Tout dépend de `https://api.password.es`. Trois adresses répondent et une pas encore ; la référence complète —paramètres, champs et erreurs— se trouve dans [la documentation](https://password.es/fr/api/docs/).

- POST/v1/generate Génère un ou plusieurs mots de passe et renvoie leur analyse.
- GET/openapi.json La description de l'API, en OpenAPI 3.1.
- POST/mcp Serveur MCP pour assistants. Un outil : `generate_password`.
- POST/v1/check 501 N'existe pas encore. L'erreur dit ce qui manque et où aller en attendant.

## En dix secondes

Pas de clé, pas d'inscription et pas d'en-têtes. Voici l'appel entier :

Un mot de passe, rien d'autre

```
curl -X POST https://api.password.es/v1/generate
```

Il renvoie un mot de passe de 16 caractères et son analyse : les bits, combien de temps il tiendrait face à une attaque, et un niveau de 0 à 4 — les mêmes chiffres que sur la page d'accueil de ce site. Tout le reste, ce sont des options.

## La référence complète

[La documentation de l'API](https://password.es/fr/api/docs/) contient les neuf paramètres, chaque champ de la réponse expliqué un par un, les codes d'erreur, les limites et la façon dont la langue est choisie. C'est la page qu'on ouvre à côté de son éditeur ; celle-ci dit de quoi il s'agit.

## Ce qui n'existe pas encore

Sans dates, parce qu'il n'y en a pas. C'est écrit pour qu'on voie où cela va, pas comme un engagement.

- **`/v1/check`**. L'intention est qu'il analyse un mot de passe avec les mêmes chiffres que le vérificateur. Aujourd'hui il renvoie `501` et dit pourquoi : il exige exactement le même moteur de motifs que le site, et cela coûte entre 11 ms et 3,6 s de CPU par requête selon l'entrée. Il attend une décision —où placer la limite de longueur— qui n'a pas encore été prise.
- **Vérifier par k-anonymat** : savoir si un mot de passe figure dans une fuite sans jamais l'envoyer en entier.
- **Le paquet local** : le même moteur, à exécuter sur votre machine, pour ne jamais nous appeler. C'est la partie coûteuse de tout cela, alors ne la tenez pas pour acquise.
- **Clés et forfaits.** Ni date ni engagement. Il n'y a aujourd'hui ni inscription ni tarifs, et c'est pourquoi il n'y a pas un seul lien vers eux dans toute l'API — pas même dans l'erreur de dépassement de limite.

## Ce que nous ne cacherons pas

Une API qui génère des mots de passe est, au fond, un antipattern : le mot de passe traverse le réseau et passe par une machine qui n'est pas la vôtre. C'est maintenant, quand on peut vraiment l'appeler, que cet avertissement est utile — pas quand cette page était une promesse.

C'est pourquoi il ne vit pas seulement ici : **chaque réponse porte son propre `notice`** qui dit la même chose, dans la langue demandée. Pour un mot de passe que vous allez vraiment utiliser, [le générateur de ce site](https://password.es/fr/) tourne entièrement dans votre navigateur et n'envoie rien ; [le vérificateur](https://password.es/fr/verificateur/), pareil.

La vraie sortie de cet antipattern, c'est le paquet local de la liste ci-dessus : le même moteur, sur votre machine, sans nous au milieu. Une intention, pas une date.
