API externes
Ces points de terminaison sont conçus pour être utilisés par d'autres applications et intégrations, par exemple Homepage. Ils sont exemptés de CSRF et n'utilisent pas de cookies de session.
L'authentification est facultative et désactivée par défaut. Bien que les clés soient facultatives, les clients peuvent omettre la clé ou en envoyer une : une clé valide dont la portée correspond est acceptée et enregistrée ; une mauvaise clé est ignorée et la requête se poursuit tout de même. Quand Require API keys est activé dans Clés API, envoyez la clé sous la forme ?api_key=, X-Api-Key ou Authorization: Bearer. Les clés Télécharger fonctionnent uniquement sur POST /api/upload. Les clés Lire fonctionnent uniquement sur /api/summary et /api/lastbackup*. Les clés dans la chaîne de requête apparaissent dans les journaux d'accès du reverse proxy.
Une liste d'adresses IP autorisées peut également restreindre ces routes. /api/health et /api/ping restent publics tant que les deux listes sont désactivées ; quand l'une ou l'autre des listes est activée, ils acceptent le bouclage (loopback) et les CIDR de la liste admin ou externe, et les clients hors loopback sont soumis à une limitation de débit.
Obtenir le résumé global - /api/summary
-
Endpoint :
/api/summary -
Méthode : GET
-
Description : Récupère un résumé de toutes les opérations de sauvegarde sur tous les serveurs.
-
Réponse :
{"totalServers": 3,"totalBackupsRuns": 9,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200} -
Réponses d'erreur :
401: Clé API manquante ou invalide lorsque les clés sont requises403: La portée de la clé n'est pasread, ou l'IP cliente n'est pas sur la liste blanche externe429: Limite de débit de l'API de lecture dépassée500: Erreur du serveur lors de la récupération des données récapitulatives
-
Notes :
- Dans la version 0.5.x, le champ
totalBackupedSizea été remplacé partotalBackupSize - Dans la version 0.7.x, le champ
totalMachinesa été remplacé partotalServers - Le champ
overdueBackupsCountaffiche le nombre de sauvegardes actuellement en retard - Le champ
secondsSinceLastBackupaffiche la durée en secondes depuis la dernière sauvegarde sur tous les serveurs - Renvoie une réponse de secours avec des zéros si la récupération des données échoue
- Note : Pour une utilisation interne du tableau de bord, envisagez d'utiliser
/api/dashboardqui inclut ces données ainsi que des informations supplémentaires
- Dans la version 0.5.x, le champ
Obtenir la dernière sauvegarde - /api/lastbackup/:serverId
- Endpoint :
/api/lastbackup/:serverId - Méthode : GET
- Description : Récupère les dernières informations de sauvegarde pour un serveur spécifique.
- Paramètres :
serverId: l'identifiant du serveur (ID ou nom)
L'identifiant du serveur doit être encodé pour l'URL.
-
Réponse :
{"server": {"id": "unique-server-id","name": "Server Name","backup_name": "Backup Name","backup_id": "backup-id","created_at": "2024-03-20T10:00:00Z"},"latest_backup": {"id": "backup-id","server_id": "unique-server-id","name": "Backup Name","date": "2024-03-20T10:00:00Z","status": "Success","warnings": 0,"errors": 0,"messages": 150,"fileCount": 249426,"fileSize": 113395849938,"uploadedSize": 331318892,"duration": "00:38:31","duration_seconds": 2311.6018052,"durationInMinutes": 38.52669675333333,"knownFileSize": 27203688543,"backup_list_count": 10,"messages_array": ["message1", "message2"],"warnings_array": ["warning1"],"errors_array": [],"available_backups": ["v1", "v2", "v3"]},"status": 200} -
Réponses d'erreur :
401: Clé API manquante ou invalide lorsque les clés sont requises403: La portée de la clé n'est pasread, ou l'IP cliente n'est pas sur la liste blanche externe404: Serveur introuvable429: Limite de débit de l'API de lecture dépassée500: Erreur interne du serveur
-
Notes :
- Dans la version 0.7.x, la clé d'objet de réponse est passée de
machineàserver - L'identifiant du serveur peut être soit l'ID soit le nom
- Renvoie null pour latest_backup s'il n'existe aucune sauvegarde
- Inclut des en-têtes de contrôle de cache pour empêcher la mise en cache
- Dans la version 0.7.x, la clé d'objet de réponse est passée de
Obtenir les dernières sauvegardes - /api/lastbackups/:serverId
- Endpoint :
/api/lastbackups/:serverId - Méthode : GET
- Description : Récupère les dernières informations de sauvegarde pour toutes les sauvegardes configurées (par ex. « Fichiers », « Bases de données ») sur un serveur spécifique.
- Paramètres :
serverId: l'identifiant du serveur (ID ou nom)
L'identifiant du serveur doit être encodé pour l'URL.
-
Réponse :
{"server": {"id": "unique-server-id","name": "Server Name","backup_name": "Default Backup","backup_id": "backup-id","created_at": "2024-03-20T10:00:00Z"},"latest_backups": [{"id": "backup1","server_id": "unique-server-id","name": "Files","date": "2024-03-20T10:00:00Z","status": "Success","warnings": 0,"errors": 0,"messages": 150,"fileCount": 249426,"fileSize": 113395849938,"uploadedSize": 331318892,"duration": "00:38:31","duration_seconds": 2311.6018052,"durationInMinutes": 38.52669675333333,"knownFileSize": 27203688543,"backup_list_count": 10,"messages_array": "[\"message1\", \"message2\"]","warnings_array": "[\"warning1\"]","errors_array": "[]","available_backups": ["v1", "v2", "v3"]},{"id": "backup2","server_id": "unique-server-id","name": "Databases","date": "2024-03-20T11:00:00Z","status": "Success","warnings": 1,"errors": 0,"messages": 75,"fileCount": 125000,"fileSize": 56789012345,"uploadedSize": 123456789,"duration": "00:25:15","duration_seconds": 1515.1234567,"durationInMinutes": 25.25205761166667,"knownFileSize": 12345678901,"backup_list_count": 5,"messages_array": ["message1"],"warnings_array": ["warning1"],"errors_array": [],"available_backups": ["v1", "v2"]}],"backup_jobs_count": 2,"backup_names": ["Files", "Databases"],"status": 200} -
Réponses d'erreur :
401: Clé API manquante ou invalide lorsque les clés sont requises403: La portée de la clé n'est pasread, ou l'IP cliente n'est pas sur la liste blanche externe404: Serveur introuvable429: Limite de débit de l'API de lecture dépassée500: Erreur interne du serveur
-
Notes :
- Dans la version 0.7.x, la clé d'objet de réponse est passée de
machineàserver, et le champbackup_types_counta été renommé enbackup_jobs_count - L'identifiant du serveur peut être soit l'ID soit le nom
- Renvoie la dernière sauvegarde pour chaque tâche de sauvegarde (backup_name) que possède le serveur
- Contrairement à
/api/lastbackup/:serverIdqui ne renvoie que la sauvegarde la plus récente du serveur (indépendamment de la tâche de sauvegarde) - Inclut des en-têtes de contrôle de cache pour empêcher la mise en cache
- Dans la version 0.7.x, la clé d'objet de réponse est passée de
Télécharger les données de Sauvegarde - /api/upload
-
Point de terminaison :
/api/upload -
Méthode : POST
-
Description : Télécharge les données d'opération de Sauvegarde pour un Serveur. Prend en charge la détection des exécutions de sauvegarde en double et envoie des Notifications.
-
Corps de la requête : JSON Envoyé par Duplicati avec les options suivantes :
--send-http-json-urls=http://my.local.server:9666/api/upload?api_key=YOUR_UPLOAD_KEY--send-http-log-level=Information--send-http-max-log-lines=500
Sur les versions de Duplicati antérieures à 2.0.9.106, utilisez `--send-http-url` avec `--send-http-result-output-format=Json`. Consultez [Configuration du Serveur Duplicati](../installation/duplicati-server-configuration.md).
- **Réponse** :
```json
{
"success": true
}
- Réponses d'erreur :
400: Champs requis manquants dans les sections Extra ou Data, ou MainOperation invalide401: Clé API manquante ou invalide lorsque les clés sont requises403: La portée de la clé n'est pasupload, ou l'IP cliente n'est pas sur la liste blanche externe409: Données de sauvegarde en double (ignorées)413: Le corps de la requête dépasse la limite de taille de téléchargement configurée (5 Mo par défaut)429: Limite de débit de téléchargement ou d'échec d'authentification dépassée (Retry-Afterest défini)500: Erreur du serveur lors du traitement des données de sauvegarde
- Notes :
- Traite uniquement les opérations de sauvegarde (MainOperation doit être "Backup")
- Valide les champs requis dans la section Extra : machine-id, machine-name, backup-name, backup-id
- Valide les champs requis dans la section Data : ParsedResult, BeginTime, Duration
- Détecte automatiquement les exécutions de sauvegarde en double et renvoie un statut 409
- Envoie des notifications après l'insertion réussie de la sauvegarde (si configuré)
- Enregistre les données de la requête dans un fichier du répertoire
dataà la racine du projet en mode développement pour le débogage - Utilise une transaction pour la cohérence des données