Skip to content

SyncDocs Admin API (1.0.0)

SyncDocs Admin API

Complete enterprise content management system (ECM) core APIs for accessing ECM functionality programmatically.

Architecture Overview

When you start with Sync, you are assigned an Account with a unique ID. Each account can have:

  • Dataspaces: Fully isolated data segments within an account, similar to separate databases. Each dataspace is used to isolate different business use cases within a single enterprise. - Workspaces: Virtual computing resources for storing, retrieving and manipulating content (managed separately via Workspace APIs) - Libraries: External content sources that can be scraped and indexed for use as citation sources in AI queries - Users and Agents: Can interact with Dataspaces/Workspaces with assigned roles - Ontologies: Define how content is organized within dataspaces

Dataspace Resources

Each Dataspace contains: - A unique Ontology that defines the business-purpose categorization and metadata structure - Categories: Represent the grouping or classification of content (taxonomy) - Metadata Queries: Specific metadata fields that can be associated with content and bound to categories - A collection of Content and Projects (managed via Workspace APIs)

Metadata Query Binding

Metadata Queries can be bound to Categories to indicate required attributes for content in that category. When binding, you can specify: - Whether the attribute is required/mandatory for every Content item in that category - Whether the attribute should be part of the Unique Index (content with same unique index values are considered versions of the same content)

Authentication

All endpoints require authentication using a bearer token and a valid account ID.

Overview
License
Languages
Servers
Mock server
https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/
Production - Sync Cloud Admin Services
https://cloud.syncdocs.ai/api/
Development server
https://docs.syncdocs.ai/api/

Accounts

Account management operations. Each account represents a unique enterprise customer with isolated resources.

Operations

Dataspaces

Dataspace management operations. Dataspaces are fully isolated data segments within an account, similar to separate databases for different business use cases.

Operations

Workspaces

Workspace management operations. Workspaces are virtual computing resources that provide stateless computational services for content processing.

Operations

Ontologies

Ontology management operations. Ontologies define the categorization, indexing and metadata tagging structure for content within dataspaces.

Operations

Categories

Category management operations. Categories represent the grouping or classification of content within a dataspace (taxonomy).

Operations

Metadata Queries

Metadata key management operations. Metadata keys define specific metadata fields that can be associated with content and bound to categories.

Operations

Users

User management operations. Users can interact with dataspaces and workspaces with assigned roles and permissions.

Operations

Libraries

Library management operations. Libraries are external content sources that can be scraped and indexed for use as citation sources in AI queries.

Operations

Library Bindings

Library binding operations. Bind libraries to workspaces to enable access to library content for AI queries.

Operations

Agents

Agent management operations. Agents are automated entities that can perform operations on behalf of users.

Operations

Workflows

Workflow management operations. Workflows define automated processes for content handling and business logic.

Operations

Create a new workflow for an account

Request

Creates a new workflow with specified name, description, and task DAG for the account

Security
bearerAuth
Path
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: scd-k2j8n4m1
Bodyapplication/json
namestringnon-emptyrequired

Name of the workflow

Example: "Document Processing Pipeline"
descriptionstringnon-emptyrequired

Description of the workflow

Example: "A workflow that processes incoming documents through categorization and metadata extraction"
taskDagobjectrequired

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
taskDag.​property name*Array of strings(uuid)additional property

Array of task IDs this task depends on

curl -i -X POST \
  https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/accounts/scd-k2j8n4m1/workflows \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Document Processing Pipeline",
    "description": "A workflow that processes incoming documents through categorization and metadata extraction",
    "taskDag": {
      "550e8400-e29b-41d4-a716-446655440001": [],
      "550e8400-e29b-41d4-a716-446655440002": [
        "550e8400-e29b-41d4-a716-446655440001"
      ],
      "550e8400-e29b-41d4-a716-446655440003": [
        "550e8400-e29b-41d4-a716-446655440001"
      ],
      "550e8400-e29b-41d4-a716-446655440004": [
        "550e8400-e29b-41d4-a716-446655440002",
        "550e8400-e29b-41d4-a716-446655440003"
      ]
    }
  }'

Responses

Workflow created successfully

Bodyapplication/json
idstring(uuid)required

The UUID of the workflow

Example: "550e8400-e29b-41d4-a716-446655440000"
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: "scd-k2j8n4m1"
namestringrequired

Name of the workflow

Example: "Document Processing Pipeline"
descriptionstringrequired

Description of the workflow

Example: "A workflow that processes incoming documents through categorization and metadata extraction"
taskDagobjectrequired

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
taskDag.​property name*Array of strings(uuid)additional property

Array of task IDs this task depends on

createdAtstring(date-time)required
Example: "2024-01-15T10:30:00Z"
lastUpdatedAtstring or null(date-time)required
Example: "2024-01-15T14:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "accountId": "scd-k2j8n4m1", "name": "Document Processing Pipeline", "description": "A workflow that processes incoming documents through categorization and metadata extraction", "taskDag": { "550e8400-e29b-41d4-a716-446655440001": [], "550e8400-e29b-41d4-a716-446655440002": [ … ], "550e8400-e29b-41d4-a716-446655440003": [ … ], "550e8400-e29b-41d4-a716-446655440004": [ … ] }, "createdAt": "2024-01-15T10:30:00Z", "lastUpdatedAt": "2024-01-15T14:30:00Z" }

List all workflows for an account

Request

Retrieves a list of all workflows associated with the specified account

Security
bearerAuth
Path
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: scd-k2j8n4m1
curl -i -X GET \
  https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/accounts/scd-k2j8n4m1/workflows \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

List of workflows retrieved successfully

Bodyapplication/jsonArray [
idstring(uuid)required

The UUID of the workflow

Example: "550e8400-e29b-41d4-a716-446655440000"
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: "scd-k2j8n4m1"
namestringrequired

Name of the workflow

Example: "Document Processing Pipeline"
descriptionstringrequired

Description of the workflow

Example: "A workflow that processes incoming documents through categorization and metadata extraction"
taskDagobjectrequired

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
taskDag.​property name*Array of strings(uuid)additional property

Array of task IDs this task depends on

createdAtstring(date-time)required
Example: "2024-01-15T10:30:00Z"
lastUpdatedAtstring or null(date-time)required
Example: "2024-01-15T14:30:00Z"
]
Response
application/json
[ { "id": "550e8400-e29b-41d4-a716-446655440000", "accountId": "scd-k2j8n4m1", "name": "Document Processing Pipeline", "description": "A workflow that processes incoming documents through categorization and metadata extraction", "taskDag": { … }, "createdAt": "2024-01-15T10:30:00Z", "lastUpdatedAt": "2024-01-15T14:30:00Z" } ]

Get a specific workflow by ID

Request

Retrieves detailed information about a specific workflow including its task DAG

Security
bearerAuth
Path
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: scd-k2j8n4m1
workflowIdstring(uuid)required

The UUID of the workflow

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X GET \
  https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/accounts/scd-k2j8n4m1/workflows/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Workflow retrieved successfully

Bodyapplication/json
idstring(uuid)required

The UUID of the workflow

Example: "550e8400-e29b-41d4-a716-446655440000"
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: "scd-k2j8n4m1"
namestringrequired

Name of the workflow

Example: "Document Processing Pipeline"
descriptionstringrequired

Description of the workflow

Example: "A workflow that processes incoming documents through categorization and metadata extraction"
taskDagobjectrequired

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
taskDag.​property name*Array of strings(uuid)additional property

Array of task IDs this task depends on

createdAtstring(date-time)required
Example: "2024-01-15T10:30:00Z"
lastUpdatedAtstring or null(date-time)required
Example: "2024-01-15T14:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "accountId": "scd-k2j8n4m1", "name": "Document Processing Pipeline", "description": "A workflow that processes incoming documents through categorization and metadata extraction", "taskDag": { "550e8400-e29b-41d4-a716-446655440001": [], "550e8400-e29b-41d4-a716-446655440002": [ … ], "550e8400-e29b-41d4-a716-446655440003": [ … ], "550e8400-e29b-41d4-a716-446655440004": [ … ] }, "createdAt": "2024-01-15T10:30:00Z", "lastUpdatedAt": "2024-01-15T14:30:00Z" }

Update an existing workflow

Request

Updates the properties of an existing workflow including name, description, and task DAG

Security
bearerAuth
Path
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: scd-k2j8n4m1
workflowIdstring(uuid)required

The UUID of the workflow

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/json
namestringnon-empty

Name of the workflow

Example: "Updated Document Processing Pipeline"
descriptionstringnon-empty

Description of the workflow

Example: "Updated workflow description for document processing"
taskDagobject

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
curl -i -X PUT \
  https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/accounts/scd-k2j8n4m1/workflows/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Updated Document Processing Pipeline",
    "description": "Updated workflow description for document processing",
    "taskDag": {
      "550e8400-e29b-41d4-a716-446655440001": [],
      "550e8400-e29b-41d4-a716-446655440002": [
        "550e8400-e29b-41d4-a716-446655440001"
      ],
      "550e8400-e29b-41d4-a716-446655440003": [
        "550e8400-e29b-41d4-a716-446655440001"
      ],
      "550e8400-e29b-41d4-a716-446655440004": [
        "550e8400-e29b-41d4-a716-446655440002",
        "550e8400-e29b-41d4-a716-446655440003"
      ]
    }
  }'

Responses

Workflow updated successfully

Bodyapplication/json
idstring(uuid)required

The UUID of the workflow

Example: "550e8400-e29b-41d4-a716-446655440000"
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: "scd-k2j8n4m1"
namestringrequired

Name of the workflow

Example: "Document Processing Pipeline"
descriptionstringrequired

Description of the workflow

Example: "A workflow that processes incoming documents through categorization and metadata extraction"
taskDagobjectrequired

Task dependency graph represented as an adjacency list, where every key is a taskId and the value is an array of taskIds that must be completed before the key can be run

Example: {"550e8400-e29b-41d4-a716-446655440001":[],"550e8400-e29b-41d4-a716-446655440002":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440003":["550e8400-e29b-41d4-a716-446655440001"],"550e8400-e29b-41d4-a716-446655440004":["550e8400-e29b-41d4-a716-446655440002","550e8400-e29b-41d4-a716-446655440003"]}
taskDag.​property name*Array of strings(uuid)additional property

Array of task IDs this task depends on

createdAtstring(date-time)required
Example: "2024-01-15T10:30:00Z"
lastUpdatedAtstring or null(date-time)required
Example: "2024-01-15T14:30:00Z"
Response
application/json
{ "id": "550e8400-e29b-41d4-a716-446655440000", "accountId": "scd-k2j8n4m1", "name": "Document Processing Pipeline", "description": "A workflow that processes incoming documents through categorization and metadata extraction", "taskDag": { "550e8400-e29b-41d4-a716-446655440001": [], "550e8400-e29b-41d4-a716-446655440002": [ … ], "550e8400-e29b-41d4-a716-446655440003": [ … ], "550e8400-e29b-41d4-a716-446655440004": [ … ] }, "createdAt": "2024-01-15T10:30:00Z", "lastUpdatedAt": "2024-01-15T14:30:00Z" }

Delete a workflow

Request

Permanently deletes a workflow from the account

Security
bearerAuth
Path
accountIdstring^scd-[a-z0-9]{8}$required

Short account ID with scd- prefix

Example: scd-k2j8n4m1
workflowIdstring(uuid)required

The UUID of the workflow

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X DELETE \
  https://docs.syncdocs.ai/_mock/api/sync-cloud-openapi/accounts/scd-k2j8n4m1/workflows/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Workflow deleted successfully

Task Definitions

Task definition management operations

Operations

Helpers

Helper utility operations

Operations