Documentation API
Intégrez facilement Passly dans vos applications avec notre API REST
URL de base
Toutes les requêtes partent de cette URL. Aucune clé, aucune inscription.
120
Requêtes / 10 min
Sans clé
API publique
v1
Version API
…
Temps de réponse
Production
https://passly.fr/api/v1Endpoints
Trois points d'entrée. Dépliez-en un pour voir ses paramètres, un exemple et sa réponse.
Limitation de débit
Un quota par adresse IP protège le service. Les en-têtes vous disent où vous en êtes.
Limite par IP
120 requêtes toutes les 10 minutes
En-têtes de réponse
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Erreur 429
Retournée quand la limite est atteinte. L'en-tête Retry-After indique le temps d'attente.
Codes d'erreur
Chaque erreur renvoie un JSON de forme constante, avec un code exploitable.
400Bad Request
Paramètres invalides ou manquants
{
"error": true,
"message": "La longueur doit être comprise entre 4 et 128 caractères",
"code": "invalid_length"
}429Too Many Requests
Limite de requêtes dépassée
{
"error": true,
"message": "Limite de requêtes atteinte. Veuillez patienter 234 secondes",
"retry_after": 234,
"reset_at": "2026-01-15T10:35:00.000Z"
}500Internal Server Error
Erreur serveur interne
{
"error": true,
"message": "Une erreur est survenue. Veuillez réessayer."
}503Service Unavailable
Service en maintenance
{
"error": true,
"message": "Le site est actuellement en maintenance. Veuillez réessayer dans quelques minutes."
}Codes renvoyés dans le champ code
invalid_lengthinvalid_countinvalid_formatinvalid_wordsno_charsetempty_wordlist
Exemples d'intégration
Le même appel, dans le langage de votre choix. Copiez, collez, adaptez.
// PasslyClient.js
class PasslyClient {
constructor(baseURL = 'https://passly.fr/api/v1') {
this.baseURL = baseURL;
}
async generatePassword(options = {}) {
const response = await fetch(`${this.baseURL}/generate`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
length: options.length || 16,
count: options.count || 1,
lowercase: options.lowercase !== false,
uppercase: options.uppercase !== false,
digits: options.digits !== false,
special: options.special || false,
exclude_similar: options.excludeSimilar || false,
format: options.format || 'random'
})
});
if (!response.ok) {
throw new Error(`API Error: ${response.status}`);
}
return response.json();
}
async checkHealth() {
const response = await fetch(`${this.baseURL}/health`);
return response.json();
}
}
// Utilisation
const passly = new PasslyClient();
const result = await passly.generatePassword({
length: 24,
special: true,
excludeSimilar: true
});
console.log('Mot de passe:', result.data.passwords[0]);
console.log('Force:', result.data.strength);
console.log('Entropie:', result.data.entropy_bits, 'bits');