Skip to content

Workspace sync

Fork workspace

Create a child workspace with undeployed drafts of the source's deployed workflows. Requires source workspace Admin access and permission to create a workspace in its organization. Billing-enabled deployments require Enterprise. Billing-disabled deployments require forking to be enabled by deployment feature configuration, such as `FORKING_ENABLED`. First preview the same name and copy choices, then send the returned fingerprint and a stable request ID. The example fingerprint is illustrative. Identical retries return the same committed operation; changed inputs with that ID return `409`. Poll Get workspace operation until selected resource copies finish. Workspace API keys return `403`; use a personal API key or scoped OAuth token. OAuth scope: `api:write`.

POST/api/v2/workspaces/{workspaceId}/fork

Create a child workspace with undeployed drafts of the source's deployed workflows. Requires source workspace Admin access and permission to create a workspace in its organization. Billing-enabled deployments require Enterprise. Billing-disabled deployments require forking to be enabled by deployment feature configuration, such as FORKING_ENABLED.

First preview the same name and copy choices, then send the returned fingerprint and a stable request ID. The example fingerprint is illustrative. Identical retries return the same committed operation; changed inputs with that ID return 409. Poll Get workspace operation until selected resource copies finish. Workspace API keys return 403; use a personal API key or scoped OAuth token.

OAuth scope: api:write.

Authentication

Send a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.

Send X-API-Key in the request header.

Alternatively

Send a Sim OAuth access token in Authorization: Bearer. See OAuth authentication and scopes.

Authorization: Bearer YOUR_ACCESS_TOKEN

Required scopes: api:write

OAuth flows
json
{
  "authorizationCode": {
    "authorizationUrl": "https://www.sim.ai/api/auth/oauth2/authorize",
    "tokenUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "refreshUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "scopes": {
      "api:read": "Read your workspaces, workflows, files, tables, and logs",
      "api:write": "Read, create, change, run, and delete resources in your workspaces",
      "offline_access": "Stay signed in without asking again"
    }
  }
}

OAuth scope: api:write.

Path parameters

workspaceIdstringRequired

Explicit current workspace scope.

minLength
1
maxLength
128

Request body

Required

Child name and copy choices, with the actual preview fingerprint and a stable request ID.

object

Child name and copy choices, with the actual preview fingerprint and a stable request ID.

4 fields
namestring

Display name of the workflow or workspace.

minLength
1
maxLength
100
copyobject

Explicit resource selections to copy into the new fork; omitted resource kinds are not copied.

7 fields
filesarray

Workspace file IDs to copy.

maxItems
2000
Schema details
Array itemstring
minLength
1
tablesarray

Source table identifiers whose schemas and rows are copied.

maxItems
2000
Schema details
Array itemstring
minLength
1
knowledgeBasesarray

Source knowledge base identifiers whose documents and content are copied.

maxItems
2000
Schema details
Array itemstring
minLength
1
customToolsarray

Source custom tool identifiers to copy.

maxItems
2000
Schema details
Array itemstring
minLength
1
skillsarray

Source skill identifiers to copy.

maxItems
2000
Schema details
Array itemstring
minLength
1
mcpServersarray

External MCP server identifiers to copy; OAuth connections require authorization in the destination.

maxItems
2000
Schema details
Array itemstring
minLength
1
workflowMcpServersarray

Workflow-publishing MCP server identifiers to copy as empty configuration shells.

maxItems
2000
Schema details
Array itemstring
minLength
1

Additional properties are not allowed.

requestIdstringRequired

Stable client request ID. Reuse it with identical inputs after an uncertain response; changed inputs return 409. A new ID can apply another operation.

minLength
1
maxLength
128
previewFingerprintstringRequired

Fingerprint returned by a preview with the same choices. A changed plan returns 409; preview again. The example hash is illustrative; use the actual preview value.

pattern
^[a-f0-9]{64}$

Additional properties are not allowed.

Request example 1

json
{
  "name": "Support sandbox",
  "requestId": "fork-support-2026-10-13",
  "previewFingerprint": "c7d158e8cbc5137a2d0a4fc37ddaeb51a3b9757485679a6ad82a7de3fdac4e3a"
}

Responses

200

Committed fork receipt and resource-copy progress.

object

Committed fork receipt and resource-copy progress.

1 field
dataobjectRequired

Response data.

14 fields
operationIdstringRequired

Durable operation identifier to use for polling.

minLength
1
maxLength
256
requestIdstringRequired

Client request ID used to commit this operation. Reuse identical mutation inputs with this ID after an uncertain response.

minLength
1
maxLength
128
workspaceIdstringRequired

Explicit current workspace scope.

minLength
1
maxLength
128
kindstringRequired

Type of committed workspace operation.

enum
["workflow_import","workspace_fork","workspace_push","workspace_pull"]
appliedbooleanRequired

The business transaction committed, including when follow-up work fails.

const
true
statusstringRequired

Operation status; failed follow-up work does not undo the committed transaction.

enum
["processing","completed","completed_with_warnings","requires_configuration","failed"]
resourceIdsarrayRequired

Identifiers of resources created or changed by the committed operation.

maxItems
5000
Schema details
Array itemstring
minLength
1
maxLength
256
issuesarrayRequired

Structured warnings, missing configuration, and follow-up failures.

maxItems
2000
Schema details
Array itemobject
5 fields
codestringRequired

Stable machine-readable issue code.

minLength
1
maxLength
128
messagestringRequired

Human-readable explanation of the issue.

maxLength
2048
workflowIdstring

Workflow affected by this issue or deployment attempt.

maxLength
256
blockIdstring

Source block identifier before graph ID regeneration.

maxLength
256
subBlockKeystring

Registered source field key, including the tool index for nested Agent fields.

maxLength
256

Additional properties are not allowed.

idMapobject

Source graph identifiers mapped to the imported identifiers.

Schema details
Additional propertiesstring
maxLength
256
deploymentOperationIdsarray

Exact deployment attempts admitted by the workspace operation.

maxItems
1000
Schema details
Array itemstring
maxLength
256
deploymentsarray

Readiness of the exact admitted deployment attempts.

maxItems
1000
Schema details
Array itemobject
6 fields
operationIdstringRequired

Durable operation identifier to use for polling.

maxLength
256
workflowIdstringRequired

Workflow affected by this issue or deployment attempt.

maxLength
256
versionintegerRequired

Deployment version number for this admitted attempt.

minimum
1
maximum
9007199254740991
statusstringRequired

Status of this exact admitted deployment attempt.

enum
["preparing","activating","active","failed","superseded"]
readybooleanRequired

Whether this exact deployment attempt is active and all required components are ready.

pendingComponentsarrayRequired

Deployment components that have not finished becoming ready.

maxItems
32
Schema details
Array itemstring
maxLength
128

Additional properties are not allowed.

triggerUrlChangesarray

Public trigger paths changed by this sync, with the affected workflow names.

maxItems
1000
Schema details
Array itemobject
2 fields
workflowNamestringRequired

Name of the workflow whose public trigger path stops serving.

maxLength
1024
pathstringRequired

Public trigger path that stops serving after this sync.

maxLength
4096

Additional properties are not allowed.

backgroundWorkIdstring

Workspace activity identifier for resource-copy progress.

maxLength
256
copyProgressobject

Completion status and counts for explicitly selected resource copies.

3 fields
statusstringRequired

Background resource-copy status.

enum
["pending","completed","failed"]
copiedintegerRequired

Number of resources copied successfully.

minimum
0
maximum
9007199254740991
failedintegerRequired

Number of resources that failed to copy.

minimum
0
maximum
9007199254740991

Additional properties are not allowed.

Additional properties are not allowed.

Additional properties are not allowed.

Response example 1

json
{
  "data": {
    "operationId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
    "requestId": "fork-support-2026-10-13",
    "workspaceId": "9f4c2a10-3b7e-4d58-8f6a-2c1d0e5b7a94",
    "kind": "workspace_fork",
    "applied": true,
    "status": "processing",
    "resourceIds": [
      "destination_workflow_id"
    ],
    "issues": []
  }
}
Was this helpful?
Suggest an edit