AI Data Platform External API (1.0.0)

Download OpenAPI specification:

External API for the AI Data Platform endpoints.

Upload

Get signed urls for upload

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

query Parameters
count
integer [ 1 .. 10 ]
Default: 1

Number of signed urls to generate. Content-Type header is mandatory when uploading to the signed urls.

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Download

Get signed urls for download

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

Request Body schema: application/json
paths
required
Array of strings [ 1 .. 1000 ] items

Responses

Request samples

Content type
application/json
{
  • "paths": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Asset

Create an asset in a space

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

Request Body schema: application/json
datasetId
required
integer or null <int64> >= 0

Identifier of the dataset to which the asset will belong.

path
required
string

Path of the asset to be uploaded.

name
required
string

Name of the asset to be uploaded.

Array of objects (CreateSupportingFile) <= 20 items

Responses

Request samples

Content type
application/json
{
  • "datasetId": 0,
  • "path": "string",
  • "name": "string",
  • "supportingFiles": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "datasetId": 0,
  • "spaceId": "a330a273-e64a-4183-aedb-f3152797a9a5",
  • "url": "string",
  • "name": "string",
  • "mimeType": "string",
  • "supportingFiles": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z"
}

Start a bulk CSV asset import (creates assets and work items)

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

Request Body schema: multipart/form-data
required
file
required
string <binary>

CSV file to import. See documentation for column format.

name
string

Optional human-readable name for this import job.

config
string

Optional JSON configuration payload for structured import mapping.

datasetId
string

Optional target dataset ID. When set, every imported asset is created under this dataset regardless of any per-row dataset_id column in the CSV or dataset mappings in the structured-import config payload. Returns 400 if the dataset does not exist in the space.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "status": "PENDING",
  • "result": {
    },
  • "csvPath": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "downloadUrl": "string",
  • "error": "string"
}

Get the status and result of an asset import job

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

importJobID
required
string

Unique identifier for the asset import job.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "status": "PENDING",
  • "result": {
    },
  • "csvPath": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "downloadUrl": "string",
  • "error": "string"
}

Batches

Create a new batch in a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

query Parameters
limit
integer [ 1 .. 100 ]
Default: 20

Max number of items to return

cursor
string

Cursor for pagination

page
string (KeysetPaginationDirection)
Enum: "NEXT" "PREV"

Direction to paginate

Request Body schema: application/json
required
name
required
string non-empty

Name of the batch (unique within project)

active
boolean

Optional activation state override for the created batch

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "name": "string",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "metadata": { },
  • "priority": 0,
  • "active": true
}

List batches in a project with summary stats

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

query Parameters
limit
integer [ 1 .. 100 ]
Default: 20

Max number of items to return

cursor
string

Cursor for pagination

page
string (KeysetPaginationDirection)
Enum: "NEXT" "PREV"

Direction to paginate

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "meta": {
    }
}

Get batch prioritization configuration for a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Upsert batch prioritization configuration for a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

Request Body schema: application/json
required
required
Array of objects (BatchPriorityUpdate)

Batch priority values to save atomically

Responses

Request samples

Content type
application/json
{
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Upsert activation state for batches in a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

Request Body schema: application/json
required
active_ids
Array of integers <int64> [ items <int64 > ]

Batch IDs to mark active

inactive_ids
Array of integers <int64> [ items <int64 > ]

Batch IDs to mark inactive

Responses

Request samples

Content type
application/json
{
  • "active_ids": [
    ],
  • "inactive_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Update a batch (name only)

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

batchID
required
integer <int64>
Request Body schema: application/json
required
name
string non-empty

New name for the batch (unique within project)

metadata
object

Batch metadata

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "name": "string",
  • "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "metadata": { },
  • "priority": 0,
  • "active": true
}

Exports

List exports for a space

Returns all exports for the given space, ordered by creation date (most recent first).

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

query Parameters
cursor
string

Cursor for pagination

page
string (KeysetPaginationDirection)
Enum: "NEXT" "PREV"

Direction to paginate

limit
integer [ 1 .. 100 ]
Default: 20

Max number of items to return

sortBy
string
Default: "createdAt"

Column to sort by

sortOrder
string (SortOrder)
Enum: "ASC" "DESC"

Sort order (asc or desc)

format
string (ExportFormat)
Enum: "COCO_JSON" "JSON" "CSV"

Filter by export format (e.g., COCO_JSON, JSON, CSV)

Responses

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "items": [
    ]
}

Create an export

Starts an async export as a zip file. Supports COCO_JSON (annotation data, the default), or CSV/JSON with a selectable content: ANNOTATION (default) for annotation output, or ASSET_METADATA for each work item's related asset ID and structured metadata. Only one active export per space is allowed; returns 409 if an export is already running.

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

Request Body schema: application/json
required
name
required
string [ 1 .. 255 ] characters

Display name for this export

format
string (ExportFormat)
Enum: "COCO_JSON" "JSON" "CSV"

Format of the exported data

content
string (ExportContent)
Default: "ANNOTATION"
Enum: "ANNOTATION" "ASSET_METADATA"

Content to include in the export. ASSET_METADATA is only supported with the CSV and JSON formats (not COCO_JSON).

projectIds
Array of strings <uuid> [ 1 .. 50 ] items [ items <uuid > ]

Optional list of project IDs to include in the export (1–50). When omitted, all projects in the space are exported.

batchIds
Array of integers <int64> <= 100 items [ items <int64 > ]

Optional batch IDs to filter work items (applied per-project). When omitted, all work items in the selected projects are exported.

createdAtFrom
string <date-time>

Include work items created on or after this timestamp (ISO 8601)

createdAtTo
string <date-time>

Include work items created on or before this timestamp (ISO 8601)

updatedAtFrom
string <date-time>

Include work items updated on or after this timestamp (ISO 8601)

updatedAtTo
string <date-time>

Include work items updated on or before this timestamp (ISO 8601)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "format": "COCO_JSON",
  • "content": "ANNOTATION",
  • "projectIds": [
    ],
  • "batchIds": [
    ],
  • "createdAtFrom": "2019-08-24T14:15:22Z",
  • "createdAtTo": "2019-08-24T14:15:22Z",
  • "updatedAtFrom": "2019-08-24T14:15:22Z",
  • "updatedAtTo": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "exportId": "85382188-14c3-47fd-b4ab-d4b86ccda514",
  • "name": "string",
  • "status": "PENDING",
  • "format": "COCO_JSON",
  • "content": "ANNOTATION",
  • "createdBy": "string",
  • "downloadUrl": "string",
  • "error": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Get export status

Returns the current status of an export. When COMPLETED, includes a pre-signed download URL valid for 7 days.

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

exportID
required
string <uuid>

Unique identifier for the export

Responses

Response samples

Content type
application/json
{
  • "exportId": "85382188-14c3-47fd-b4ab-d4b86ccda514",
  • "name": "string",
  • "status": "PENDING",
  • "format": "COCO_JSON",
  • "content": "ANNOTATION",
  • "createdBy": "string",
  • "downloadUrl": "string",
  • "error": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Delete an export

Deletes an export and its associated zip file from storage. Can be called for exports in any status.

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

exportID
required
string <uuid>

Unique identifier for the export

Responses

Projects

List all projects

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get Project by ID

Authorizations:
ApiKeyAuth
path Parameters
spaceID
required
string <uuid>

Unique identifier for the space

projectID
required
string <uuid>

Unique identifier for the project

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "spaceID": "a32d76a4-ed5f-4743-8827-e55106d45f9d",
  • "dataType": "image, image_sequence",
  • "companyID": "8aa4932b-54c5-41e0-80aa-d1f56d573225"
}

Public

Get JSON Web Key Set for webhook signature verification

Returns the public keys used to sign webhook payloads. Clients should use these keys to verify the X-Payload-Signature header on webhook callbacks. This endpoint is unauthenticated and publicly accessible.

Responses

Response samples

Content type
application/json
{
  • "keys": [
    ]
}

Webhooks

Get JSON Web Key Set for webhook signature verification

Returns the public keys used to sign webhook payloads. Clients should use these keys to verify the X-Payload-Signature header on webhook callbacks. This endpoint is unauthenticated and publicly accessible.

Responses

Response samples

Content type
application/json
{
  • "keys": [
    ]
}

WorkItems

Create signals

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

Request Body schema: application/json
required
signal
required
string (WorkItemSignal)
Enum: "start" "release" "complete" "cancel" "reopen"

Signal used for task assignment and workflow management.

signalOutcome
string (WorkItemSignalOutcome)
Enum: "OK" "NOT_OK"

Outcome reported for a completed signal.

taskType
string

Type of the task, e.g. "external_review". Required when signal is "complete".

required
Array of objects (WorkItemSignalItem) [ 1 .. 100 ] items

Responses

Request samples

Content type
application/json
{
  • "signal": "start",
  • "signalOutcome": "OK",
  • "taskType": "string",
  • "workItems": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Create a new work item under a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

Request Body schema: application/json
required
One of
One of
assetUrl
required
string or null

Full URL to the asset. Required when creating with asset URL instead of assetId.

assetId
integer or null <int64> >= 0

Unique identifier for the asset associated with the work item. Required when creating with assetId instead of assetUrl.

batchId
integer <int64>

Optional batch identifier under the project to associate this work item with. Defaults to the project's 'Default' batch when omitted.

resultsUrl
string <url>

URL to access the results of the work item

taxonomyVersionId
string <uuid>

Version identifier for the taxonomy used for data.

object

Additional metadata for the work item which is stored but not processed

dueInSeconds
integer <int> [ 1 .. 2592000 ]

Deadline for the work item to be completed by in seconds. This is used for prioritization.

difficulty
integer <int> [ 0 .. 100 ]

Difficulty level of the work item for task assignment and prioritization.

externalId
string

Optional external identifier for the work item, useful for idempotency and integration with external systems.

assetType
required
string (WorkItemAssetTypeEnum)
Enum: "image" "video"

Asset type for work items.

Array of objects (WorkItemLabelsItemBase)
labelsUrl
string

Storage-relative path to the labels file (e.g., "coco_output/abc123"). Not a full URL — the system prepends the space prefix internally.

Responses

Request samples

Content type
application/json
{
  • "assetUrl": "string",
  • "assetId": 0,
  • "batchId": 0,
  • "resultsUrl": "string",
  • "taxonomyVersionId": "f634d1c1-68af-48e0-aefa-208f1bd4c0f0",
  • "metadata": { },
  • "dueInSeconds": 1,
  • "difficulty": 100,
  • "externalId": "string",
  • "assetType": "external"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "PENDING",
  • "assetUrl": "string",
  • "assetId": 0,
  • "batchId": 0,
  • "resultsUrl": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "taxonomyVersionId": "f634d1c1-68af-48e0-aefa-208f1bd4c0f0",
  • "metadata": { },
  • "dueInSeconds": 1,
  • "difficulty": 100,
  • "externalId": "string",
  • "assetType": "external"
}

List and filter work items under a project

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

query Parameters
cursor
string

Cursor for pagination

page
string (KeysetPaginationDirection)
Enum: "NEXT" "PREV"

Direction to paginate

limit
integer [ 1 .. 100 ]
Default: 20

Max number of items to return

workItemIDs
Array of strings <uuid> <= 100 items [ items <uuid > ]

Filter by a list of work item IDs (comma-separated or repeated keys)

batchIds
Array of integers <int64> <= 100 items [ items <int64 > ]

Filter by batch IDs (max 100)

status
string (WorkItemStatusEnum)
Enum: "PENDING" "NEW" "IN_PROGRESS" "COMPLETED" "FAILED" "CANCELED" "CLIENT_REVIEW"

Filter by work item status

createdAtFrom
string <date-time>

Filter work items created on or after this timestamp (ISO 8601)

createdAtTo
string <date-time>

Filter work items created on or before this timestamp (ISO 8601)

updatedAtFrom
string <date-time>

Filter work items updated on or after this timestamp (ISO 8601)

updatedAtTo
string <date-time>

Filter work items updated on or before this timestamp (ISO 8601)

externalIDs
Array of strings <= 100 items

Filter by a list of external IDs (comma-separated or repeated keys)

Responses

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "items": [
    ]
}

Delete a work item (PENDING status only)

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

workItemID
required
string <uuid>

Unique identifier for the work item

Responses

Response samples

Content type
application/json
{
  • "code": "INVALID_REQUEST",
  • "message": "string",
  • "request_id": "string"
}

Insert ground truth labels for this work item

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

workItemID
required
string <uuid>

Unique identifier for the work item

Request Body schema: application/json
required
required
Array of objects (WorkItemLabelsItemBase)

Responses

Request samples

Content type
application/json
{
  • "labels": [
    ]
}

Get annotation for a work item

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

workItemID
required
string <uuid>

Unique identifier for the work item

query Parameters
format
string (ExportFormatEnum)
Value: "coco"

Format of the annotation data

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "projectID": "4a3bdc18-db9e-4363-964a-de75946969f0",
  • "workItemID": "175a9be5-8190-45b1-b805-d597c128abe0",
  • "inference": { },
  • "groundTruthReviewer": "CONSENSUS_REVIEW",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Update signals for a work item

Authorizations:
ApiKeyAuth
path Parameters
projectID
required
string <uuid>

Unique identifier for the project

workItemID
required
string <uuid>

Unique identifier for the work item

Request Body schema: application/json
required
One of
signal
required
string
Enum: "start" "release" "complete" "cancel" "reopen"

Signal subset for completion transition.

taskType
required
string

Type of the task for which signals are being updated, e.g. "labeling", "review", "external_review", etc. This is used for validating the task with the appropriate signals.

assignee
string

Optional assignee identifier (e.g. worker's email) for the work item when applicable.

signalOutcome
required
string (WorkItemSignalOutcome)
Enum: "OK" "NOT_OK"

Outcome reported for a completed signal.

object (WorkItemSignalItemFeedback)
reason
string or null

Optional reason or comments for the signal update, such as why a task was canceled or any relevant notes for the workflow.

Responses

Request samples

Content type
application/json
{
  • "signal": "start",
  • "taskType": "string",
  • "assignee": "string",
  • "signalOutcome": "OK",
  • "feedback": {
    },
  • "reason": "string"
}