Send email OTP

View as markdown
GET /auth/email-otp

Send a one-time password by email to the user for authentication.

Query parameters

  • email Required

    User email address

Responses

  • 200

    OTP by email sent

  • 400

    OTP by email not enabled

GET /auth/email-otp
curl \
 --request GET 'http://api.example.com/auth/email-otp' \
 --header "Authorization: $API_KEY"





















































Get all assets

View as markdown
GET /data/assets/all

Retrieve all production assets with filtering and pagination. Supports advanced filtering by project, asset type, task status, and other criteria

Query parameters

  • project_id

    Filter assets by specific project

  • asset_type_id

    Filter assets by asset type

  • page

    Page number for pagination

  • limit

    Number of assets per page

Responses

  • 200 application/json

    List of assets successfully retrieved

    Hide response attributes Show response attributes object
    • id string(uuid)

      Asset unique identifier

    • name string

      Asset name

    • project_id string(uuid)

      Project identifier

    • entity_type_id string(uuid)

      Asset type identifier

    • project_name string

      Project name

    • asset_type_name string

      Asset type name

GET /data/assets/all
curl \
 --request GET 'http://api.example.com/data/assets/all' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Character Name",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "entity_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "project_name": "My Project",
    "asset_type_name": "Character"
  }
]





































































































































































































































































































































Create entity type

View as markdown
POST /data/entity-types

Create a new entity type with data provided in the request body. JSON format is expected. Entity type names must be unique.

application/json

Body Required

  • name string Required
  • color string

Responses

  • 201 application/json

    Entity type created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • color string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or entity type already exists

POST /data/entity-types
curl \
 --request POST 'http://api.example.com/data/entity-types' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Character","color":"#FF5733"}'
Request examples
{
  "name": "Character",
  "color": "#FF5733"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Character",
  "color": "#FF5733",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
















Create entity

View as markdown
POST /data/entities

Create a new entity with data provided in the request body. JSON format is expected. Requires manager access to the project.

application/json

Body Required

  • name string Required
  • project_id string(uuid) Required
  • entity_type_id string(uuid) Required
  • status string
  • data object

Responses

  • 201 application/json

    Entity created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • entity_type_id string(uuid)
    • status string
    • data object
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/entities
curl \
 --request POST 'http://api.example.com/data/entities' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"SH010","project_id":"a24a6ea4-ce75-4665-a070-57453082c25","entity_type_id":"b24a6ea4-ce75-4665-a070-57453082c25","status":"running","data":{"frame_in":1001,"frame_out":1120}}'
Request examples
{
  "name": "SH010",
  "project_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_type_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "status": "running",
  "data": {
    "frame_in": 1001,
    "frame_out": 1120
  }
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "SH010",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_type_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "status": "running",
  "data": {
    "frame_in": 1001,
    "frame_out": 1120
  },
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Update entity

View as markdown
PUT /data/entities/{instance_id}

Update an entity with data provided in the request body. JSON format is expected. Supports shot versioning when frame data changes.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • data object

Responses

  • 200 application/json

    Entity updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • data object
  • 400

    Invalid data format or validation error

PUT /data/entities/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"SH010","data":{"frame_in":1001,"frame_out":1120}}'
Request examples
{
  "name": "SH010",
  "data": {
    "frame_in": 1001,
    "frame_out": 1120
  }
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "SH010",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "data": {
    "frame_in": 1001,
    "frame_out": 1120
  }
}
















































Create project task status link

View as markdown
POST /data/task-status-links

Create a link between a project and a task status. Sets the priority and roles that can view it on the board.

application/json

Body Required

  • project_id string(uuid) Required
  • task_status_id string(uuid) Required
  • priority integer

    Priority of the task status in the project

    Default value is 1.

  • roles_for_board array[string]

    Roles allowed to see this status on the board

Responses

  • 201 application/json

    Project task status link created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • project_id string(uuid)
    • task_status_id string(uuid)
    • priority integer
    • roles_for_board array[string]
  • 400

    Invalid project or task status

POST /data/task-status-links
curl \
 --request POST 'http://api.example.com/data/task-status-links' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"project_id":"a24a6ea4-ce75-4665-a070-57453082c25","task_status_id":"b24a6ea4-ce75-4665-a070-57453082c25","priority":1,"roles_for_board":["admin","manager"]}'
Request examples
{
  "project_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "priority": 1,
  "roles_for_board": [
    "admin",
    "manager"
  ]
}
Response examples (201)
{
  "id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "project_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "priority": 1,
  "roles_for_board": [
    "admin",
    "manager"
  ]
}




















Get departments

View as markdown
GET /data/departments

Retrieve all departments. Supports filtering via query parameters and pagination.

Query parameters

  • page integer

    Page number for pagination

  • limit integer

    Number of results per page

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Departments retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

GET /data/departments
curl \
 --request GET 'http://api.example.com/data/departments' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]
{
  "data": [
    {}
  ],
  "total": 100,
  "nb_pages": 2,
  "limit": 50,
  "offset": 0,
  "page": 1
}








































































DELETE /data/softwares/{instance_id}

Delete a model instance by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Model deleted successfully

  • 400

    Integrity error or cannot delete

DELETE /data/softwares/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
































PUT /data/output-files/{instance_id}

Update a model instance with data provided in the request body. JSON format is expected. Model performs validation automatically when fields are modified.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string

Responses

  • 200 application/json

    Model updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

PUT /data/output-files/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Updated Model Name"}'
Request examples
{
  "name": "Updated Model Name"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Updated Model Name",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}
























































Update working file

View as markdown
PUT /data/working-files/{instance_id}

Update a working file with data provided in the request body. JSON format is expected. Requires task action access.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • revision integer

Responses

  • 200 application/json

    Working file updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • task_id string(uuid)
    • entity_id string(uuid)
    • revision integer
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

PUT /data/working-files/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"updated_work_file_v001","revision":2}'
Request examples
{
  "name": "updated_work_file_v001",
  "revision": 2
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "updated_work_file_v001",
  "task_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "revision": 2,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}
















































Create time spent

View as markdown
POST /data/time-spents/

Create a new time spent record with data provided in the request body. JSON format is expected. Updates task duration automatically.

application/json

Body Required

  • task_id string(uuid) Required
  • person_id string(uuid) Required
  • date string(date) Required
  • duration number Required

Responses

  • 201 application/json

    Time spent record created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • task_id string(uuid)
    • person_id string(uuid)
    • date string(date)
    • duration number
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/time-spents/
curl \
 --request POST 'http://api.example.com/data/time-spents/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"task_id":"a24a6ea4-ce75-4665-a070-57453082c25","person_id":"b24a6ea4-ce75-4665-a070-57453082c25","date":"2024-01-15","duration":8.5}'
Request examples
{
  "task_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "date": "2024-01-15",
  "duration": 8.5
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "date": "2024-01-15",
  "duration": 8.5,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




































































Delete status automation

View as markdown
DELETE /data/status-automations/{instance_id}

Delete a status automation by its ID. Returns empty response on success. Cannot delete if automation is used in a project.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Status automation deleted successfully

  • 400

    Automation is used in a project or integrity error

DELETE /data/status-automations/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"








































GET /data/events/

Retrieve all events. Supports filtering via query parameters and pagination. Limited to 1000 results.

Query parameters

  • page integer

    Page number for pagination

  • limit integer

    Number of results per page

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Events retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid filter format or query error

GET /data/events/
curl \
 --request GET 'http://api.example.com/data/events/' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Event Name",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  }
]
POST /data/events/

Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated.

application/json

Body Required

  • name string

Responses

  • 201 application/json

    Model created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/events/
curl \
 --request POST 'http://api.example.com/data/events/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Model Name"}'
Request examples
{
  "name": "Model Name"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Model Name",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




































































































































Get metadata descriptors

View as markdown
GET /data/metadata-descriptors/

Retrieve all metadata descriptors. Supports filtering via query parameters and pagination. Vendor access is blocked. Includes project permission filtering for non-admin users.

Query parameters

  • page integer

    Page number for pagination

  • limit integer

    Number of results per page

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Metadata descriptors retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • field_name string
    • data_type string
    • project_id string(uuid)
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid filter format or query error

GET /data/metadata-descriptors/
curl \
 --request GET 'http://api.example.com/data/metadata-descriptors/' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Custom Field",
    "field_name": "custom_field",
    "data_type": "text",
    "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  }
]

Create metadata descriptor

View as markdown
POST /data/metadata-descriptors/

Create a new metadata descriptor with data provided in the request body. JSON format is expected. Validates data_type.

application/json

Body Required

  • name string Required
  • field_name string Required
  • data_type string Required
  • project_id string(uuid) Required
  • entity_type string

Responses

  • 201 application/json

    Metadata descriptor created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • field_name string
    • data_type string
    • project_id string(uuid)
    • entity_type string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or invalid data_type

POST /data/metadata-descriptors/
curl \
 --request POST 'http://api.example.com/data/metadata-descriptors/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Custom Field","field_name":"custom_field","data_type":"text","project_id":"a24a6ea4-ce75-4665-a070-57453082c25","entity_type":"Asset"}'
Request examples
{
  "name": "Custom Field",
  "field_name": "custom_field",
  "data_type": "text",
  "project_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_type": "Asset"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Custom Field",
  "field_name": "custom_field",
  "data_type": "text",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_type": "Asset",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Update metadata descriptor

View as markdown
PUT /data/metadata-descriptors/{instance_id}

Update a metadata descriptor with data provided in the request body. JSON format is expected. Validates data_type.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • data_type string

Responses

  • 200 application/json

    Metadata descriptor updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • field_name string
    • data_type string
    • project_id string(uuid)
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or invalid data_type

PUT /data/metadata-descriptors/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Updated Custom Field","data_type":"number"}'
Request examples
{
  "name": "Updated Custom Field",
  "data_type": "number"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Updated Custom Field",
  "field_name": "custom_field",
  "data_type": "number",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}
















































POST /data/chats/

Create a new chat with data provided in the request body. JSON format is expected.

application/json

Body Required

  • object_id string(uuid) Required
  • object_type string Required
  • name string

Responses

  • 201 application/json

    Chat created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • object_id string(uuid)
    • object_type string
    • name string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/chats/
curl \
 --request POST 'http://api.example.com/data/chats/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"object_id":"a24a6ea4-ce75-4665-a070-57453082c25","object_type":"Asset","name":"Chat Name"}'
Request examples
{
  "object_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "object_type": "Asset",
  "name": "Chat Name"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "object_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "object_type": "Asset",
  "name": "Chat Name",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}












































































































Create plugin

View as markdown
POST /data/plugins

Create a new plugin with data provided in the request body. JSON format is expected.

application/json

Body Required

  • name string Required
  • active boolean

    Default value is false.

Responses

  • 201 application/json

    Plugin created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • active boolean
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/plugins
curl \
 --request POST 'http://api.example.com/data/plugins' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Plugin Name","active":false}'
Request examples
{
  "name": "Plugin Name",
  "active": false
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Plugin Name",
  "active": false,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




































Create production schedule version task link

View as markdown
POST /data/production-schedule-version-task-links

Create a link between a production schedule version and a task. JSON format is expected. Task and schedule version must be in the same project. Requires manager access to the project.

application/json

Body Required

  • production_schedule_version_id string(uuid) Required
  • task_id string(uuid) Required

Responses

  • 201 application/json

    Task link created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • production_schedule_version_id string(uuid)
    • task_id string(uuid)
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or task and schedule version not in same project

POST /data/production-schedule-version-task-links
curl \
 --request POST 'http://api.example.com/data/production-schedule-version-task-links' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"production_schedule_version_id":"a24a6ea4-ce75-4665-a070-57453082c25","task_id":"b24a6ea4-ce75-4665-a070-57453082c25"}'
Request examples
{
  "production_schedule_version_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_id": "b24a6ea4-ce75-4665-a070-57453082c25"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "production_schedule_version_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "task_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

























Get department hardware items

View as markdown
GET /data/departments/{department_id}/hardware-items/{hardware_item_id}

Retrieve all hardware items that are associated with a specific department.

Path parameters

  • department_id Required

    Unique identifier of the department

Responses

  • 200 application/json

    Department hardware items successfully retrieved

    Hide response attributes Show response attributes object
    • id string(uuid)

      Hardware item unique identifier

    • name string

      Hardware item name

    • description string

      Hardware item description

    • department_id string(uuid)

      Department identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/departments/{department_id}/hardware-items/{hardware_item_id}
curl \
 --request GET 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/{hardware_item_id}' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Workstation",
    "description": "High-performance workstation",
    "department_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]

Remove hardware item from department

View as markdown
DELETE /data/departments/{department_id}/hardware-items/{hardware_item_id}

Remove a hardware item from a specific department. This disassociates the hardware from the department.

Path parameters

  • department_id Required

    Unique identifier of the department

  • hardware_item_id Required

    Unique identifier of the hardware item to remove

Responses

  • 204

    Hardware item successfully removed from department

DELETE /data/departments/{department_id}/hardware-items/{hardware_item_id}
curl \
 --request DELETE 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/b35b7fb5-df86-5776-b181-68564193d36' \
 --header "Authorization: $API_KEY"

















DELETE /data/edits/{edit_id}

Permanently remove an edit from the system. Only edit creators or project managers can delete edits.

Path parameters

  • edit_id Required

    Unique identifier of the edit to delete

Query parameters

  • force

    Force deletion bypassing validation checks

Responses

  • 204

    Edit successfully deleted

DELETE /data/edits/{edit_id}
curl \
 --request DELETE 'http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"




Get edit tasks

View as markdown
GET /data/edits/{edit_id}/tasks

Retrieve all tasks that are related to a specific edit.

Path parameters

  • edit_id Required

    Unique identifier of the edit

Query parameters

  • relations

    Include related entity information

Responses

  • 200 application/json

    List of edit tasks successfully retrieved

    Hide response attributes Show response attributes object
    • id string(uuid)

      Task unique identifier

    • name string

      Task name

    • task_type_id string(uuid)

      Task type identifier

    • task_status_id string(uuid)

      Task status identifier

    • entity_id string(uuid)

      Entity identifier

    • assigned_to string(uuid)

      Assigned person identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/edits/{edit_id}/tasks
curl \
 --request GET 'http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "Edit Task",
    "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "task_status_id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "entity_id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "assigned_to": "f79f1jf9-hj20-9010-f625-02998537h80",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]








Get episode edits

View as markdown
GET /data/episodes/{episode_id}/edits

Retrieve all edits that are related to a specific episode.

Path parameters

  • episode_id Required

    Unique identifier of the episode

Query parameters

  • relations

    Include related entity information

Responses

  • 200 application/json

    List of episode edits successfully retrieved

    Hide response attributes Show response attributes object
    • id string(uuid)

      Edit unique identifier

    • name string

      Edit name

    • description string

      Edit description

    • project_id string(uuid)

      Project identifier

    • episode_id string(uuid)

      Episode identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/episodes/{episode_id}/edits
curl \
 --request GET 'http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edits' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Episode Edit",
    "description": "Main episode edit",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "episode_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]

Get episode edit tasks

View as markdown
GET /data/episodes/{episode_id}/edit-tasks

Retrieve all tasks that are related to a specific episode.

Path parameters

  • episode_id Required

    Unique identifier of the episode

Query parameters

  • relations

    Include related entity information

Responses

  • 200 application/json

    List of episode edit tasks successfully retrieved

    Hide response attributes Show response attributes object
    • id string(uuid)

      Task unique identifier

    • name string

      Task name

    • task_type_id string(uuid)

      Task type identifier

    • task_status_id string(uuid)

      Task status identifier

    • entity_id string(uuid)

      Entity identifier

    • assigned_to string(uuid)

      Assigned person identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/episodes/{episode_id}/edit-tasks
curl \
 --request GET 'http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edit-tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "Episode Edit Task",
    "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "task_status_id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "entity_id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "assigned_to": "f79f1jf9-hj20-9010-f625-02998537h80",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]







































































Export task types csv

View as markdown
GET /export/csv/task-types.csv

Responses

  • 200 text/csv

    Task types exported as CSV successfully

GET /export/csv/task-types.csv
curl \
 --request GET 'http://api.example.com/export/csv/task-types.csv' \
 --header "Authorization: $API_KEY"
Response examples (200)
Department,Name Animation,Animation Modeling,Modeling





































































































Update working file comment

View as markdown
PUT /actions/working-files/{working_file_id}/comment

Update the comment on a specific working file. Comments provide context about changes made to the working file.

Path parameters

  • working_file_id string(uuid) Required

    Working file unique identifier

application/json

Body Required

  • comment string Required

    Working file comment

Responses

  • 200 application/json

    Working file comment updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)

      Working file unique identifier

    • comment string

      Updated comment

    • updated_at string(date-time)

      Last update timestamp

PUT /actions/working-files/{working_file_id}/comment
curl \
 --request PUT 'http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/comment' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"comment":"Updated lighting and materials"}'
Request examples
{
  "comment": "Updated lighting and materials"
}
Response examples (200)
{
  "id": "b35b7fb5-df86-5776-b181-68564193d36",
  "comment": "Updated lighting and materials",
  "updated_at": "2023-01-01T12:30:00Z"
}





























Import shotgun assets

View as markdown
POST /import/shotgun/assets

Import Shotgun assets. Send a list of Shotgun asset entries in the JSON body. Returns created or updated assets with parent-child relationships.

application/json

Body Required

  • id integer

    Shotgun ID of the asset

  • code string

    Asset code

  • description string

    Asset description

  • sg_asset_type string

    Asset type name

  • project object

    Project information

    Hide project attribute Show project attribute object
    • id integer
  • parents array[object]

    Parent assets

    Hide parents attribute Show parents attribute object
    • id integer

Responses

  • 200 application/json

    Assets imported successfully

    Hide response attributes Show response attributes object
    • id string(uuid)

      Asset unique identifier

    • name string

      Asset name

    • description string

      Asset description

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Update timestamp

  • 400

    Invalid request body or data format error

POST /import/shotgun/assets
curl \
 --request POST 'http://api.example.com/import/shotgun/assets' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"code":"Asset01","parents":[{"id":22222}],"project":{"id":11111},"description":"Main character asset","sg_asset_type":"Character"}]'
Request example
[
  {
    "id": 12345,
    "code": "Asset01",
    "parents": [
      {
        "id": 22222
      }
    ],
    "project": {
      "id": 11111
    },
    "description": "Main character asset",
    "sg_asset_type": "Character"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Asset01",
    "description": "Main character asset",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]




































































































Import edits csv

View as markdown
POST /import/csv/projects/{project_id}/edits

Import project edits from a CSV file. Creates or updates edits based on CSV rows. Supports metadata descriptors and task status updates.

Path parameters

  • project_id string(uuid) Required

Query parameters

  • update boolean

    Whether to update existing edits

Responses

  • 201 application/json

    Edits imported successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • parent_id string(uuid)
    • description string
  • 400

    Invalid CSV format or missing required columns

POST /import/csv/projects/{project_id}/edits
curl \
 --request POST 'http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits' \
 --header "Authorization: $API_KEY"
Response examples (201)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Edit_001",
    "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
    "parent_id": "c24a6ea4-ce75-4665-a070-57453082c25",
    "description": "Edit description"
  }
]









































































News

View as markdown

Production news feed and activity tracking





Get project latest news

View as markdown
GET /data/projects/{project_id}/news

Get the 50 latest news object (activity feed) for a project

Path parameters

  • project_id string(uuid) Required

    Unique identifier of the project

Query parameters

  • before string(date)

    Filter news before this date

  • after string(date)

    Filter news after this date

  • page integer

    Page number for pagination

    Default value is 1.

  • limit integer

    Number of news items per page

    Default value is 50.

  • person_id string(uuid)

    Filter news by specific team member

  • task_type_id string(uuid)

    Filter news by task type

  • task_status_id string(uuid)

    Filter news by task status

  • episode_id string(uuid)

    Filter news by specific episode

  • only_preview boolean

    Show only news related to preview uploads

    Default value is false.

Responses

  • 200 application/json

    All news related to given project

    Hide response attributes Show response attributes object
    • data array[object]
      Hide data attributes Show data attributes object
      • id string(uuid)

        Unique news item identifier

      • title string

        News item title

      • content string
      • created_at string(date-time)
      • author_id string(uuid)
    • stats object
      Hide stats attribute Show stats attribute object
      • total integer
  • 404

    Project not found

GET /data/projects/{project_id}/news
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "data": [
    {
      "id": "string",
      "title": "string",
      "content": "string",
      "created_at": "2025-05-04T09:42:00Z",
      "author_id": "string"
    }
  ],
  "stats": {
    "total": 42
  }
}





































































Get time spent weeks table

View as markdown
GET /data/persons/time-spents/week-table/{year}

Return a table giving time spent by user and by week for given year.

Path parameters

  • year integer Required

    Year to get time spent table for

Responses

  • 200 application/json

    Table giving time spent by user and by week for given year

GET /data/persons/time-spents/week-table/{year}
curl \
 --request GET 'http://api.example.com/data/persons/time-spents/week-table/2022' \
 --header "Authorization: $API_KEY"
Response examples (200)
{}




































Change person password

View as markdown
POST /actions/persons/{person_id}/change-password

Allow admin to change password for given user. An admin can't change other admins password. The new password requires a confirmation to ensure that the admin didn't make a mistake by typing the new password.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

application/json

Body Required

  • password string(password) Required

    New password

  • password_2 string(password) Required

    Password confirmation

Responses

  • 200 application/json

    Password changed successfully

    Hide response attribute Show response attribute object
    • success boolean

      Success flag

  • 400 application/json

    Invalid password or inactive user

    Hide response attributes Show response attributes object
    • error boolean

      Error flag

    • message string

      Error message

POST /actions/persons/{person_id}/change-password
curl \
 --request POST 'http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/change-password' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"password":"newSecurePassword123","password_2":"newSecurePassword123"}'
Request examples
{
  "password": "newSecurePassword123",
  "password_2": "newSecurePassword123"
}
Response examples (200)
{
  "success": true
}
Response examples (400)
{
  "error": true,
  "message": "Password is too short."
}

















Get episode playlists

View as markdown
GET /data/projects/{project_id}/episodes/{episode_id}/playlists

Retrieve all playlists related to given episode. The full list is returned because the number of playlists in an episode is not that big.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • episode_id string(uuid) Required

    Episode unique identifier or special value (main, all)

Responses

  • 200 application/json

    All playlists related to given episode

    Hide response attributes Show response attributes object
    • id string(uuid)

      Playlist unique identifier

    • name string

      Playlist name

    • episode_id string(uuid)

      Episode unique identifier

GET /data/projects/{project_id}/episodes/{episode_id}/playlists
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/playlists' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Review Playlist",
    "episode_id": "b35b7fb5-df86-5776-b181-68564193d36"
  }
]









































































Get preview thumbnail

View as markdown
GET /pictures/originals/preview-files/{instance_id}.png

Download a thumbnail for a preview file.

Path parameters

  • instance_id string(uuid) Required

    Preview file unique identifier

Responses

  • 200 image/png

    Preview thumbnail downloaded

GET /pictures/originals/preview-files/{instance_id}.png
curl \
 --request GET 'http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png' \
 --header "Authorization: $API_KEY"








Get preview thumbnail

View as markdown
GET /pictures/previews/preview-files/{instance_id}.png

Download a thumbnail for a preview file.

Path parameters

  • instance_id string(uuid) Required

    Preview file unique identifier

Responses

  • 200 image/png

    Preview thumbnail downloaded

GET /pictures/previews/preview-files/{instance_id}.png
curl \
 --request GET 'http://api.example.com/pictures/previews/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png' \
 --header "Authorization: $API_KEY"

Get preview thumbnail

View as markdown
GET /movies/tiles/preview-files/{instance_id}.png

Download a thumbnail for a preview file.

Path parameters

  • instance_id string(uuid) Required

    Preview file unique identifier

Responses

  • 200 image/png

    Preview thumbnail downloaded

GET /movies/tiles/preview-files/{instance_id}.png
curl \
 --request GET 'http://api.example.com/movies/tiles/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png' \
 --header "Authorization: $API_KEY"
































Get thumbnail

View as markdown
GET /pictures/thumbnails/projects/{instance_id}

Download the thumbnail linked to given object instance.

Path parameters

  • instance_id string(uuid) Required

    Object instance unique identifier

Responses

  • 200 image/png

    Thumbnail downloaded

GET /pictures/thumbnails/projects/{instance_id}
curl \
 --request GET 'http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"








Create thumbnail

View as markdown
POST /pictures/thumbnails/projects/{instance_id}.png

Create a thumbnail for given object instance.

Path parameters

  • instance_id string(uuid) Required

    Object instance unique identifier

Responses

  • 201 application/json

    Thumbnail created successfully

    Hide response attribute Show response attribute object
    • thumbnail_path string

      URL path to the thumbnail

POST /pictures/thumbnails/projects/{instance_id}.png
curl \
 --request POST 'http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png' \
 --header "Authorization: $API_KEY"
Response examples (201)
{
  "thumbnail_path": "/api/thumbnails/persons/uuid"
}





















































































































Add preview background file to production

View as markdown
POST /data/projects/{project_id}/settings/preview-background-files

Add a preview background file linked to a production.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

application/json

Body Required

  • preview_background_file_id string(uuid) Required

    Preview background file unique identifier

Responses

  • 201 application/json

    Preview background file added to production

    Hide response attributes Show response attributes object
    • id string(uuid)

      Project unique identifier

    • name string

      Project name

POST /data/projects/{project_id}/settings/preview-background-files
curl \
 --request POST 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"preview_background_file_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "preview_background_file_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "My Project"
}




































Get asset types schedule items

View as markdown
GET /data/projects/{project_id}/schedule-items/{task_type_id}/asset-types

Retrieve asset types schedule items for given task type.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • task_type_id string(uuid) Required

    Task type unique identifier

Responses

  • 200 application/json

    All asset types schedule items for given task type

GET /data/projects/{project_id}/schedule-items/{task_type_id}/asset-types
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/asset-types' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]














































































Get all shots

View as markdown
GET /data/shots

Get all shots across projects with optional filters. Use sequence_id, project_id, or parent_id to filter.

Query parameters

  • sequence_id
  • project_id
  • parent_id

Responses

  • 200 application/json

    All shot entries

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • parent_id string(uuid)
GET /data/shots
curl \
 --request GET 'http://api.example.com/data/shots' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "SH020",
    "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
    "parent_id": "c24a6ea4-ce75-4665-a070-57453082c25"
  }
]
































































Get scene shots

View as markdown
GET /data/scenes/{scene_id}/shots

Get shots that come from a scene.

Path parameters

  • scene_id Required

Responses

  • 200 application/json

    All shots that come from given scene

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
GET /data/scenes/{scene_id}/shots
curl \
 --request GET 'http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "SH010",
    "project_id": "b24a6ea4-ce75-4665-a070-57453082c25"
  }
]