L’API Paylood est une API REST construite avec NestJS. Elle est préfixée par /api/v1.
Base URL
https://<votre-instance>/api/v1
Documentation interactive (Swagger)
La documentation OpenAPI est disponible sur :
https://<votre-instance>/api/docs
Attention
Swagger n’est activé que dans les environnements non-production par défaut, pour des raisons de sécurité. En production, il peut être désactivé.
Authentification
L’API utilise des jetons JWT Bearer :
Authorization: Bearer <votre-jeton>
Obtenez le jeton via l’endpoint de connexion :
curl -X POST https://app.paylood.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"vous@exemple.com","password":"motdepasse"}'
La réponse contient accessToken et le profil utilisateur.
Principaux endpoints
Auth
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /auth/register | Créer un compte |
| POST | /auth/login | Se connecter |
| POST | /auth/verify-otp | Valider le code OTP |
| POST | /auth/forgot-password | Demander un lien de réinitialisation |
| POST | /auth/reset-password | Réinitialiser le mot de passe |
Git Providers
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /git-provider/save-token | Enregistrer un token Git |
| GET | /git-providers | Liste des comptes connectés |
| GET | /git-providers/repositories | Rechercher des dépôts |
| GET | /git-providers/:providerId/repos/:repo/branches | Branches d’un dépôt |
| DELETE | /git-providers/:id | Déconnecter un compte |
Projets & Environnements
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /projects | Créer un projet |
| GET | /projects | Liste des projets |
| GET | /projects/:id | Détails d’un projet |
| PUT | /projects/:id | Mettre à jour un projet |
| DELETE | /projects/:id | Supprimer un projet |
| GET | /projects/analyze-repo | Analyser un dépôt |
| POST | /projects/:id/finalize | Finaliser (optionnel : déployer) |
| POST | /projects/:id/retry-analysis | Relancer l’analyse |
Environnements
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /environments | Créer un environnement |
| PATCH | /environments/:id | Mettre à jour un environnement |
| PATCH | /environments/:id/branch | Changer la branche |
| PATCH | /environments/:id/server | Lier un serveur |
| DELETE | /environments/:id | Supprimer un environnement |
| PATCH | /environments/:id/auto-deploy | Activer/désactiver l’auto-deploy |
| POST | /environments/:id/services | Configurer les services |
| POST | /environments/:id/domain | Configurer le domaine + SSL |
| POST | /environments/:id/variables | Ajouter des variables |
| GET | /environments/:id/deployments | Historique des déploiements |
| POST | /environments/:id/deployments/:did/cancel | Annuler un déploiement |
Serveurs
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /servers | Ajouter un serveur |
| GET | /servers | Liste des serveurs |
| GET | /servers/:id/security | État de sécurité |
| POST | /servers/:id/security/harden | Durcir le serveur |
| DELETE | /servers/:id | Supprimer un serveur |
Domaines
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /domains | Enregistrer un domaine |
| GET | /domains | Liste des domaines |
| POST | /domains/:id/verify | Vérifier un domaine |
| DELETE | /domains/:id | Supprimer un domaine |
Sauvegardes
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /environments/:id/backups | Liste des sauvegardes |
| POST | /environments/:id/backups/trigger | Déclencher une sauvegarde |
| POST | /environments/:id/backups/:bid/restore | Restaurer |
| POST | /environments/:id/backups/import | Importer un fichier SQL |
| PATCH | /environments/:id/backups/config | Configurer la planification |
Notifications
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /notification-connectors | Liste des connecteurs |
| POST | /notification-connectors | Créer un connecteur |
| POST | /notification-connectors/:id/test | Tester un connecteur |
| PUT | /notification-connectors/project/:projectId | Associer à un projet |
| DELETE | /notification-connectors/:id | Supprimer un connecteur |
Flux temps réel (SSE)
Certains endpoints diffusent des événements via Server-Sent Events :
GET /events— événements globaux (project_updated).GET /environments/:id/deployments/:did/status— statut d’un déploiement.GET /projects/:id/analysis-status— statut d’analyse.POST /servers/test-connection— test de connexion SSH.
const sse = new EventSource('/api/v1/events');
sse.onmessage = (e) => console.log(e.data);
Limites de débit
L’API est protégée par un throttler. Les réponses en excès renvoient un code 429.
La liste ci-dessus est un aperçu. La référence exhaustive (schémas, paramètres, modèles) se trouve dans Swagger sur /api/docs.