Backups & Versions
Trigger backups, browse version history, compare configuration diffs, export archives, and manage schedules.
All endpoints require Authorization: Bearer <token>.
Trigger a Backup
/api/backup/backup_org_to_file Creates a full backup of a Meraki organization. Captures organizations, networks, devices, VLANs, firewall rules, SSIDs, and switch ports. Emits success/failure notifications if configured.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| org_id required | string | Meraki organization ID |
| include_templates | boolean | Include configuration templates. Default: true |
Response (200): BackupOperationResponse
{
"backup_id": "2026-05-18_org_L_123456",
"organization_id": "L_123456",
"status": "success",
"networks_backed_up": 14,
"started_at": "2026-05-18T10:00:00Z",
"completed_at": "2026-05-18T10:00:42Z"
} curl -X POST "https://your-host/api/backup/backup_org_to_file?org_id=L_123456" \ -H "Authorization: Bearer <token>"
Streaming Backup (SSE)
/api/backup/backup_org_to_file_stream
Server-Sent Events variant. Streams real-time progress events while the backup runs, then sends the final result. Use Authorization: Bearer header; the frontend uses fetch instead of EventSource to support this.
Parameters
Same as backup_org_to_file: org_id (required), include_templates (optional).
Event stream format
data: {"event": "progress", "message": "Backing up network Office-Main", "network": "N_abc123"}
data: {"event": "progress", "message": "Backing up network Branch-East", "network": "N_def456"}
data: {"event": "complete", "backup_id": "2026-05-18_org_L_123456", "status": "success"} Backup History
/api/backup/history
Returns enriched backup history keyed by both local folder name and Azure blob name. Includes org info, storage location, and triggered-by attribution. Omit org_id to get history across all organizations.
Query parameters
| org_id | string | Filter by organization ID. Omit for all orgs. |
curl "https://your-host/api/backup/history?org_id=L_123456" \ -H "Authorization: Bearer <token>"
/api/backup/backup_metadata Returns metadata dict keyed by backup folder name. Includes triggered-by attribution enriched from operation logs for legacy rows that predate per-user attribution.
Query parameters
| org_id | string | Organization ID. Omit for all orgs. |
Backup Viewer
Browse and inspect the contents of any backup. Azure-only backups are re-hydrated on demand before the tree is returned.
/api/backups/{backup_id}/tree Returns the file tree structure for the backup. Triggers Azure re-hydration if the backup is cloud-only.
/api/backups/{backup_id}/file Returns the JSON content of a specific file inside the backup.
| path required | string | Relative path to the file within the backup (query param) |
/api/backups/{backup_id}/file Update the content of a file in the backup. Writes an edit-history entry. Request body: BackupFileUpdateRequest.
/api/backups/{backup_id}/file/edit-history Returns the edit history for a specific file. Query param: path (required).
/api/backups/{backup_id}/edit-log Returns a log of all edits made to files in this backup. Query params: limit (1–200, default 50).
Search
/api/backups/{backup_id}/search Full-text search across all files in the backup. Returns matching file paths and line-level hits.
| q required | string | Search term, 1–200 characters |
| max_results | integer | Max hits to return. Range: 1–200, default: 50 |
curl "https://your-host/api/backups/2026-05-18_org_L_123456/search?q=192.168.1.0&max_results=20" \ -H "Authorization: Bearer <token>"
Versions & Diffs
/versions/backups/{backup_id}/versions Lists all per-feature version snapshots for a backup.
| config_type | string | Filter by config type (e.g. vlans, firewall_rules) |
| changes_only | boolean | Return only versions that contain changes. Default: false |
/versions/compare High-level diff between two backups. Returns a summary of added, removed, and changed config sections.
| backup_id_1 required | string | The older backup ID |
| backup_id_2 required | string | The newer backup ID |
/versions/compare/detailed Field-level diff for a specific config type between two backups.
| backup_id_1 required | string | The older backup |
| backup_id_2 required | string | The newer backup |
| config_type required | string | Config section to diff (e.g. vlans) |
/versions/organizations/{organization_id}/config-history Returns the change history for a specific config type across all backups for an org.
| config_type required | string | The config section to trace |
| limit | integer | Max entries to return. Range: 1–50, default: 10 |
/versions/config-types Lists all config type keys available for diff and history queries.
Export
All export endpoints return a ZIP archive. Pass filename to override the default download name.
/api/backups/{backup_id}/export Export a single backup as a ZIP.
/api/backups/export/batch Export multiple backups. Pass comma-separated backup IDs in backup_ids (required).
/api/backups/export/organization/{org_id} Export all backups for one organization.
/api/backups/export/all Export all backups across all organizations.
Schedules
Automate backups with cron expressions, fixed intervals, or change-triggered runs.
/schedules/schedules List all schedules. Filter by org or active-only.
| organization_id | string | Filter by organization |
| enabled_only | boolean | Return only active schedules. Default: false |
/schedules/schedules Create a schedule. Body: BackupScheduleCreate.
{
"organization_id": "L_123456",
"cron_expression": "0 2 * * *",
"include_templates": true,
"enabled": true
} /schedules/schedules/{schedule_id} Get a single schedule by ID.
/schedules/schedules/{schedule_id} Update schedule settings. Body: BackupScheduleUpdate.
/schedules/schedules/{schedule_id} Delete a schedule.
/schedules/schedules/{schedule_id}/toggle Enable or disable a schedule. Query: enabled (boolean, required).
/schedules/schedules/{schedule_id}/run-now Trigger the schedule immediately, outside its regular cadence.
/schedules/schedules/validate-cron Validate a cron expression before saving. Query: cron_expression (required).
/schedules/scheduler/status Returns the current status of the scheduler service.
Delete a Backup
/api/backups/{backup_id}
Deletes a backup. By default only removes the local copy; set delete_azure=true to also remove the corresponding Azure blob.
| delete_azure | boolean | Also delete the Azure blob copy. Default: false |
This action is irreversible. Ensure you have an offsite copy before deleting with delete_azure=true.