Externe APIs
Diese Endpunkte sind für die Verwendung durch andere Anwendungen und Integrationen konzipiert, beispielsweise Homepage. Sie sind CSRF-exempt und verwenden keine Session-Cookies.
Die Authentifizierung ist optional und standardmäßig deaktiviert. Obwohl Schlüssel optional sind, können Clients den Schlüssel weglassen oder einen senden: Ein gültiger Schlüssel mit passendem Bereich wird akzeptiert und aufgezeichnet; ein ungültiger Schlüssel wird ignoriert und die Anfrage wird trotzdem verarbeitet. Wenn API-Schlüssel erforderlich in API-Schlüssel aktiviert ist, senden Sie den Schlüssel als ?api_key=, X-Api-Key oder Authorization: Bearer. Upload-Schlüssel funktionieren nur auf POST /api/upload. Lese-Schlüssel funktionieren nur auf /api/summary und /api/lastbackup*. Query-String-Schlüssel erscheinen in Reverse-Proxy-Zugriffslogs.
Eine IP-Zulassungsliste kann diese Routen auch einschränken. /api/health und /api/ping bleiben öffentlich, während beide Listen deaktiviert sind; wenn eine Liste aktiviert ist, akzeptieren sie Loopback und CIDRs von der Admin- oder externen Liste, und Clients außerhalb des Loopback werden ratenbegrenzt.
Gesamtzusammenfassung abrufen - /api/summary
-
Endpunkt:
/api/summary -
Methode: GET
-
Beschreibung: Ruft eine Zusammenfassung aller Sicherungsvorgänge auf allen Servern ab.
-
Antwort:
{"totalServers": 3,"totalBackupsRuns": 9,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200} -
Fehlerantworten:
401: Fehlender oder ungültiger API-Schlüssel, wenn Schlüssel erforderlich sind403: Schlüsselbereich ist nichtreadoder die Client-IP befindet sich nicht auf der externen Zulassungsliste429: Lesen-API-Ratelimit überschritten500: Serverfehler beim Abrufen der Zusammenfassungsdaten
-
Hinweise:
- In Version 0.5.x wurde das Feld
totalBackupedSizedurchtotalBackupSizeersetzt - In Version 0.7.x wurde das Feld
totalMachinesdurchtotalServersersetzt - Das Feld
overdueBackupsCountzeigt die Anzahl der aktuell überfälligen Backups an - Das Feld
secondsSinceLastBackupzeigt die Zeit in Sekunden seit der letzten Sicherung aller Server an - Gibt eine Ausweichantwort mit Nullwerten zurück, falls der Datenabruf fehlschlägt
- Hinweis: Für interne Dashboard-Nutzung sollten Sie
/api/dashboardverwenden, das diese Daten sowie zusätzliche Informationen enthält
- In Version 0.5.x wurde das Feld
Letzte Sicherung abrufen - /api/lastbackup/:serverId
- Endpunkt:
/api/lastbackup/:serverId - Methode: GET
- Beschreibung: Ruft die neuesten Sicherungsinformationen für einen bestimmten Server ab.
- Parameter:
serverId: die Server-ID (ID oder Name)
Die Server-ID muss URL-codiert sein.
-
Antwort:
{"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} -
Fehlerantworten:
401: Fehlender oder ungültiger API-Schlüssel, wenn Schlüssel erforderlich sind403: Schlüsselbereich ist nichtreadoder die Client-IP befindet sich nicht auf der externen Zulassungsliste404: Server nicht gefunden429: Lesen-API-Ratelimit überschritten500: Interner Serverfehler
-
Hinweise:
- In Version 0.7.x änderte sich der Antwortobjektschlüssel von
machinezuserver - Serverkennung kann entweder ID oder Name sein
- Gibt null für latest_backup zurück, wenn keine Backups vorhanden sind
- Enthält Cache-Control-Header, um Caching zu verhindern
- In Version 0.7.x änderte sich der Antwortobjektschlüssel von
Letzte Sicherungen abrufen - /api/lastbackups/:serverId
- Endpunkt:
/api/lastbackups/:serverId - Methode: GET
- Beschreibung: Ruft die neuesten Sicherungsinformationen für alle konfigurierten Sicherungen (z. B. 'Dateien', 'Datenbanken') auf einem bestimmten Server ab.
- Parameter:
serverId: die Server-ID (ID oder Name)
Die Server-ID muss URL-codiert sein.
-
Antwort:
{"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} -
Fehlerantworten:
401: Fehlender oder ungültiger API-Schlüssel, wenn Schlüssel erforderlich sind403: Schlüsselbereich ist nichtreadoder die Client-IP befindet sich nicht auf der externen Zulassungsliste404: Server nicht gefunden429: Lesen-API-Ratelimit überschritten500: Interner Serverfehler
-
Hinweise:
- In Version 0.7.x änderte sich der Antwortobjektschlüssel von
machinezuserverund das Feldbackup_types_countwurde inbackup_jobs_countumbenannt - Serverkennung kann entweder ID oder Name sein
- Gibt das neueste Backup für jeden Backup-Job (backup_name) zurück, den der Server hat
- Im Gegensatz zu
/api/lastbackup/:serverId, das nur das einzige letzte Backup des Servers zurückgibt (unabhängig vom Backup-Job) - Enthält Cache-Control-Header, um Caching zu verhindern
- In Version 0.7.x änderte sich der Antwortobjektschlüssel von
Sicherungsdaten hochladen - /api/upload
-
Endpoint:
/api/upload -
Method: POST
-
Beschreibung: Lädt Sicherungsvorgangsdaten für einen Server hoch. Unterstützt die Erkennung doppelter Sicherungsläufe und sendet Benachrichtigungen.
-
Request Body: JSON gesendet von Duplicati mit den folgenden Optionen:
--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
Verwenden Sie bei Duplicati älter als 2.0.9.106 `--send-http-url` mit `--send-http-result-output-format=Json`. Siehe [Duplicati Server-Konfiguration](../installation/duplicati-server-configuration.md).
- **Antwort**:
```json
{
"success": true
}
- Fehlerantworten:
400: Fehlende erforderliche Felder in den Abschnitten Extra oder Data oder ungültige MainOperation401: Fehlender oder ungültiger API-Schlüssel, wenn Schlüssel erforderlich sind403: Schlüsselbereich ist nichtuploadoder die Client-IP befindet sich nicht auf der externen Zulassungsliste409: Doppelte Sicherungsdaten (ignoriert)413: Anforderungstext überschreitet das konfigurierte Upload-Größenlimit (Standard 5 MB)429: Upload- oder Authentifizierungsfehler-Ratelimit überschritten (Retry-Afterist gesetzt)500: Serverfehler bei der Verarbeitung der Sicherungsdaten
- Hinweise:
- Verarbeitet nur Sicherungsvorgänge (MainOperation muss "Backup" sein)
- Validiert erforderliche Felder im Extra-Abschnitt: machine-id, machine-name, backup-name, backup-id
- Validiert erforderliche Felder im Data-Abschnitt: ParsedResult, BeginTime, Duration
- Erkennt automatisch doppelte Sicherungsläufe und gibt Status 409 zurück
- Sendet Benachrichtigungen nach erfolgreichem Einfügen der Sicherung (falls konfiguriert)
- Protokolliert Anfragedaten in eine Datei im Verzeichnis
dataim Stammverzeichnis des Projekts im Entwicklungsmodus zum Debuggen - Verwendet Transaktion für Datenkonsistenz