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

Content Upload Sessions

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

Operations

Create a new content upload session

Request

Initializes a new upload session for reliable file uploads. Features: - Supports files up to 10GB - Optimized for large file transfers - Session expiration and cleanup - Progress tracking Process: 1. Create upload session with file metadata 2. Upload file content using the session ID 3. System automatically processes the upload when complete 4. Returns content ID when finished Upload Optimization: The system automatically optimizes the upload process for reliable transfer of large files with automatic retry and error handling.

Security
bearerAuth
Bodyapplication/json
fileNamestring[ 1 .. 500 ] charactersrequired

Name of the file

Example: "large-document.pdf"
fileSizeinteger>= 1required

Size of the file in bytes

Example: 104857600
fileFormatstring[ 1 .. 200 ] charactersrequired

MIME type of the file

Example: "application/pdf"
dataspaceIdstring^sds-[a-z0-9]{8}$required

Target dataspace ID

Example: "sds-abc12345"
curl -i -X POST \
  https://docs.syncdocs.ai/_mock/api/workspace-openapi/content-upload-sessions \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "fileName": "large-document.pdf",
    "fileSize": 104857600,
    "fileFormat": "application/pdf",
    "dataspaceId": "sds-abc12345"
  }'

Responses

Upload session created successfully

Bodyapplication/json
idstring(uuid)required

Unique upload session ID

Example: "123e4567-e89b-12d3-a456-426614174000"
fileNamestringrequired

Name of the file being uploaded

Example: "large-document.pdf"
fileSizenumberrequired

Size of the file in bytes

Example: 104857600
fileFormatstringrequired

MIME type of the file

Example: "application/pdf"
chunkSizenumberrequired

Size of each chunk in bytes

Example: 1048576
totalChunksnumberrequired

Total number of chunks for this file

Example: 100
uploadedChunksnumberrequired

Number of chunks uploaded so far

Example: 45
statusstringrequired

Current status of the upload session

Enum"pending""uploading""assembling""completed""failed""expired"
Example: "uploading"
contentIdstring(uuid)

Content ID when upload is completed

Example: "987e6543-e21b-43d2-b654-321098765432"
expiresAtstring(date-time)required

When this upload session expires

Example: "2024-01-16T10:30:00Z"
createdAtstring(date-time)required

When this upload session was created

Example: "2024-01-15T10:30:00Z"
updatedAtstring(date-time)required

When this upload session was last updated

Example: "2024-01-15T11:15:00Z"
Response
application/json
{ "id": "123e4567-e89b-12d3-a456-426614174000", "fileName": "large-document.pdf", "fileSize": 104857600, "fileFormat": "application/pdf", "chunkSize": 1048576, "totalChunks": 100, "uploadedChunks": 45, "status": "uploading", "contentId": "987e6543-e21b-43d2-b654-321098765432", "expiresAt": "2024-01-16T10:30:00Z", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T11:15:00Z" }

Upload file content

Request

Uploads file content for an existing upload session. Upload Process: - Upload content reliably with automatic error handling - System tracks progress automatically - Optional content integrity validation via checksum - Processes file when upload is complete - Creates content record upon completion Upload Flow: 1. Upload content using multipart/form-data 2. System processes content reliably on server 3. When upload is complete, assembles into complete file 4. Stores complete file in secure storage 5. Creates content record in database 6. Cleans up temporary files Error Handling: - Invalid content is rejected with detailed error messages - Failed processing triggers automatic cleanup - Session expiration prevents orphaned files

Security
bearerAuth
Path
sessionIdstring(uuid)required

Upload session ID

Example: 123e4567-e89b-12d3-a456-426614174000
Bodymultipart/form-data
chunkstring(binary)required

Binary content data (max 900KB)

chunkNumberinteger>= 1required

Content sequence number (1-based)

Example: 1
checksumstring

Optional SHA-256 checksum for integrity verification

Example: "a1b2c3d4e5f6789..."
curl -i -X POST \
  https://docs.syncdocs.ai/_mock/api/workspace-openapi/content-upload-sessions/123e4567-e89b-12d3-a456-426614174000/chunks \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: multipart/form-data' \
  -F chunk=string \
  -F chunkNumber=1 \
  -F checksum=a1b2c3d4e5f6789...

Responses

Content uploaded successfully

Bodyapplication/json
sessionIdstring(uuid)required

Upload session ID

Example: "123e4567-e89b-12d3-a456-426614174000"
chunkNumbernumberrequired

The chunk number that was uploaded

Example: 45
uploadedChunksnumberrequired

Total number of chunks uploaded so far

Example: 45
totalChunksnumberrequired

Total number of chunks for this file

Example: 100
statusstringrequired

Current status of the upload session

Example: "uploading"
isCompletebooleanrequired

Whether all chunks have been uploaded

Example: false
contentIdstring(uuid)

Content ID when upload is completed

Example: "987e6543-e21b-43d2-b654-321098765432"
Response
application/json
{ "sessionId": "123e4567-e89b-12d3-a456-426614174000", "chunkNumber": 45, "uploadedChunks": 45, "totalChunks": 100, "status": "uploading", "isComplete": false, "contentId": "987e6543-e21b-43d2-b654-321098765432" }

Get upload session status

Request

Retrieves the current status and progress of an upload session. Session Statuses: - pending: Session created, awaiting content - uploading: Receiving content - assembling: Upload complete, processing file - completed: Upload successful, content created - failed: Upload failed, session invalid - expired: Session expired, cleanup scheduled Progress Tracking: Use this endpoint to monitor upload progress by checking: - uploadedChunks vs totalChunks for progress percentage - status for current phase - contentId when upload completes

Security
bearerAuth
Path
sessionIdstring(uuid)required

Upload session ID

Example: 123e4567-e89b-12d3-a456-426614174000
curl -i -X GET \
  https://docs.syncdocs.ai/_mock/api/workspace-openapi/content-upload-sessions/123e4567-e89b-12d3-a456-426614174000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Upload session details

Bodyapplication/json
idstring(uuid)required

Unique upload session ID

Example: "123e4567-e89b-12d3-a456-426614174000"
fileNamestringrequired

Name of the file being uploaded

Example: "large-document.pdf"
fileSizenumberrequired

Size of the file in bytes

Example: 104857600
fileFormatstringrequired

MIME type of the file

Example: "application/pdf"
chunkSizenumberrequired

Size of each chunk in bytes

Example: 1048576
totalChunksnumberrequired

Total number of chunks for this file

Example: 100
uploadedChunksnumberrequired

Number of chunks uploaded so far

Example: 45
statusstringrequired

Current status of the upload session

Enum"pending""uploading""assembling""completed""failed""expired"
Example: "uploading"
contentIdstring(uuid)

Content ID when upload is completed

Example: "987e6543-e21b-43d2-b654-321098765432"
expiresAtstring(date-time)required

When this upload session expires

Example: "2024-01-16T10:30:00Z"
createdAtstring(date-time)required

When this upload session was created

Example: "2024-01-15T10:30:00Z"
updatedAtstring(date-time)required

When this upload session was last updated

Example: "2024-01-15T11:15:00Z"
Response
application/json
{ "id": "123e4567-e89b-12d3-a456-426614174000", "fileName": "large-document.pdf", "fileSize": 104857600, "fileFormat": "application/pdf", "chunkSize": 1048576, "totalChunks": 100, "uploadedChunks": 45, "status": "uploading", "contentId": "987e6543-e21b-43d2-b654-321098765432", "expiresAt": "2024-01-16T10:30:00Z", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T11:15:00Z" }