Password Pusher API v2
BETADocumentation complète de l'API REST pour l'intégration de Password Pusher dans vos flux de travail, applications et outils.
Avis bêta : L'API v2 est actuellement en version bêta. Bien que nous ayons fait tous les efforts possibles pour en assurer la stabilité, il est possible que des changements radicaux soient apportés avant la sortie de la version finale. N'hésitez pas à nous faire part de vos commentaires !
Présentation
L'API Password Pusher v2 fournit une interface RESTful pour la création, la récupération et la gestion de demandes et de poussées de mots de passe sécurisés. Tous les points d'extrémité de l'API renvoient des réponses JSON et utilisent des codes d'état HTTP standard.
Authentification par jeton porteur
Accès sécurisé à l'API grâce à l'authentification par jeton
Réponses JSON uniquement
Format JSON cohérent pour tous les points d'extrémité
Conception RESTful
Points d'accès REST intuitifs conformes aux meilleures pratiques
Poussées et demandes
Prise en charge des poussées unidirectionnelles et des demandes bidirectionnelles
Générateur de mot de passe
Créer des mots de passe, des phrases de passe et des codes PIN via la méthode POST /api/v2/generate
L'API v2 utilise l'authentification par jeton porteur. Pour vous authentifier, incluez votre jeton API dans le champ Authorization l'en-tête :
Authorization: Bearer YOUR_API_TOKEN
Obtenir un jeton API
- Connectez-vous à votre compte Password Pusher
- Accédez à la page des jetons d'API
- Générer un jeton API
- Copiez le jeton et utilisez-le dans vos demandes d'API
Remarque : Certaines opérations (telles que la récupération d'une notification push ou d'une requête, ou la génération d'un mot de passe) sont accessibles de manière anonyme. La création de requêtes, l'accès aux journaux d'audit et la gestion des collections nécessitent une authentification. Ajoutez un jeton « Bearer » aux requêtes de génération lorsque vous devez respecter la politique de l'espace de travail connecté.
Tous les points d'extrémité de l'API sont préfixés par :
https://eu.pwpush.com/api/v2
Disponibilité de la version bêta
L'API v2 est actuellement en version bêta et est disponible sur pwpush.com et les éditions Pro auto-hébergées. L'API sera ajoutée à l'édition open-source après sa sortie de la version bêta.
Pour les instances auto-hébergées, utilisez votre propre domaine. L'URL de base indiquée ci-dessus reflète l'hôte actuel auquel vous accédez.
GET /api/v2/version
Renvoie la version actuelle de l'API, les détails de l'application et un hachage des fonctionnalités décrivant les capacités activées sur cette instance.
Exemple de demande
curl -X GET https://eu.pwpush.com/api/v2/version
Exemple de réponse
{
"application_version": "2.1.0",
"api_version": "2.1",
"edition": "commercial",
"features": {
"anonymous_access": true,
"api_token_authentication": true,
"password_generator": {
"enabled": true,
"languages": ["de", "en", "es", "fr", "it"]
},
"accounts": {
"enabled": true
},
"pushes": {
"enabled": true,
"email_auto_dispatch": true,
"file_attachments": {
"enabled": true,
"requires_authentication": true
}
},
"requests": {
"enabled": true,
"email_auto_dispatch": true,
"file_attachments": {
"enabled": true,
"requires_authentication": true
}
}
}
}
Caractéristiques Hash
accès_anonyme - Si l'utilisation anonyme de l'API est autorisée
api_token_authentification - Prise en charge de l'authentification par jeton porteur
password_generator.enabled - Si la génération de mots de passe, de phrases de passe et de codes PIN est activée
password_generator.langues - Langues prises en charge pour les listes de mots de passe
comptes.activés - Si la liste des espaces de travail est disponible dans /api/v2/workspaces (l'ancien chemin /api/v2/accounts est un alias)
poussées.activées - Création et gestion de poussées via l'API
push.email_auto_dispatch - Vérifier si cette instance peut envoyer par e-mail des liens secrets lors de la création. Détection de fonctionnalité uniquement : utilisez le paramètre `notify_recipients` lors de la création pour désactiver l'envoi automatique tout en continuant à fournir `notify_emails_to` pour les destinataires authentifiés.
pushes.file_attachments.enabled - Fichiers joints sur les push
pushes.file_attachments.requires_authentication - Les pièces jointes nécessitent une authentification
requêtes.activées - Création et gestion des demandes via l'API
demandes.email_auto_dispatch - Vérifier si cette instance peut envoyer par e-mail des liens secrets lors de la création. Détection de fonctionnalité uniquement : utilisez le paramètre `notify_recipients` lors de la création pour désactiver l'envoi automatique tout en continuant à fournir `notify_emails_to` pour les destinataires authentifiés.
requests.file_attachments.enabled - Fichiers joints aux réponses aux demandes
requests.file_attachments.requires_authentication - Les pièces jointes nécessitent une authentification
POST /api/v2/generate
Crée un ou plusieurs mots de passe, phrases de passe ou codes PIN. L'authentification est facultative. Les requêtes anonymes utilisent la politique de l'espace de travail principal (ou la politique globale auto-hébergée). Envoyez un jeton « Bearer » pour utiliser la politique de l'espace de travail connecté, y compris sur les domaines personnalisés.
Lorsque la configuration du générateur est désactivée par une règle, les remplacements d'options sont ignorés et seul le nombre est pris en compte.
Si la génération de mot de passe est désactivée, l'API renvoie le code d'erreur 403 « Forbidden ».
Le nombre de requêtes est limité à 30 par minute et par adresse IP ou par utilisateur authentifié.
Corps de la demande (JSON)
Envoyez les paramètres à la racine de l'objet JSON. Les champs omis reprennent les valeurs par défaut de la politique en vigueur.
| Paramètres | Taper | Description |
|---|---|---|
workspace_id
optionnel
|
string | Espace de travail authentifié à partir duquel appliquer la politique. Accepte également « account_id ». Renvoie le code d'erreur 401 si l'appelant n'est pas membre de cet espace de travail. |
type
optionnel
|
string | mot de passe, phrase de passe ou code PIN |
count
optionnel
|
integer (1-10) | Nombre de valeurs à générer |
language
optionnel
|
string | Liste de mots de passe : en, es, fr, de ou it |
word_count
optionnel
|
integer (3-10) | Nombre de mots dans une phrase de passe |
separator
optionnel
|
string | Chaîne insérée entre les mots de la phrase de passe |
capitalize
optionnel
|
boolean | Mettez une majuscule à chaque mot de la phrase secrète |
number
optionnel
|
boolean | Ajouter des chiffres à une phrase de passe |
symbol
optionnel
|
boolean | Ajouter un symbole à une phrase de passe |
length
optionnel
|
integer | Longueur du mot de passe (4 à 128) ou longueur du code PIN (4 à 12) |
uppercase
optionnel
|
boolean | Utilisez des lettres majuscules dans vos mots de passe |
lowercase
optionnel
|
boolean | Utilisez des lettres minuscules dans vos mots de passe |
digits
optionnel
|
boolean | Utiliser des chiffres dans les mots de passe |
symbols
optionnel
|
boolean | Utiliser des caractères spéciaux dans les mots de passe |
avoid_ambiguous
optionnel
|
boolean | Exclure les caractères ambigus tels que 0, O, l et 1 |
min_digits
optionnel
|
integer | Nombre minimum de caractères dans un mot de passe |
min_symbols
optionnel
|
integer | Nombre minimum de caractères dans un mot de passe |
charset
optionnel
|
string | Jeu de caractères prédéfini : ASCII, latin, cyrillique ou grec. Toute autre valeur est considérée comme un jeu de caractères personnalisé. |
Champs de réponse
| Champ d'application | Description |
|---|---|
type |
mot de passe, phrase de passe ou code PIN |
language |
Présent pour les phrases de passe. La liste de mots utilisée pour générer le résultat. |
entropy_bits |
Valeur estimée de la résistance renvoyée dans la réponse. Voir l'entropie comme indicateur de la force d'un mot de passe. |
results |
Tableau de chaînes générées |
Exemple de demande
curl -X POST https://eu.pwpush.com/api/v2/generate \
-H "Content-Type: application/json" \
-d '{
"type": "passphrase",
"language": "en",
"word_count": 4,
"count": 2
}'
Exemple de réponse
{
"type": "passphrase",
"language": "en",
"entropy_bits": 51.7,
"results": ["Correct-Horse-Battery-Staple42", "River-Garden-Lantern-Anchor17"]
}
Exemple de mot de passe
curl -X POST https://eu.pwpush.com/api/v2/generate \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "password",
"length": 20,
"symbols": true
}'
Exemple : Créer et récupérer une poussée
# Create a push
curl -X POST https://eu.pwpush.com/api/v2/pushes \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"push": {
"payload": "MySecretPassword123",
"expire_after_duration": 6,
"expire_after_views": 3
}
}'
# Retrieve the push
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92
Exemple : Créer une demande et y répondre
# Create a request
curl -X POST https://eu.pwpush.com/api/v2/requests \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"request": {
"request": "Please provide the API key",
"close_after_duration": 8
}
}'
# Respond to the request
curl -X PATCH https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/respond \
-H "Content-Type: application/json" \
-d '{
"request": {
"response": "The API key is: sk_live_1234567890"
}
}'
Demande d'États
L'API utilise les codes d'état HTTP standard :
200 OK
Demande acceptée
201 Created
Ressource créée
400 Bad Request
Paramètres non valides
422 Unprocessable Entity
Erreurs de validation ou données de demande non valides
401 Unauthorized
Authentification requise
403 Forbidden
Accès refusé
404 Not Found
Ressource non trouvée
La limitation du débit est mise en œuvre pour protéger l'API contre les abus et garantir une utilisation équitable pour tous les utilisateurs. Les limites de débit sont appliquées par adresse IP et varient en fonction du type de demande et du point de terminaison.
Les requêtes GET relatives au journal d'audit sont limitées à 15 requêtes par minute et par adresse IP, avec une limite de pointe de 5 requêtes toutes les 10 secondes, et à 30 requêtes par minute par utilisateur authentifié ou par jeton API.
Réponses aux limites de taux
Lorsqu'une demande dépasse la limite de débit, l'API renvoie un message 429 Too Many Requests avec un code d'état Retry-After indiquant quand vous pouvez réessayer la demande.
Les meilleures pratiques
- Mettre en place un backoff exponentiel lors de la réception d'une réponse 429
- Respecter les
Retry-Aftervaleur de l'en-tête - Mettre en cache les réponses, le cas échéant, pour réduire le nombre d'appels à l'API
- Opérations par lots lorsque c'est possible au lieu de faire de nombreuses demandes individuelles
- Surveillez l'utilisation de l'API de votre application pour éviter de vous heurter à des limites
Remarque : Les limites de taux sont conçues pour éviter les abus tout en permettant une utilisation légitime. Si vous rencontrez régulièrement des limites de taux, envisagez d'optimiser votre intégration ou de contacter l'assistance pour discuter de votre cas d'utilisation.
Dernière mise à jour : October 17, 2026