APIs externas
Estos endpoints están diseñados para ser utilizados por otras aplicaciones e integraciones, por ejemplo Homepage.
Obtener resumen general - /api/summary
-
Endpoint:
/api/summary -
Method: GET
-
Description: Recupera un resumen de todas las operaciones de copia de seguridad en todos los servidores.
-
Respuesta:
{"totalServers": 3,"totalBackupsRuns": 9,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200} -
Respuestas de error:
500: Error del servidor al obtener los datos del resumen
-
Notas:
- En la versión 0.5.x, el campo
totalBackupedSizefue reemplazado portotalBackupSize - En la versión 0.7.x, el campo
totalMachinesfue reemplazado portotalServers - El campo
overdueBackupsCountmuestra el número de respaldos actualmente atrasados - El campo
secondsSinceLastBackupmuestra el tiempo en segundos desde el último respaldo en todos los servidores - Devuelve una respuesta alternativa con ceros si falla la obtención de datos
- Nota: Para uso interno del panel, considere usar
/api/dashboard, que incluye estos datos más información adicional
- En la versión 0.5.x, el campo
Obtener última copia de seguridad - /api/lastbackup/:serverId
- Endpoint:
/api/lastbackup/:serverId - Method: GET
- Description: Recupera la información de la última copia de seguridad para un servidor específico.
- Parámetros:
serverId: el identificador del servidor (ID o nombre)
El identificador del servidor debe estar codificado en URL.
-
Respuesta:
{"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} -
Respuestas de error:
404: Servidor no encontrado500: Error interno del servidor
-
Notas:
- En la versión 0.7.x, la clave del objeto de respuesta cambió de
machineaserver - El identificador del servidor puede ser ID o nombre
- Devuelve null para latest_backup si no existen respaldos
- Incluye cabeceras de control de caché para evitar el almacenamiento en caché
- En la versión 0.7.x, la clave del objeto de respuesta cambió de
Obtener últimas copias de seguridad - /api/lastbackups/:serverId
- Endpoint:
/api/lastbackups/:serverId - Method: GET
- Description: Recupera la información de la última copia de seguridad para todas las copias de seguridad configuradas (por ejemplo, 'Archivos', 'Bases de datos') en un servidor específico.
- Parámetros:
serverId: el identificador del servidor (ID o nombre)
El identificador del servidor debe estar codificado en URL.
-
Respuesta:
{"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} -
Respuestas de error:
404: Servidor no encontrado500: Error interno del servidor
-
Notas:
- En la versión 0.7.x, la clave del objeto de respuesta cambió de
machineaserver, y el campobackup_types_countfue renombrado abackup_jobs_count - El identificador del servidor puede ser ID o nombre
- Devuelve el último respaldo para cada trabajo de respaldo (backup_name) que tenga el servidor
- A diferencia de
/api/lastbackup/:serverId, que devuelve solo el respaldo más reciente del servidor (independientemente del trabajo de respaldo) - Incluye cabeceras de control de caché para evitar el almacenamiento en caché
- En la versión 0.7.x, la clave del objeto de respuesta cambió de
Subir datos de copia de seguridad - /api/upload
-
Endpoint:
/api/upload -
Method: POST
-
Description: Sube los datos de la operación de copia de seguridad para un servidor. Admite la detección de ejecuciones duplicadas de copias de seguridad y envía notificaciones.
-
Cuerpo de la solicitud: JSON enviado por Duplicati con las siguientes opciones:
--send-http-url=http://my.local.server:9666/api/upload--send-http-result-output-format=Json--send-http-log-level=Information -
Respuesta:
{"success": true} -
Respuestas de error:
400: Faltan campos requeridos en las secciones Extra o Data, o MainOperation no válida409: Datos de respaldo duplicados (ignorados)500: Error del servidor al procesar los datos de respaldo
-
Notas:
- Solo procesa operaciones de respaldo (MainOperation debe ser "Backup")
- Valida los campos requeridos en la sección Extra: machine-id, machine-name, backup-name, backup-id
- Valida los campos requeridos en la sección Data: ParsedResult, BeginTime, Duration
- Detecta automáticamente ejecuciones duplicadas de respaldo y devuelve el estado 409
- Envía notificaciones tras la inserción exitosa del respaldo (si está configurado)
- Registra los datos de la solicitud en un archivo en el directorio
dataen la raíz del proyecto en modo desarrollo para depuración - Usa transacciones para garantizar la consistencia de los datos