Back to Documentation

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=`