API Reference
REST API endpoints exposed by the DoubleSync backoffice controller.
Authentication
All API endpoints require Umbraco backoffice authentication. Requests must include a valid Bearer token obtained through the Umbraco auth flow. The DoubleSync frontend handles this automatically via the UMB_AUTH_CONTEXT.
Base URL
All endpoints are prefixed with:
/umbraco/doublesync/api/v1/
Snapshot Endpoints
POST /snapshot/export — Create a snapshot of the current environment
Body: `{ categories: string[] }` (schema, content, media, people)
Returns: `{ operationId: string }`
GET /snapshot/status/{operationId} — Poll export/import progress
Returns: `{ status, progress, message }`
Sync Endpoints
POST /sync/compare — Compare two snapshots
Body: `{ sourceEnv, targetEnv, categories, cultures? }`
Returns: `{ operationId: string }`
POST /sync/push — Push selected items to target
Body: `{ operationId, selectedItems, mergeDecisions? }`
POST /sync/pull — Pull selected items from source
Body: `{ operationId, selectedItems, mergeDecisions? }`
Node Sync Endpoints
POST /node/push — Push a single content node with dependencies
Body: `{ nodeId: guid, targetEnv, includeDependencies }`
POST /node/pull — Pull a single content node
Body: `{ nodeId: guid, sourceEnv, includeDependencies }`
SyncPack Endpoints
POST /syncpack/build — Create a sync bundle
Body: `{ name, description, items[], includeMedia }`
Returns: ZIP file download
POST /syncpack/import — Import a sync bundle
Body: multipart/form-data with ZIP file
Returns: `{ operationId: string }`
POST /syncpack/preview — Preview bundle contents without applying
Body: multipart/form-data with ZIP file
Returns: `{ items[], conflicts[] }`
Settings Endpoints
GET /settings — Get current DoubleSync configuration
POST /settings/permissions — Update RBAC permissions
Body: `{ rules: PermissionRule[] }`
GET /audit — Get audit trail entries
Query: `?page=1&pageSize=20&user=&action=`