APIs externas
Estos puntos finales están diseñados para ser utilizados por otras aplicaciones e integraciones, por ejemplo Página Principal. Están exentos de CSRF y no utilizan cookies de sesión.
La autenticación es opcional y está desactivada por defecto. Aunque las claves son opcionales, los clientes pueden omitir la clave o enviar una: se acepta y registra una clave válida de ámbito coincidente; una clave incorrecta se ignora y la solicitud sigue adelante. Cuando Requerir claves de API está habilitado en Claves de API, envía la clave como ?api_key=, X-Api-Key, o Authorization: Bearer. Las claves de subida solo funcionan en POST /api/upload. Las claves de lectura solo funcionan en /api/summary y /api/lastbackup*. Las claves de cadena de consulta aparecen en los registros de acceso del proxy inverso.
Una lista de IPs permitidas también puede restringir estas rutas. /api/health y /api/ping permanecen públicas mientras ambas listas estén desactivadas; cuando cualquiera de las listas está habilitada, aceptan loopback y CIDRs de la lista del administrador o externa, y los clientes no loopback tienen un límite de tasa.
Obtener Resumen General - /api/summary
-
Punto final:
/api/summary -
Método: GET
-
Descripción: 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:
401: Clave de API faltante o inválida cuando se requieren claves403: El ámbito de la clave no esread, o la IP del cliente no está en la lista externa permitida429: Límite de tasa de API de lectura excedido500: Error del servidor al obtener datos de 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 copias de seguridad actualmente pendientes - El campo
secondsSinceLastBackupmuestra el tiempo en segundos desde la última copia de seguridad en todos los servidores - Devuelve una respuesta de reserva con ceros si la obtención de datos falla
- Nota: Para uso en el panel interno, considera usar
/api/dashboardque 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
- Punto final:
/api/lastbackup/:serverId - Método: GET
- Descripción: 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:
401: Clave de API faltante o inválida cuando se requieren claves403: El ámbito de la clave no esread, o la IP del cliente no está en la lista externa permitida404: Servidor no encontrado429: Límite de tasa de API de lectura excedido500: 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 ya sea ID o nombre
- Devuelve nulo para latest_backup si no existen copias de seguridad
- Incluye encabezados 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
- Punto final:
/api/lastbackups/:serverId - Método: GET
- Descripción: Recupera la información de las últimas copias 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:
401: Clave de API faltante o inválida cuando se requieren claves403: El ámbito de la clave no esread, o la IP del cliente no está en la lista externa permitida404: Servidor no encontrado429: Límite de tasa de API de lectura excedido500: 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 ya sea ID o nombre
- Devuelve la última copia de seguridad para cada trabajo de copia de seguridad (backup_name) que tiene el servidor
- A diferencia de
/api/lastbackup/:serverIdque devuelve solo la copia de seguridad más reciente del servidor (independientemente del trabajo de copia de seguridad) - Incluye encabezados 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
-
Punto final:
/api/upload -
Método: POST
-
Descripción: Sube datos de operación de copia de seguridad para un servidor. Soporta detección de ejecución de copia de seguridad duplicada y envía notificaciones.
-
Cuerpo de Solicitud: JSON enviado por duplicati con las siguientes opciones:
--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
En Duplicati anterior a 2.0.9.106, utiliza `--send-http-url` con `--send-http-result-output-format=Json`. Consulta [Configuración del Servidor Duplicati](../installation/duplicati-server-configuration.md).
- **Respuesta**:
```json
{
"success": true
}
- Respuestas de Error:
400: Faltan campos requeridos en las secciones Extra o Data, o MainOperation no válido401: Clave API faltante o no válida cuando se requieren claves403: El ámbito de la clave no esupload, o la IP del cliente no está en la lista de permitidos externa409: Datos de copia de seguridad duplicados (ignorados)413: El cuerpo de la solicitud excede el límite de tamaño de subida configurado (predeterminado 5 MB)429: Se ha superado el límite de tasa de fallo de subida o autenticación (Retry-Afterestá configurado)500: Error del servidor al procesar los datos de copia de seguridad
- Notas:
- Solo procesa operaciones de copia de seguridad (MainOperation debe ser "Copia de seguridad")
- 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, Duración
- Detecta automáticamente ejecuciones de copia de seguridad duplicadas y devuelve un estado 409
- Envía notificaciones después de la inserción exitosa de la copia de seguridad (si está configurado)
- Registra los datos de la solicitud en un archivo en el directorio
dataen la raíz del proyecto en modo de desarrollo para depuración - Utiliza transacciones para la consistencia de los datos