Ir al contenido principal

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 totalBackupedSize fue reemplazado por totalBackupSize
    • En la versión 0.7.x, el campo totalMachines fue reemplazado por totalServers
    • El campo overdueBackupsCount muestra el número de respaldos actualmente atrasados
    • El campo secondsSinceLastBackup muestra 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

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)
nota

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 encontrado
    • 500: Error interno del servidor
  • Notas:

    • En la versión 0.7.x, la clave del objeto de respuesta cambió de machine a server
    • 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é

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)
nota

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 encontrado
    • 500: Error interno del servidor
  • Notas:

    • En la versión 0.7.x, la clave del objeto de respuesta cambió de machine a server, y el campo backup_types_count fue renombrado a backup_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é

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álida
    • 409: 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 data en la raíz del proyecto en modo desarrollo para depuración
    • Usa transacciones para garantizar la consistencia de los datos