Documentación de la API
Integre Passly fácilmente en sus aplicaciones con nuestra API REST
URL base
Todas las solicitudes parten de esta URL. Sin clave, sin registro.
120
Solicitudes / 10 min
Sin clave
API pública
v1
Versión de la API
…
Tiempo de respuesta
Producción
https://passly.fr/api/v1Endpoints
Tres puntos de entrada. Despliegue uno para ver sus parámetros, un ejemplo y su respuesta.
Límite de peticiones
Una cuota por dirección IP protege el servicio. Las cabeceras le indican su situación.
Límite por IP
120 solicitudes cada 10 minutos
Cabeceras de respuesta
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Error 429
Se devuelve cuando se alcanza el límite. La cabecera Retry-After indica el tiempo de espera.
Códigos de error
Cada error devuelve un JSON de forma constante, con un código utilizable.
400Bad Request
Parámetros no válidos o ausentes
{
"error": true,
"message": "La longitud debe estar entre 4 y 128 caracteres",
"code": "invalid_length"
}429Too Many Requests
Límite de solicitudes superado
{
"error": true,
"message": "Límite de solicitudes alcanzado. Por favor espere 234 segundos",
"retry_after": 234,
"reset_at": "2026-01-15T10:35:00.000Z"
}500Internal Server Error
Error interno del servidor
{
"error": true,
"message": "Ocurrió un error. Por favor intente de nuevo."
}503Service Unavailable
Servicio en mantenimiento
{
"error": true,
"message": "El sitio está actualmente en mantenimiento. Por favor intente nuevamente en unos minutos."
}Códigos devueltos en el campo code
invalid_lengthinvalid_countinvalid_formatinvalid_wordsno_charsetempty_wordlist
Ejemplos de integración
La misma llamada, en el lenguaje que prefiera. Copie, pegue, adapte.
// 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');