Skip to content

Sync Workspace API (1.0.0)

Sync Workspace API

Workspace-specific services for content management, project organization, and file processing.

Workspace Services

The Workspace APIs allow access to the resources contained within Workspaces and Dataspaces. Although Workspaces and Dataspaces are distinct, Dataspaces have no compute of their own, so operations on Dataspace resources must always be performed through a chosen workspace. Workspaces are bundled, fully-managed computational services used to: - Upload, process, and manage content files - Search and retrieve content with advanced filtering - Query content using AI with library citations and web search integration - Run AI workflows on the content - Organize content into projects according to business workflows - Generate file derivatives (images, thumbnails) and extract metadata - Handle content indexing with automated categorization

Content Processing

When files are uploaded, they undergo asynchronous processing which may include: - Virus scanning and security validation - File format conversion and derivative generation (TIFF, JPEG thumbnails) - Automated metadata extraction using AI - Content categorization and indexing according to dataspace ontology Processing status can be tracked using the Workflow Execution API.

Projects vs Content Organization

  • Content: Individual files with metadata, organized by categories defined in the dataspace ontology - Projects: Business workflow containers that group disparate content items according to business rules (e.g., application packets, case files)

Authentication

All endpoints require authentication using a bearer token.

Overview
License
Languages
Servers
Mock server
https://docs.syncdocs.ai/_mock/api/workspace-openapi/
Production - Workspace Services
https://{workspaceId}.syncdocs.ai/api/
Development server
https://docs.syncdocs.ai/api/

Content

Content management operations. Handle file uploads, processing, metadata extraction, and content retrieval with advanced filtering capabilities.

Operations

Projects

Project management operations. Projects group content items according to business workflows and processes.

Operations

Workflow Executions

Workflow execution monitoring operations. Track the status and progress of AI workflow executions on content.

Operations

Batch Workflow Executions

Batch workflow execution operations. Execute workflows on multiple content items based on filters across multiple dataspaces.

Operations

Task Executions

Task execution monitoring operations. Track individual task executions within workflows and retrieve their outputs.

Operations

Task Execution Outputs

Task execution output retrieval operations. Access the results and outputs generated by completed task executions.

Operations

Registered Workflows

Registered workflow operations. Access workflows cached from sync-apis for fast lookup during workflow execution.

Operations

Query Logs

Query logging and retrieval operations. Track and analyze API operations performed on resources with detailed audit trails.

Operations

Get a single query log by ID

Request

Retrieves a specific query log record by its unique identifier. Useful for examining the details of a particular API operation that was logged.

Security
bearerAuth
Path
queryLogIdstring(uuid)(QueryLogItemParams)required

The unique UUID of the query log to retrieve

Example: 01234567-89ab-cdef-0123-456789abcdef
curl -i -X GET \
  https://docs.syncdocs.ai/_mock/api/workspace-openapi/query-logs/01234567-89ab-cdef-0123-456789abcdef \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Query log retrieved successfully

Bodyapplication/json
idstring(uuid)(QueryLogId)required

Unique query log ID

Example: "01234567-89ab-cdef-0123-456789abcdef"
operationTypestring(OperationType)required

Type of operation performed

Enum"GET""OPEN""CREATE""UPDATE""ANALYZE""GET_MANY""OPEN_MANY""CREATE_MANY""UPDATE_MANY""ANALYZE_MANY"
Example: "CREATE"
operationScopestring(OperationScope)

Scope of the operation - content or dataspace level

Enum"content""dataspace"
Example: "content"
userIdstring(UserId)required

ID of the user who performed the query

Example: "scd-dev00001"
userEmailstring(email)(UserEmail)

Email of the user who performed the query

Example: "user@syncdocs.com"
contentNamestring(ContentName)

Name of the content that was operated on

Example: "Sidewalk Permit"
contentIdstring or null(uuid)(ContentId)required

ID of the content operated on, null for LIST operations

Example: "98765432-1abc-def0-1234-56789abcdef0"
dataspaceIdstring(DataspaceId)^sds-[a-z0-9]{8}$required

Short dataspace ID with sds- prefix

Example: "sds-dev00001"
operationSourcestring(OperationSource)required

Whether the operation was explicit or implicit

Enum"explicit""implicit"
Example: "explicit"
queryobject(QueryData)required

JSONB format information to reconstruct the API call

Example: {"method":"POST","path":"/api/content/sds-dev00001","params":{"dataspaceId":"sds-dev00001"},"query":{},"body":{"categoryId":"12345678-90ab-cdef-1234-567890abcdef","metadata":{"permitType":"sidewalk","applicantName":"John Doe"},"fileFormat":"application/pdf","fileName":"sidewalk_permit_001.pdf"},"headers":{"content-type":"multipart/form-data","user-agent":"axios/1.6.0"},"timestamp":"2025-06-10T20:28:42.113Z"}
query.​property name*anyadditional property
parentIdstring or null(uuid)(ParentId)required

ID of the parent query log, used for LIST/Inferred logging type

Example: "02345678-9abc-def0-1234-56789abcdef1"
queriedAtstring(date-time)(QueriedAt)required

Timestamp of when the query was performed

Example: "2025-06-10T20:28:42.113Z"
Response
application/json
{ "id": "01234567-89ab-cdef-0123-456789abcdef", "operationType": "CREATE", "userId": "scd-dev00001", "contentId": "98765432-1abc-def0-1234-56789abcdef0", "dataspaceId": "sds-dev00001", "operationSource": "explicit", "query": { "method": "POST", "path": "/api/content/sds-dev00001", "params": {}, "query": {}, "body": {}, "headers": {}, "timestamp": "2025-06-10T20:28:42.113Z" }, "parentId": null, "queriedAt": "2025-06-10T20:28:42.113Z" }

Get paginated list of query logs with filtering

Request

Retrieves a paginated list of query log records with optional filtering. Key Features: - Cursor-based pagination with pageSize and cursor - Multiple filter options to narrow down results - Operation tracking - see all API operations performed on content - Audit trail - complete history of who did what and when Common Use Cases: - Track content operations by a specific user - Monitor operations on a particular dataspace - Audit trail for compliance and debugging - Performance analysis of API usage Filter Examples: - Get all CREATE operations: ?operationType=CREATE - Get operations by user: ?userId=scd-dev00001 - Get operations in date range: ?dateFrom=2025-06-10T00:00:00Z&dateTo=2025-06-10T23:59:59Z - Get operations on specific content: ?contentId=98765432-1abc-def0-1234-56789abcdef0

Security
bearerAuth
Query
pageSizeinteger(PageSize)[ 1 .. 100 ]

Number of items per page

Example: pageSize=25
cursorstring(Cursor)

Cursor for pagination

Example: cursor=03456789-abcd-ef01-2345-6789abcdef12
operationTypestring
Enum"GET""OPEN""CREATE""UPDATE""ANALYZE""GET_MANY""OPEN_MANY""CREATE_MANY""UPDATE_MANY""ANALYZE_MANY"
Example: operationType=CREATE
userIdstring
Example: userId=scd-dev00001
contentIdstring or null(uuid)
Example: contentId=98765432-1abc-def0-1234-56789abcdef0
dataspaceIdstring^sds-[a-z0-9]{8}$
Example: dataspaceId=sds-dev00001
operationSourcestring
Enum"explicit""implicit"
Example: operationSource=explicit
parentIdstring or null(uuid)
Example: parentId=02345678-9abc-def0-1234-56789abcdef1
dateFromstring(date-time)(DateFrom)

Filter by date range start

Example: dateFrom=2025-06-10T00:00:00Z
dateTostring(date-time)(DateTo)

Filter by date range end

Example: dateTo=2025-06-10T23:59:59Z
curl -i -X GET \
  'https://docs.syncdocs.ai/_mock/api/workspace-openapi/query-logs?pageSize=25&cursor=03456789-abcd-ef01-2345-6789abcdef12&operationType=CREATE&userId=scd-dev00001&contentId=98765432-1abc-def0-1234-56789abcdef0&dataspaceId=sds-dev00001&operationSource=explicit&parentId=02345678-9abc-def0-1234-56789abcdef1&dateFrom=2025-06-10T00%3A00%3A00Z&dateTo=2025-06-10T23%3A59%3A59Z' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Query logs retrieved successfully

Bodyapplication/json
queryLogsArray of objectsrequired

List of query log records

Example: [{"id":"01234567-89ab-cdef-0123-456789abcdef","operationType":"CREATE","userId":"scd-dev00001","contentId":"98765432-1abc-def0-1234-56789abcdef0","dataspaceId":"sds-dev00001","operationSource":"explicit","query":{"method":"POST","path":"/api/content/sds-dev00001","params":{"dataspaceId":"sds-dev00001"},"query":{},"body":{"categoryId":"12345678-90ab-cdef-1234-567890abcdef","metadata":{"permitType":"sidewalk","applicantName":"John Doe"},"fileFormat":"application/pdf","fileName":"sidewalk_permit_001.pdf"},"headers":{"content-type":"multipart/form-data","user-agent":"axios/1.6.0"},"timestamp":"2025-06-10T20:28:42.113Z"},"parentId":null,"queriedAt":"2025-06-10T20:28:42.113Z"},{"id":"02345678-9abc-def0-1234-56789abcdef1","operationType":"GET_MANY","userId":"scd-dev00001","contentId":null,"dataspaceId":"sds-dev00001","operationSource":"explicit","query":{"method":"POST","path":"/api/content/sds-dev00001/fetch","params":{"dataspaceId":"sds-dev00001"},"query":{"pageSize":50},"body":{"filters":{}},"headers":{"content-type":"application/json","user-agent":"axios/1.6.0"},"timestamp":"2025-06-10T20:28:42.428Z"},"parentId":null,"queriedAt":"2025-06-10T20:28:42.428Z"}]
queryLogs[].​idstring(uuid)(QueryLogId)required

Unique query log ID

Example: "01234567-89ab-cdef-0123-456789abcdef"
queryLogs[].​operationTypestring(OperationType)required

Type of operation performed

Enum"GET""OPEN""CREATE""UPDATE""ANALYZE""GET_MANY""OPEN_MANY""CREATE_MANY""UPDATE_MANY""ANALYZE_MANY"
Example: "CREATE"
queryLogs[].​operationScopestring(OperationScope)

Scope of the operation - content or dataspace level

Enum"content""dataspace"
Example: "content"
queryLogs[].​userIdstring(UserId)required

ID of the user who performed the query

Example: "scd-dev00001"
queryLogs[].​userEmailstring(email)(UserEmail)

Email of the user who performed the query

Example: "user@syncdocs.com"
queryLogs[].​contentNamestring(ContentName)

Name of the content that was operated on

Example: "Sidewalk Permit"
queryLogs[].​contentIdstring or null(uuid)(ContentId)required

ID of the content operated on, null for LIST operations

Example: "98765432-1abc-def0-1234-56789abcdef0"
queryLogs[].​dataspaceIdstring(DataspaceId)^sds-[a-z0-9]{8}$required

Short dataspace ID with sds- prefix

Example: "sds-dev00001"
queryLogs[].​operationSourcestring(OperationSource)required

Whether the operation was explicit or implicit

Enum"explicit""implicit"
Example: "explicit"
queryLogs[].​queryobject(QueryData)required

JSONB format information to reconstruct the API call

Example: {"method":"POST","path":"/api/content/sds-dev00001","params":{"dataspaceId":"sds-dev00001"},"query":{},"body":{"categoryId":"12345678-90ab-cdef-1234-567890abcdef","metadata":{"permitType":"sidewalk","applicantName":"John Doe"},"fileFormat":"application/pdf","fileName":"sidewalk_permit_001.pdf"},"headers":{"content-type":"multipart/form-data","user-agent":"axios/1.6.0"},"timestamp":"2025-06-10T20:28:42.113Z"}
queryLogs[].​query.​property name*anyadditional property
queryLogs[].​parentIdstring or null(uuid)(ParentId)required

ID of the parent query log, used for LIST/Inferred logging type

Example: "02345678-9abc-def0-1234-56789abcdef1"
queryLogs[].​queriedAtstring(date-time)(QueriedAt)required

Timestamp of when the query was performed

Example: "2025-06-10T20:28:42.113Z"
nextCursorstring(NextCursor)

Cursor for next page

Example: "03456789-abcd-ef01-2345-6789abcdef12"
totalCountinteger(TotalCount)required

Total number of records

Example: 54
Response
application/json
{ "queryLogs": [ {}, {} ], "nextCursor": "03456789-abcd-ef01-2345-6789abcdef12", "totalCount": 54 }

Content Upload Sessions

Content upload session management operations. Handle reliable file uploads through chunked upload sessions with progress tracking.

Operations