Authentication

Jwt authorization (http_api_key)

Format in header: Authorization: Bearer {token}.

Value example: Bearer xxxxx.yyyyy.zzzzz

Authentication

View as Markdown

User authentication, login, logout, and session management









Check authentication status

View as Markdown
GET /auth/authenticated

Returns information if the user is authenticated. It can be used by third party tools, especially browser frontend, to know if current user is still logged in.

Responses

  • 200

    User authenticated

  • 401

    Person not found

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

Register new user

View as Markdown
POST /auth/register

Allow a user to register himself to the service.

application/json

Body Required

  • email string(email) Required

    User email address

  • password string(password) Required

    User password

  • password_2 string(password) Required

    Password confirmation

  • first_name string Required

    User first name

  • last_name string Required

    User last name

Responses

  • 201

    Registration successful

  • 400

    Invalid password or email

POST /auth/register
curl \
 --request POST 'http://api.example.com/auth/register' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"email":"admin@example.com","password":"string","password_2":"string","first_name":"string","last_name":"string"}'
Request examples
{
  "email": "admin@example.com",
  "password": "string",
  "password_2": "string",
  "first_name": "string",
  "last_name": "string"
}








Request password reset

View as Markdown
POST /auth/reset-password

Send a password reset token by email to the user. It uses a classic scheme where a token is sent by email.

application/json

Body Required

  • email string(email) Required

    User email address

Responses

  • 200

    Reset token sent

  • 400

    Email not listed in database

POST /auth/reset-password
curl \
 --request POST 'http://api.example.com/auth/reset-password' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"email":"admin@example.com"}'
Request examples
{
  "email": "admin@example.com"
}












DELETE /auth/totp

Disable TOTP (Time-based One-Time Password) authentication. It requires two-factor authentication verification.

application/json

Body Required

  • totp string

    TOTP verification code

  • email_otp string

    Email OTP verification code

  • fido_authentication_response object

    FIDO authentication response

  • recovery_code string

    Recovery code for two-factor authentication

Responses

  • 200

    TOTP disabled

  • 400

    TOTP not enabled or verification failed

DELETE /auth/totp
curl \
 --request DELETE 'http://api.example.com/auth/totp' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"totp":"string","email_otp":"string","fido_authentication_response":{},"recovery_code":"string"}'
Request examples
{
  "totp": "string",
  "email_otp": "string",
  "fido_authentication_response": {},
  "recovery_code": "string"
}

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"

Pre-enable email OTP

View as Markdown
PUT /auth/email-otp

Prepare email OTP (One-Time Password) for enabling. It sets up email-based two-factor authentication.

Responses

  • 200

    Email OTP pre-enabled

  • 400

    Email OTP already enabled

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

Enable email OTP

View as Markdown
POST /auth/email-otp

Enable email OTP (One-Time Password) authentication. It requires verification code sent to email.

application/json

Body Required

  • email_otp string Required

    Email OTP verification code

Responses

  • 200

    Email OTP enabled

  • 400

    Email OTP already enabled or verification failed

POST /auth/email-otp
curl \
 --request POST 'http://api.example.com/auth/email-otp' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"email_otp":"string"}'
Request examples
{
  "email_otp": "string"
}

Disable email OTP

View as Markdown
DELETE /auth/email-otp

Disable email OTP (One-Time Password) authentication. It requires two-factor authentication verification.

application/json

Body Required

  • totp string

    TOTP verification code

  • email_otp string

    Email OTP verification code

  • fido_authentication_response object

    FIDO authentication response

  • recovery_code string

    Recovery code for two-factor authentication

Responses

  • 200

    Email OTP disabled

  • 400

    Email OTP not enabled or verification failed

DELETE /auth/email-otp
curl \
 --request DELETE 'http://api.example.com/auth/email-otp' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"totp":"string","email_otp":"string","fido_authentication_response":{},"recovery_code":"string"}'
Request examples
{
  "totp": "string",
  "email_otp": "string",
  "fido_authentication_response": {},
  "recovery_code": "string"
}
















Unregister FIDO device

View as Markdown
DELETE /auth/fido

Unregister a FIDO device from WebAuthn authentication. It requires two-factor authentication verification.

application/json

Body Required

  • totp string

    TOTP verification code

  • email_otp string

    Email OTP verification code

  • fido_authentication_response object

    FIDO authentication response

  • recovery_code string

    Recovery code for two-factor authentication

  • device_name string Required

    Name of the FIDO device to unregister

Responses

  • 200

    FIDO device unregistered

  • 400

    FIDO not enabled or verification failed

DELETE /auth/fido
curl \
 --request DELETE 'http://api.example.com/auth/fido' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"totp":"string","email_otp":"string","fido_authentication_response":{},"recovery_code":"string","device_name":"string"}'
Request examples
{
  "totp": "string",
  "email_otp": "string",
  "fido_authentication_response": {},
  "recovery_code": "string",
  "device_name": "string"
}




SAML SSO login redirect

View as Markdown
GET /auth/saml/login

Initiate SAML SSO login by redirecting to SAML identity provider.

Responses

  • 302

    Redirect to SAML identity provider

  • 400

    SAML not enabled or wrong parameter

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

Assets

View as Markdown

Production asset management including 3D models, textures, and media files





















GET /data/assets/{asset_id}

Retrieve detailed information about a specific asset including metadata, project context, and related data

Path parameters

  • asset_id Required

    Unique identifier of the asset

Responses

  • 200 application/json

    Asset information 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

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/assets/{asset_id}
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25' \
 --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",
  "created_at": "2023-01-01T12:00:00Z",
  "updated_at": "2023-01-01T12:30:00Z"
}








Get asset tasks

View as Markdown
GET /data/assets/{asset_id}/tasks

Retrieve all tasks related to a specific asset.

Path parameters

  • asset_id Required

    Unique identifier of the asset

Query parameters

  • task_type_id

    Filter tasks by task type

  • task_status_id

    Filter tasks by task status

Responses

  • 200 application/json

    List of asset 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)

      Asset identifier

    • assigned_to string(uuid)

      Assigned user identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/assets/{asset_id}/tasks
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "name": "Modeling Task",
    "task_type_id": "f79f1jf9-hj20-9110-f625-02908537h70",
    "task_status_id": "g80g2kg0-ik31-0221-g736-13019648i81",
    "entity_id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "assigned_to": "h91h3lh1-jl42-1332-h847-24120759j92",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]




Get shots casting asset

View as Markdown
GET /data/assets/{asset_id}/cast-in

Retrieve all shots that cast a specific asset in their breakdown.

Path parameters

  • asset_id Required

    Unique identifier of the asset

Responses

  • 200 application/json

    List of shots casting the asset successfully retrieved

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

      Shot unique identifier

    • name string

      Shot name

    • project_id string(uuid)

      Project identifier

    • sequence_id string(uuid)

      Sequence identifier

    • frame_in integer

      Frame in

    • frame_out integer

      Frame out

    • duration integer

      Shot duration in frames

GET /data/assets/{asset_id}/cast-in
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/cast-in' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "SH001",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "sequence_id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "frame_in": 100,
    "frame_out": 200,
    "duration": 100
  }
]

Get asset casting

View as Markdown
GET /data/assets/{asset_id}/casting

Retrieve the casting information for a specific asset showing which shots or sequences use this asset

Path parameters

  • asset_id Required

    Unique identifier of the asset

Responses

  • 200 application/json

    Asset casting information successfully retrieved

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

      Asset unique identifier

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

        Casting entry unique identifier

      • entity_id string(uuid)

        Entity identifier (shot/sequence)

      • entity_name string

        Entity name

      • entity_type string

        Entity type (shot/sequence)

GET /data/assets/{asset_id}/casting
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "asset_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "casting": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "entity_id": "d57d9hd7-fh08-7998-d403-80786315f58",
      "entity_name": "SH001",
      "entity_type": "shot"
    }
  ]
}




Get shot asset instances

View as Markdown
GET /data/assets/{asset_id}/shot-asset-instances

Retrieve all shot asset instances that are linked to a specific asset.

Path parameters

  • asset_id Required

    Unique identifier of the asset

Responses

  • 200 application/json

    List of shot asset instances successfully retrieved.

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

      Asset instance unique identifier

    • asset_id string(uuid)

      Asset identifier

    • shot_id string(uuid)

      Shot identifier

    • number string

      Instance number

    • description string

      Instance description

GET /data/assets/{asset_id}/shot-asset-instances
curl \
 --request GET 'http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/shot-asset-instances' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "f79f1jf9-hj20-9110-f625-02908537h70",
    "asset_id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "shot_id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "number": "001",
    "description": "Main character instance"
  }
]












Get project asset type assets

View as Markdown
GET /data/projects/{project_id}/asset-types/{asset_type_id}/assets

Retrieve all assets of a specific type within a project.

Path parameters

  • project_id Required

    Unique identifier of the project

  • asset_type_id Required

    Unique identifier of the asset type

Query parameters

  • page

    Page number for pagination

  • limit

    Number of assets per page

Responses

  • 200 application/json

    List of project asset type 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/projects/{project_id}/asset-types/{asset_type_id}/assets
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets' \
 --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"
  }
]




Get project asset types

View as Markdown
GET /data/projects/{project_id}/asset-types

Retrieve all asset types available for a specific project

Path parameters

  • project_id Required

    Unique identifier of the project

Responses

  • 200 application/json

    List of project asset types successfully retrieved

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

      Asset type unique identifier

    • name string

      Asset type name

    • project_id string(uuid)

      Project identifier

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

Get shot asset types

View as Markdown
GET /data/shots/{shot_id}/asset-types

Retrieve all asset types of assets that are casted in a specific shot

Path parameters

  • shot_id Required

    Unique identifier of the shot

Responses

  • 200 application/json

    List of shot asset types successfully retrieved

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

      Asset type unique identifier

    • name string

      Asset type name

    • shot_id string(uuid)

      Shot identifier

GET /data/shots/{shot_id}/asset-types
curl \
 --request GET 'http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/asset-types' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "name": "Character",
    "shot_id": "d57d9hd7-fh08-7998-d403-80786315f58"
  }
]

Get project assets

View as Markdown
GET /data/projects/{project_id}/assets

Retrieve all assets belonging to a specific project with filtering support

Path parameters

  • project_id Required

    Unique identifier of the project

Query parameters

  • 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 project 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/projects/{project_id}/assets
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets' \
 --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"
  }
]




Set project assets shared

View as Markdown
POST /actions/projects/{project_id}/assets/share

Share or unshare all assets for a specific project or a list of specific assets.

Path parameters

  • project_id Required

    Unique identifier of the project

application/json

Body

  • is_shared boolean

    Whether to share or unshare the assets

  • asset_ids array[string(uuid)]

    Specific asset IDs to update.

Responses

  • 200 application/json

    Assets shared status successfully updated

    Hide response attributes Show response attributes object
    • updated_count integer

      Number of assets updated

    • project_id string(uuid)

      Project identifier

POST /actions/projects/{project_id}/assets/share
curl \
 --request POST 'http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/share' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"is_shared":true,"asset_ids":["a24a6ea4-ce75-4665-a070-57453082c25","b35b7fb5-df86-5776-b181-68564193d36"]}'
Request examples
{
  "is_shared": true,
  "asset_ids": [
    "a24a6ea4-ce75-4665-a070-57453082c25",
    "b35b7fb5-df86-5776-b181-68564193d36"
  ]
}
Response examples (200)
{
  "updated_count": 5,
  "project_id": "b35b7fb5-df86-5776-b181-68564193d36"
}








Get shared assets used in episode

View as Markdown
GET /data/projects/{project_id}/episodes/{episode_id}/assets/shared-used

Retrieve all shared assets that are used in a specific project episode.

Path parameters

  • project_id Required

    Unique identifier of the project

  • episode_id Required

    Unique identifier of the episode

Responses

  • 200 application/json

    List of shared assets used in episode successfully retrieved

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

      Asset unique identifier

    • name string

      Asset name

    • project_id string(uuid)

      Original project identifier

    • entity_type_id string(uuid)

      Asset type identifier

    • is_shared boolean

      Whether the asset is shared

    • episode_id string(uuid)

      Episode identifier

GET /data/projects/{project_id}/episodes/{episode_id}/assets/shared-used
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used' \
 --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",
    "is_shared": true,
    "episode_id": "d57d9hd7-fh08-7998-d403-80786315f58"
  }
]





Update entity casting

View as Markdown
PUT /data/projects/{project_id}/entities/{entity_id}/casting

Modify the casting relationships for a specific entity by updating which assets are linked to it.

Path parameters

  • project_id Required

    Unique identifier of the project

  • entity_id Required

    Unique identifier of the entity

application/json

Body Required

  • casting array[object]
    Hide casting attributes Show casting attributes object
    • asset_id string(uuid)

      Asset identifier to link

    • asset_name string

      Asset name

Responses

  • 200 application/json

    Entity casting successfully updated

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

      Entity unique identifier

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

        Casting entry unique identifier

      • asset_id string(uuid)

        Asset identifier

      • asset_name string

        Asset name

PUT /data/projects/{project_id}/entities/{entity_id}/casting
curl \
 --request PUT 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"casting":[{"asset_id":"c46c8gc6-eg97-6887-c292-79675204e47","asset_name":"Main Character"}]}'
Request examples
{
  "casting": [
    {
      "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "asset_name": "Main Character"
    }
  ]
}
Response examples (200)
{
  "entity_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "casting": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "asset_name": "Main Character"
    }
  ]
}

Get asset type casting

View as Markdown
GET /data/projects/{project_id}/asset-types/{asset_type_id}/casting

Retrieve the casting information for all assets of a specific asset type in a project.

Path parameters

  • project_id Required

    Unique identifier of the project

  • asset_type_id Required

    Unique identifier of the asset type

Responses

  • 200 application/json

    Asset type casting information successfully retrieved

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

      Asset unique identifier

    • asset_name string

      Asset name

    • asset_type_id string(uuid)

      Asset type identifier

    • casting array[object]
      Hide casting attributes Show casting attributes object
      • entity_id string(uuid)

        Entity identifier

      • entity_name string

        Entity name

      • entity_type string

        Entity type (shot/sequence)

GET /data/projects/{project_id}/asset-types/{asset_type_id}/casting
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/g80g2kg0-ik31-0221-g736-13019648i81/casting' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "asset_name": "Main Character",
    "asset_type_id": "g80g2kg0-ik31-0221-g736-13019648i81",
    "casting": [
      {
        "entity_id": "e68e0ie8-gi19-8009-e514-91897426g69",
        "entity_name": "SH001",
        "entity_type": "shot"
      }
    ]
  }
]




























Create scene asset instance

View as Markdown
POST /data/scenes/{scene_id}/asset-instances

Create an asset instance on a specific scene.

Path parameters

  • scene_id Required

    Unique identifier of the scene

application/json

Body Required

  • asset_id string(uuid) Required

    Asset identifier to create instance from

  • description string

    Instance description

Responses

  • 201 application/json

    Asset instance successfully created on scene

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

      Asset instance unique identifier

    • asset_id string(uuid)

      Asset identifier

    • scene_id string(uuid)

      Scene identifier

    • number string

      Instance number

    • description string

      Instance description

POST /data/scenes/{scene_id}/asset-instances
curl \
 --request POST 'http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"asset_id":"c46c8gc6-eg97-6887-c292-79675204e47","description":"Main character instance"}'
Request examples
{
  "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "description": "Main character instance"
}
Response examples (201)
{
  "id": "j13j5nj3-ln64-3554-j069-46342981l14",
  "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "scene_id": "i02i4mi2-km53-2443-i958-35231870k03",
  "number": "001",
  "description": "Main character instance"
}




Get shot asset instances

View as Markdown
GET /data/shots/{shot_id}/asset-instances

Retrieve all asset instances that are linked to a specific shot.

Path parameters

  • shot_id Required

    Unique identifier of the shot

Responses

  • 200 application/json

    Shot asset instances successfully retrieved

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

      Asset instance unique identifier

    • asset_id string(uuid)

      Asset identifier

    • shot_id string(uuid)

      Shot identifier

    • number string

      Instance number

    • description string

      Instance description

GET /data/shots/{shot_id}/asset-instances
curl \
 --request GET 'http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "h91h3lh1-jl42-1332-h847-24120759j92",
    "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "shot_id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "number": "001",
    "description": "Main character instance"
  }
]

Add shot asset instance

View as Markdown
POST /data/shots/{shot_id}/asset-instances

Add an asset instance to a specific shot.

Path parameters

  • shot_id Required

    Unique identifier of the shot

application/json

Body Required

  • asset_instance_id string(uuid) Required

    Asset instance identifier to add

Responses

  • 201 application/json

    Asset instance successfully added to shot

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

      Shot unique identifier

    • name string

      Shot name

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

        Asset instance unique identifier

      • asset_id string(uuid)

        Asset identifier

POST /data/shots/{shot_id}/asset-instances
curl \
 --request POST 'http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"asset_instance_id":"h91h3lh1-jl42-1332-h847-24120759j92"}'
Request examples
{
  "asset_instance_id": "h91h3lh1-jl42-1332-h847-24120759j92"
}
Response examples (201)
{
  "id": "e68e0ie8-gi19-8009-e514-91897426g69",
  "name": "SH001",
  "asset_instances": [
    {
      "id": "h91h3lh1-jl42-1332-h847-24120759j92",
      "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47"
    }
  ]
}




Chat

View as Markdown

Real-time messaging and communication features

















Delete chat message

View as Markdown
DELETE /data/entities/{entity_id}/chat/messages/{chat_message_id}

Delete a specific chat message. Only the message author or administrators can delete messages.

Path parameters

  • entity_id Required

    ID of the entity related to the chat

  • chat_message_id Required

    ID of the chat message to delete

Responses

  • 204

    Chat message successfully deleted

DELETE /data/entities/{entity_id}/chat/messages/{chat_message_id}
curl \
 --request DELETE 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"





Reply to comment

View as Markdown
POST /data/tasks/{task_id}/comments/{comment_id}/reply

Add a reply to a specific comment. The reply will be added to the comment's replies list.

Path parameters

  • task_id Required

    Unique identifier of the task

  • comment_id Required

    Unique identifier of the comment

Responses

  • 200 application/json

    Reply successfully added to comment

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

      Reply unique identifier

    • comment_id string(uuid)

      Parent comment identifier

    • text string

      Reply text content

    • person_id string(uuid)

      Person identifier who made the reply

    • created_at string(date-time)

      Creation timestamp

POST /data/tasks/{task_id}/comments/{comment_id}/reply
curl \
 --request POST 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "comment_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "text": "Thanks for the feedback!",
  "person_id": "d57d9hd7-fh08-7998-d403-80786315f58",
  "created_at": "2023-01-01T12:00:00Z"
}








Download attachment file

View as Markdown
GET /data/attachment-files/{attachment_file_id}/file/{file_name}

Download a specific attachment file from a comment or chat message. Supports various file types including images and documents.

Path parameters

  • attachment_file_id Required

    Unique identifier of the attachment file

  • file_name Required

    Name of the file to download

Responses

  • 200 application/octet-stream

    Attachment file successfully downloaded

    File content

GET /data/attachment-files/{attachment_file_id}/file/{file_name}
curl \
 --request GET 'http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25/file/document.pdf' \
 --header "Authorization: $API_KEY"

Add comment attachments

View as Markdown
POST /actions/tasks/{task_id}/comments/{comment_id}/add-attachment

Add one or more files as attachments to a specific comment. Supports various file types including images and documents.

Path parameters

  • task_id Required

    Unique identifier of the task

  • comment_id Required

    Unique identifier of the comment

Responses

  • 201 application/json

    Files successfully added as attachments

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

      Attachment file unique identifier

    • name string

      File name

    • mimetype string

      File MIME type

    • size integer

      File size in bytes

    • comment_id string(uuid)

      Comment identifier

POST /actions/tasks/{task_id}/comments/{comment_id}/add-attachment
curl \
 --request POST 'http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/add-attachment' \
 --header "Authorization: $API_KEY"
Response examples (201)
[
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "document.pdf",
    "mimetype": "application/pdf",
    "size": 1024000,
    "comment_id": "b35b7fb5-df86-5776-b181-68564193d36"
  }
]

Get project attachment files

View as Markdown
GET /data/projects/{project_id}/attachment-files

Retrieve all attachment files related to a specific project. Requires administrator permissions.

Path parameters

  • project_id Required

    Unique identifier of the project

Responses

  • 200 application/json

    Project attachment files successfully retrieved

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

      Attachment file unique identifier

    • name string

      File name

    • mimetype string

      File MIME type

    • size integer

      File size in bytes

    • comment_id string(uuid)

      Comment identifier

    • project_id string(uuid)

      Project identifier

GET /data/projects/{project_id}/attachment-files
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "document.pdf",
    "mimetype": "application/pdf",
    "size": 1024000,
    "comment_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "project_id": "a24a6ea4-ce75-4665-a070-57453082c25"
  }
]




Create task comment

View as Markdown
POST /actions/tasks/{task_id}/comment

Create a new comment for a specific task. It requires a text, a task_status and a person as arguments. This way, comments keep history of status changes. When the comment is created, it updates the task status with the given task status.

Path parameters

  • task_id Required

    Unique identifier of the task

application/json

Body Required

  • task_status_id string(uuid) Required

    Task status identifier

  • comment string

    Comment text content

  • person_id string(uuid)

    Person identifier (optional, defaults to current user)

  • created_at string(date-time)

    Creation timestamp (optional, defaults to current time)

  • checklist object

    Checklist items for the comment

  • links array[string]

    List of related links

Responses

  • 201 application/json

    Comment successfully created

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

      Comment unique identifier

    • task_id string(uuid)

      Task identifier

    • person_id string(uuid)

      Person identifier

    • comment string

      Comment text content

    • task_status_id string(uuid)

      Task status identifier

    • created_at string(date-time)

      Creation timestamp

POST /actions/tasks/{task_id}/comment
curl \
 --request POST 'http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comment' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"task_status_id":"c46c8gc6-eg97-6887-c292-79675204e47","comment":"This looks great! Ready for review.","person_id":"d57d9hd7-fh08-7998-d403-80786315f58","created_at":"2023-01-01T12:00:00Z","checklist":{"item1":"Check lighting","item2":"Verify textures"},"links":["https://example.com/reference1","https://example.com/reference2"]}'
Request examples
{
  "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "comment": "This looks great! Ready for review.",
  "person_id": "d57d9hd7-fh08-7998-d403-80786315f58",
  "created_at": "2023-01-01T12:00:00Z",
  "checklist": {
    "item1": "Check lighting",
    "item2": "Verify textures"
  },
  "links": [
    "https://example.com/reference1",
    "https://example.com/reference2"
  ]
}
Response examples (201)
{
  "id": "b35b7fb5-df86-5776-b181-68564193d36",
  "task_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "d57d9hd7-fh08-7998-d403-80786315f58",
  "comment": "This looks great! Ready for review.",
  "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "created_at": "2023-01-01T12:00:00Z"
}




Add task batch comments

View as Markdown
POST /actions/tasks/{task_id}/batch-comment

Creates new comments for given task. Each comment requires a text, a task_status and a person as arguments. Can include preview files and attachments.

Path parameters

  • task_id string(uuid) Required

    Task unique identifier

multipart/form-data

Body Required

  • comments string Required

    JSON string containing array of comments

Responses

  • 201 application/json

    New comments created

POST /actions/tasks/{task_id}/batch-comment
curl \
 --request POST 'http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/batch-comment' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: multipart/form-data" \
 --form "comments=[{"text": "Good work", "task_status_id": "uuid"}]"
Response examples (201)
[
  {}
]

Add tasks batch comments

View as Markdown
POST /actions/tasks/batch-comment

Creates new comments for given tasks. Each comment requires a task_id, text, a task_status and a person as arguments. Can include preview files and attachments.

multipart/form-data

Body Required

  • comments string Required

    JSON string containing array of comments

Responses

  • 201 application/json

    New comments created

POST /actions/tasks/batch-comment
curl \
 --request POST 'http://api.example.com/actions/tasks/batch-comment' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: multipart/form-data" \
 --form "comments=[{"task_id": "uuid", "text": "Good work", "task_status_id": "uuid"}]"
Response examples (201)
[
  {}
]

















Get concept task types

View as Markdown
GET /data/concepts/{concept_id}/task-types

Retrieve all task types that are related to a specific concept.

Path parameters

  • concept_id Required

    Unique identifier of the concept

Responses

  • 200 application/json

    List of concept task types successfully retrieved

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

      Task type unique identifier

    • name string

      Task type name

    • short_name string

      Task type short name

    • color string

      Task type color code

    • for_entity string

      Entity type this task type is for

GET /data/concepts/{concept_id}/task-types
curl \
 --request GET 'http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/task-types' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "Concept Art",
    "short_name": "CON",
    "color": "#FF5733",
    "for_entity": "Concept"
  }
]

Get concept tasks

View as Markdown
GET /data/concepts/{concept_id}/tasks

Retrieve all tasks that are related to a specific concept.

Path parameters

  • concept_id Required

    Unique identifier of the concept

Query parameters

  • relations

    Include related entity information

Responses

  • 200 application/json

    List of concept 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/concepts/{concept_id}/tasks
curl \
 --request GET 'http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "Character Design 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 concept previews

View as Markdown
GET /data/concepts/{concept_id}/preview-files

Retrieve all preview files related to a specific concept. Returns them as a dictionary where keys are related task type IDs and values are arrays of previews for that task type.

Path parameters

  • concept_id Required

    Unique identifier of the concept

Responses

  • 200 application/json

    Concept previews successfully retrieved

    Hide response attribute Show response attribute object
    • * array[object] Additional properties
      Hide * attributes Show * attributes object
      • id string(uuid)

        Preview unique identifier

      • name string

        Preview name

      • original_name string

        Original file name

      • file_path string

        File path

      • task_type_id string(uuid)

        Task type identifier

      • created_at string(date-time)

        Creation timestamp

GET /data/concepts/{concept_id}/preview-files
curl \
 --request GET 'http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/preview-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "additionalProperty1": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "name": "concept_preview_01",
      "original_name": "character_concept.jpg",
      "file_path": "/previews/concept/concept_preview_01.jpg",
      "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "created_at": "2023-01-01T12:00:00Z"
    }
  ],
  "additionalProperty2": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "name": "concept_preview_01",
      "original_name": "character_concept.jpg",
      "file_path": "/previews/concept/concept_preview_01.jpg",
      "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "created_at": "2023-01-01T12:00:00Z"
    }
  ]
}

Get project concepts

View as Markdown
GET /data/projects/{project_id}/concepts

Retrieve all concepts that are related to a specific project.

Path parameters

  • project_id Required

    Unique identifier of the project

Responses

  • 200 application/json

    List of project concepts successfully retrieved

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

      Concept unique identifier

    • name string

      Concept name

    • description string

      Concept description

    • project_id string(uuid)

      Project identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/projects/{project_id}/concepts
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Character Design",
    "description": "Main character concept art",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]

Create concept

View as Markdown
POST /data/projects/{project_id}/concepts

Create a new concept for a specific project with name, description, and optional entity concept links.

Path parameters

  • project_id Required

    Unique identifier of the project

application/json

Body Required

  • name string Required

    Concept name

  • description string

    Concept description

  • data object

    Additional concept data

  • entity_concept_links array[string(uuid)]

    List of entity concept link identifiers

Responses

  • 201 application/json

    Concept successfully created

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

      Concept unique identifier

    • name string

      Concept name

    • description string

      Concept description

    • project_id string(uuid)

      Project identifier

    • data object

      Additional concept data

    • created_by string(uuid)

      Creator person identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

POST /data/projects/{project_id}/concepts
curl \
 --request POST 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Character Design","description":"Main character concept art","data":{"mood":"heroic","style":"realistic"},"entity_concept_links":["b35b7fb5-df86-5776-b181-68564193d36","c46c8gc6-eg97-6887-c292-79675204e47"]}'
Request examples
{
  "name": "Character Design",
  "description": "Main character concept art",
  "data": {
    "mood": "heroic",
    "style": "realistic"
  },
  "entity_concept_links": [
    "b35b7fb5-df86-5776-b181-68564193d36",
    "c46c8gc6-eg97-6887-c292-79675204e47"
  ]
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Character Design",
  "description": "Main character concept art",
  "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "data": {
    "mood": "heroic",
    "style": "realistic"
  },
  "created_by": "d57d9hd7-fh08-7998-d403-80786315f58",
  "created_at": "2023-01-01T12:00:00Z",
  "updated_at": "2023-01-01T12:00:00Z"
}

GET /data/persons

Retrieve all persons. Supports filtering via query parameters and pagination. Admin users can include password hashes. Non-admin users only see minimal information.

Query parameters

  • page integer

    Page number for pagination

  • limit integer

    Number of results per page

  • relations boolean

    Whether to include relations

  • with_pass_hash boolean

    Include password hash (admin only)

Responses

  • 200 application/json

    Persons retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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




















Create project

View as Markdown
POST /data/projects

Create a new project with data provided in the request body. JSON format is expected. Validates production_style. For tvshow production type, automatically creates first episode.

application/json

Body Required

  • name string Required
  • production_type string
  • production_style string

    Default value is 2d3d.

  • project_status_id string(uuid)

Responses

  • 201 application/json

    Project created successfully

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

    Invalid data format or invalid production_style

POST /data/projects
curl \
 --request POST 'http://api.example.com/data/projects' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Project Name","production_type":"feature","production_style":"2d3d","project_status_id":"a24a6ea4-ce75-4665-a070-57453082c25"}'
Request examples
{
  "name": "Project Name",
  "production_type": "feature",
  "production_style": "2d3d",
  "project_status_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Project Name",
  "production_type": "feature",
  "production_style": "2d3d",
  "project_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "first_episode_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
GET /data/projects/{instance_id}

Retrieve a project by its ID and return it as a JSON object. Supports including relations. Requires project access.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Project retrieved successfully

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

    Invalid ID format or query error

GET /data/projects/{instance_id}
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Project Name",
  "production_type": "feature",
  "production_style": "2d3d",
  "project_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "project_status_name": "Open",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
























Delete project status

View as Markdown
DELETE /data/project-status/{instance_id}

Delete a project status by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Project status deleted successfully

  • 400

    Integrity error or cannot delete

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

Get entity types

View as Markdown
GET /data/entity-types

Retrieve all entity types. 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

    Entity types retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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








Update entity type

View as Markdown
PUT /data/entity-types/{instance_id}

Update an entity type with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • color string

Responses

  • 200 application/json

    Entity type updated 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 validation error

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

Delete entity type

View as Markdown
DELETE /data/entity-types/{instance_id}

Delete an entity type by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Entity type deleted successfully

  • 400

    Integrity error or cannot delete

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




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
  }
}




Get task types

View as Markdown
GET /data/task-types

Retrieve all task types. 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

    Task types retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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




Get task type

View as Markdown
GET /data/task-types/{instance_id}

Retrieve a task type by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Task type retrieved successfully

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

    Invalid ID format or query error

GET /data/task-types/{instance_id}
curl \
 --request GET 'http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Animation",
  "for_entity": "Shot",
  "color": "#FF5733",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Delete task type

View as Markdown
DELETE /data/task-types/{instance_id}

Delete a task type by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Task type deleted successfully

  • 400

    Integrity error or cannot delete

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












Get task status

View as Markdown
GET /data/task-status/{instance_id}

Retrieve a task status by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Task status retrieved successfully

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

    Invalid ID format or query error

GET /data/task-status/{instance_id}
curl \
 --request GET 'http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "To Do",
  "short_name": "TODO",
  "color": "#FF5733",
  "is_default": false,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Delete task status

View as Markdown
DELETE /data/task-status/{instance_id}

Delete a task status by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Task status deleted successfully

  • 400

    Integrity error or cannot delete

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

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"
  ]
}




POST /data/tasks

Create a task with data provided in the request body. JSON format is expected. The task type must match the entity type.

application/json

Body Required

  • task_type_id string(uuid) Required
  • entity_id string(uuid) Required
  • assignees array[string(uuid)]

Responses

  • 201 application/json

    Task created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • task_type_id string(uuid)
    • entity_id string(uuid)
    • assignees array[string(uuid)]
  • 400

    Task type does not match entity type or task already exists

POST /data/tasks
curl \
 --request POST 'http://api.example.com/data/tasks' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"task_type_id":"a24a6ea4-ce75-4665-a070-57453082c25","entity_id":"b24a6ea4-ce75-4665-a070-57453082c25","assignees":["c24a6ea4-ce75-4665-a070-57453082c25"]}'
Request examples
{
  "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "assignees": [
    "c24a6ea4-ce75-4665-a070-57453082c25"
  ]
}
Response examples (201)
{
  "id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "assignees": [
    "c24a6ea4-ce75-4665-a070-57453082c25"
  ]
}
GET /data/tasks/{instance_id}

Retrieve a task by its ID and return it as a JSON object. Supports including relations. Requires project and entity access.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Task retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • task_type_id string(uuid)
    • entity_id string(uuid)
    • project_id string(uuid)
    • task_status_id string(uuid)
    • assignees array[string(uuid)]
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid ID format or query error

GET /data/tasks/{instance_id}
curl \
 --request GET 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "project_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "e24a6ea4-ce75-4665-a070-57453082c25",
  "assignees": [
    "f24a6ea4-ce75-4665-a070-57453082c25"
  ],
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
PUT /data/tasks/{instance_id}

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

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • task_status_id string(uuid)
  • assignees array[string(uuid)]
  • duration number

Responses

  • 200 application/json

    Task updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • task_type_id string(uuid)
    • entity_id string(uuid)
    • project_id string(uuid)
    • task_status_id string(uuid)
    • assignees array[string(uuid)]
    • duration number
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

PUT /data/tasks/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"task_status_id":"b24a6ea4-ce75-4665-a070-57453082c25","assignees":["c24a6ea4-ce75-4665-a070-57453082c25"],"duration":8.5}'
Request examples
{
  "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "assignees": [
    "c24a6ea4-ce75-4665-a070-57453082c25"
  ],
  "duration": 8.5
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "project_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "e24a6ea4-ce75-4665-a070-57453082c25",
  "assignees": [
    "f24a6ea4-ce75-4665-a070-57453082c25"
  ],
  "duration": 8.5,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}
DELETE /data/tasks/{instance_id}

Delete a task by its ID. Returns empty response on success. May require force flag if task has associated data.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • force boolean

    Force deletion even if task has associated data

Responses

  • 204

    Task deleted successfully

  • 400

    Integrity error or cannot delete

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

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
}

Create department

View as Markdown
POST /data/departments

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

application/json

Body Required

  • name string Required
  • color string

Responses

  • 201 application/json

    Department 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 validation error

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

Get department

View as Markdown
GET /data/departments/{instance_id}

Retrieve a department by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Department retrieved 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 ID format or query error

GET /data/departments/{instance_id}
curl \
 --request GET 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Animation",
  "color": "#FF5733",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Delete department

View as Markdown
DELETE /data/departments/{instance_id}

Delete a department by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Department deleted successfully

  • 400

    Integrity error or cannot delete

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

Get organisations

View as Markdown
GET /data/organisations

Retrieve all organisations. 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

    Organisations retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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
























Get file status

View as Markdown
GET /data/file-status/{instance_id}

Retrieve a file status by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    File status retrieved 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 ID format or query error

GET /data/file-status/{instance_id}
curl \
 --request GET 'http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Approved",
  "color": "#00FF00",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update file status

View as Markdown
PUT /data/file-status/{instance_id}

Update a file status with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • color string

Responses

  • 200 application/json

    File status updated 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 validation error

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




GET /data/softwares

Retrieve all entries for the given model. 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

    Models retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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








PUT /data/softwares/{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/softwares/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/softwares/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"
}
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"

Get hardware items

View as Markdown
GET /data/hardware-items

Retrieve all hardware items. 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

    Hardware items retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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




Get hardware item

View as Markdown
GET /data/hardware-items/{instance_id}

Retrieve a hardware item by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Hardware item retrieved successfully

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

    Invalid ID format or query error

GET /data/hardware-items/{instance_id}
curl \
 --request GET 'http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Workstation 01",
  "serial_number": "SN123456",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update hardware item

View as Markdown
PUT /data/hardware-items/{instance_id}

Update a hardware item with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • serial_number string

Responses

  • 200 application/json

    Hardware item updated successfully

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

    Invalid data format or validation error

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




GET /data/output-files

Retrieve all entries for the given model. 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

    Models retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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

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/output-files
curl \
 --request POST 'http://api.example.com/data/output-files' \
 --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"
}








DELETE /data/output-files/{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/output-files/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
GET /data/output-types

Retrieve all entries for the given model. 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

    Models retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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

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/output-types
curl \
 --request POST 'http://api.example.com/data/output-types' \
 --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"
}








DELETE /data/output-types/{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/output-types/{instance_id}
curl \
 --request DELETE 'http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"

Get preview files

View as Markdown
GET /data/preview-files

Retrieve all preview files. Supports filtering via query parameters and pagination. Includes project permission filtering. Vendor users only see assigned tasks.

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

    Preview files retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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












Delete preview file

View as Markdown
DELETE /data/preview-files/{instance_id}

Delete a preview file by its ID. Returns empty response on success. May require force flag if file has associated data.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • force boolean

    Force deletion even if file has associated data

Responses

  • 204

    Preview file deleted successfully

  • 400

    Integrity error or cannot delete

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












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"
}

Delete working file

View as Markdown
DELETE /data/working-files/{instance_id}

Delete a working file by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Working file deleted successfully

  • 400

    Integrity error or cannot delete

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




Create attachment file

View as Markdown
POST /data/attachment-files

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

application/json

Body Required

  • name string
  • comment_id string(uuid)

Responses

  • 201 application/json

    Attachment file created successfully

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

    Invalid data format or validation error

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




Update attachment file

View as Markdown
PUT /data/attachment-files/{instance_id}

Update an attachment file with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string

Responses

  • 200 application/json

    Attachment file 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/attachment-files/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"updated_attachment.pdf"}'
Request examples
{
  "name": "updated_attachment.pdf"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "updated_attachment.pdf",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}

Delete attachment file

View as Markdown
DELETE /data/attachment-files/{instance_id}

Delete an attachment file by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Attachment file deleted successfully

  • 400

    Integrity error or cannot delete

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




Create comment

View as Markdown
POST /data/comments

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

application/json

Body Required

  • object_id string(uuid) Required
  • person_id string(uuid) Required
  • task_status_id string(uuid) Required
  • text string

Responses

  • 201 application/json

    Comment created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • object_id string(uuid)
    • person_id string(uuid)
    • task_status_id string(uuid)
    • text string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/comments
curl \
 --request POST 'http://api.example.com/data/comments' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"object_id":"a24a6ea4-ce75-4665-a070-57453082c25","person_id":"b24a6ea4-ce75-4665-a070-57453082c25","task_status_id":"c24a6ea4-ce75-4665-a070-57453082c25","text":"Comment text"}'
Request examples
{
  "object_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "text": "Comment text"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "object_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "text": "Comment text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
GET /data/comments/{instance_id}

Retrieve a comment by its ID and return it as a JSON object. Supports including relations. Client users can only see their own comments or comments from other clients.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Comment retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • object_id string(uuid)
    • person_id string(uuid)
    • task_status_id string(uuid)
    • text string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid ID format or query error

GET /data/comments/{instance_id}
curl \
 --request GET 'http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "object_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "text": "Comment text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update comment

View as Markdown
PUT /data/comments/{instance_id}

Update a comment with data provided in the request body. JSON format is expected. May update task status if task_status_id is changed.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • text string
  • task_status_id string(uuid)
  • pinned boolean
  • checklist array[object]

Responses

  • 200 application/json

    Comment updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • object_id string(uuid)
    • person_id string(uuid)
    • task_status_id string(uuid)
    • text string
    • pinned boolean
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

PUT /data/comments/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"text":"Updated comment text","task_status_id":"b24a6ea4-ce75-4665-a070-57453082c25","pinned":true,"checklist":[{"text":"Item 1","checked":false}]}'
Request examples
{
  "text": "Updated comment text",
  "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "pinned": true,
  "checklist": [
    {
      "text": "Item 1",
      "checked": false
    }
  ]
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "object_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "task_status_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "text": "Updated comment text",
  "pinned": true,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}




Get time spents

View as Markdown
GET /data/time-spents/

Retrieve all time spent records. Supports filtering via query parameters and pagination. Supports date range filtering with start_date and end_date.

Query parameters

  • page integer

    Page number for pagination

  • limit integer

    Number of results per page

  • relations boolean

    Whether to include relations

  • start_date string(date)

    Start date for date range filter

  • end_date string(date)

    End date for date range filter

Responses

  • 200 application/json

    Time spent records retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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












Delete time spent

View as Markdown
DELETE /data/time-spents/{instance_id}

Delete a time spent record by its ID. Returns empty response on success. Updates task duration automatically.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Time spent record deleted successfully

  • 400

    Integrity error or cannot delete

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




Create day off

View as Markdown
POST /data/day-offs/

Create a new day off with data provided in the request body. JSON format is expected. Deletes overlapping time spent entries.

application/json

Body Required

  • date string(date) Required
  • end_date string(date) Required
  • person_id string(uuid) Required

Responses

  • 201 application/json

    Day off created successfully

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

    Invalid data format or day off already exists

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
















Create custom action

View as Markdown
POST /data/custom-actions/

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

application/json

Body Required

  • name string Required
  • url_pattern string

Responses

  • 201 application/json

    Custom action created successfully

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

    Invalid data format or validation error

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

Get custom action

View as Markdown
GET /data/custom-actions/{instance_id}

Retrieve a custom action by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Custom action retrieved successfully

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

    Invalid ID format or query error

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




Delete custom action

View as Markdown
DELETE /data/custom-actions/{instance_id}

Delete a custom action by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Custom action deleted successfully

  • 400

    Integrity error or cannot delete

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




















Get asset instances

View as Markdown
GET /data/asset-instances/

Retrieve all asset instances. 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

    Asset instances retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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




Get asset instance

View as Markdown
GET /data/asset-instances/{instance_id}

Retrieve an asset instance by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Asset instance retrieved successfully

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

    Invalid ID format or query error

GET /data/asset-instances/{instance_id}
curl \
 --request GET 'http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "asset_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Instance Name",
  "number": 1,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}








Get playlists

View as Markdown
GET /data/playlists/

Retrieve all playlists. 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

    Playlists retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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

Create playlist

View as Markdown
POST /data/playlists/

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

application/json

Body Required

  • name string Required
  • project_id string(uuid) Required
  • episode_id string(uuid)
  • task_type_id string(uuid)

Responses

  • 201 application/json

    Playlist created successfully

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

    Invalid data format or validation error

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




Update playlist

View as Markdown
PUT /data/playlists/{instance_id}

Update a playlist with data provided in the request body. JSON format is expected. Requires project access. Vendor access is blocked.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • shots array[object]
    Hide shots attributes Show shots attributes object
    • entity_id string(uuid)
    • preview_file_id string(uuid)

Responses

  • 200 application/json

    Playlist updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • name string
    • project_id string(uuid)
    • shots array[object]
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

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
















PUT /data/events/{instance_id}

Update an event with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string

Responses

  • 200 application/json

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

Delete an event by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Event deleted successfully

  • 400

    Integrity error or cannot delete

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








Get notification

View as Markdown
GET /data/notifications/{instance_id}

Retrieve a notification by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Notification retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • person_id string(uuid)
    • comment_id string(uuid)
    • read boolean
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid ID format or query error

GET /data/notifications/{instance_id}
curl \
 --request GET 'http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "comment_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "read": false,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update notification

View as Markdown
PUT /data/notifications/{instance_id}

Update a notification with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • read boolean

Responses

  • 200 application/json

    Notification updated successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • person_id string(uuid)
    • comment_id string(uuid)
    • read boolean
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

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












Get search filter

View as Markdown
GET /data/search-filters/{instance_id}

Retrieve a search filter by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Search filter retrieved successfully

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

    Invalid ID format or query error

GET /data/search-filters/{instance_id}
curl \
 --request GET 'http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "My Filter",
  "person_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "search_filter_group_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "list_type": "assets",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update search filter

View as Markdown
PUT /data/search-filters/{instance_id}

Update a search filter with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • list_type string

Responses

  • 200 application/json

    Search filter updated successfully

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

    Invalid data format or validation error

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
































Get schedule item

View as Markdown
GET /data/schedule-items/{instance_id}

Retrieve a schedule item by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Schedule item retrieved successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • project_id string(uuid)
    • task_type_id string(uuid)
    • object_id string(uuid)
    • man_days number
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid ID format or query error

GET /data/schedule-items/{instance_id}
curl \
 --request GET 'http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "object_id": "d24a6ea4-ce75-4665-a070-57453082c25",
  "man_days": 10.5,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Delete schedule item

View as Markdown
DELETE /data/schedule-items/{instance_id}

Delete a schedule item by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Schedule item deleted successfully

  • 400

    Integrity error or cannot delete

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




POST /data/news/

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

application/json

Body Required

  • title string Required
  • project_id string(uuid) Required
  • content string

Responses

  • 201 application/json

    News entry created successfully

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

    Invalid data format or validation error

POST /data/news/
curl \
 --request POST 'http://api.example.com/data/news/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"title":"Project Update","project_id":"a24a6ea4-ce75-4665-a070-57453082c25","content":"News content text"}'
Request examples
{
  "title": "Project Update",
  "project_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "content": "News content text"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "title": "Project Update",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "content": "News content text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
GET /data/news/{instance_id}

Retrieve a news entry by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    News entry retrieved successfully

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

    Invalid ID format or query error

GET /data/news/{instance_id}
curl \
 --request GET 'http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "title": "Project Update",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "content": "News content text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
PUT /data/news/{instance_id}

Update a news entry with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • title string
  • content string

Responses

  • 200 application/json

    News entry updated successfully

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

    Invalid data format or validation error

PUT /data/news/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"title":"Updated Project Update","content":"Updated news content text"}'
Request examples
{
  "title": "Updated Project Update",
  "content": "Updated news content text"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "title": "Updated Project Update",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "content": "Updated news content text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00: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"
}

Get metadata descriptor

View as Markdown
GET /data/metadata-descriptors/{instance_id}

Retrieve a metadata descriptor by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Metadata descriptor retrieved 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 ID format or query error

GET /data/metadata-descriptors/{instance_id}
curl \
 --request GET 'http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25' \
 --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",
  "entity_type": "Asset",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}








Get subscriptions

View as Markdown
GET /data/subscriptions/

Retrieve all subscriptions. 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

    Subscriptions retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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












Delete subscription

View as Markdown
DELETE /data/subscriptions/{instance_id}

Delete a subscription by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Subscription deleted successfully

  • 400

    Integrity error or cannot delete

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




Create entity link

View as Markdown
POST /data/entity-links/

Create a new entity link with data provided in the request body. JSON format is expected. Links entities together in casting relationships.

application/json

Body Required

  • entity_in_id string(uuid) Required
  • entity_out_id string(uuid) Required
  • nb_occurences integer

    Default value is 1.

  • label string

Responses

  • 201 application/json

    Entity link created successfully

    Hide response attributes Show response attributes object
    • id string(uuid)
    • entity_in_id string(uuid)
    • entity_out_id string(uuid)
    • nb_occurences integer
    • label string
    • created_at string(date-time)
    • updated_at string(date-time)
  • 400

    Invalid data format or validation error

POST /data/entity-links/
curl \
 --request POST 'http://api.example.com/data/entity-links/' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"entity_in_id":"a24a6ea4-ce75-4665-a070-57453082c25","entity_out_id":"b24a6ea4-ce75-4665-a070-57453082c25","nb_occurences":1,"label":"fixed"}'
Request examples
{
  "entity_in_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_out_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "nb_occurences": 1,
  "label": "fixed"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_in_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_out_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "nb_occurences": 1,
  "label": "fixed",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Get entity link

View as Markdown
GET /data/entity-links/{instance_id}

Retrieve an entity link by its ID and return it as a JSON object. Supports including relations.

GET /data/entity-links/{instance_id}
curl \
 --request GET 'http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "entity_in_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "entity_out_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "nb_occurences": 1,
  "label": "fixed",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}




Delete entity link

View as Markdown
DELETE /data/entity-links/{instance_id}

Delete an entity link by its ID. Returns empty response on success.

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




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"
}
GET /data/chats/{instance_id}

Retrieve a chat by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Chat retrieved 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 ID format or query error

GET /data/chats/{instance_id}
curl \
 --request GET 'http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "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"
}
PUT /data/chats/{instance_id}

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

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string

Responses

  • 200 application/json

    Chat updated 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

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
















Update chat message

View as Markdown
PUT /data/chat-messages/{instance_id}

Update a chat message with data provided in the request body. JSON format is expected.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • text string

Responses

  • 200 application/json

    Chat message updated successfully

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

    Invalid data format or validation error

PUT /data/chat-messages/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"text":"Updated message text"}'
Request examples
{
  "text": "Updated message text"
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "chat_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "person_id": "c24a6ea4-ce75-4665-a070-57453082c25",
  "text": "Updated message text",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00:00Z"
}












Get preview background file

View as Markdown
GET /data/preview-background-files/{instance_id}

Retrieve a preview background file by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Preview background file retrieved successfully

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

    Invalid ID format or query error

GET /data/preview-background-files/{instance_id}
curl \
 --request GET 'http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "background_file_name",
  "is_default": false,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Update preview background file

View as Markdown
PUT /data/preview-background-files/{instance_id}

Update a preview background file with data provided in the request body. JSON format is expected. Names must be unique. If is_default is set to true, resets other defaults.

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • is_default boolean

Responses

  • 200 application/json

    Preview background file updated successfully

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

    Invalid data format or name already exists

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

Delete preview background file

View as Markdown
DELETE /data/preview-background-files/{instance_id}

Delete a preview background file by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Preview background file deleted successfully

  • 400

    Integrity error or cannot delete

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

Retrieve all studios. 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

    Studios retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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












Delete studio

View as Markdown
DELETE /data/studios/{instance_id}

Delete a studio by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Studio deleted successfully

  • 400

    Integrity error or cannot delete

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
















Delete salary scale

View as Markdown
DELETE /data/salary-scales/{instance_id}

Delete a salary scale by its ID. Returns empty response on success.

Path parameters

  • instance_id string(uuid) Required

Responses

  • 204

    Salary scale deleted successfully

  • 400

    Integrity error or cannot delete

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

Retrieve a plugin by its ID and return it as a JSON object. Supports including relations.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Plugin retrieved 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 ID format or query error

GET /data/plugins/{instance_id}
curl \
 --request GET 'http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "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"
}

Update plugin

View as Markdown
PUT /data/plugins/{instance_id}

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

Path parameters

  • instance_id string(uuid) Required
application/json

Body Required

  • name string
  • active boolean

Responses

  • 200 application/json

    Plugin updated 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

PUT /data/plugins/{instance_id}
curl \
 --request PUT 'http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Updated Plugin Name","active":true}'
Request examples
{
  "name": "Updated Plugin Name",
  "active": true
}
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Updated Plugin Name",
  "active": true,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T11:00: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

View as Markdown
POST /data/production-schedule-versions

Create a new production schedule version 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

Responses

  • 201 application/json

    Production schedule version created successfully

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

    Invalid data format or validation error

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

Get production schedule version

View as Markdown
GET /data/production-schedule-versions/{instance_id}

Retrieve a production schedule version by its ID and return it as a JSON object. Supports including relations. Vendor and client access is blocked. Requires project access.

Path parameters

  • instance_id string(uuid) Required

Query parameters

  • relations boolean

    Whether to include relations

Responses

  • 200 application/json

    Production schedule version retrieved successfully

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

    Invalid ID format or query error

GET /data/production-schedule-versions/{instance_id}
curl \
 --request GET 'http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Schedule Version 1",
  "project_id": "b24a6ea4-ce75-4665-a070-57453082c25",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
















Delete production schedule version task link

View as Markdown
DELETE /data/production-schedule-version-task-links/{instance_id}

Delete a production schedule version task link by its ID. Returns empty response on success. Requires manager access to the project.

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








Departments

View as Markdown

Department management and organizational structure





Add software license to department

View as Markdown
POST /data/departments/{department_id}/software-licenses

Associate a software license with a specific department. This allows the department to use the specified software in budget forecasting.

Path parameters

  • department_id Required

    Unique identifier of the department

application/json

Body Required

  • software_id string(uuid) Required

    Software identifier to add to department

Responses

  • 201 application/json

    Software license successfully added to department

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

      Software license department link unique identifier

    • department_id string(uuid)

      Department identifier

    • software_id string(uuid)

      Software license identifier

    • created_at string(date-time)

      Creation timestamp

POST /data/departments/{department_id}/software-licenses
curl \
 --request POST 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"software_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "software_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (201)
{
  "id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "department_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "software_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "created_at": "2023-01-01T12:00:00Z"
}

Get department software licenses

View as Markdown
GET /data/departments/{department_id}/software-licenses/{software_id}

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

Path parameters

  • department_id Required

    Unique identifier of the department

Responses

  • 200 application/json

    Department software licenses successfully retrieved

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

      Software license unique identifier

    • name string

      Software license name

    • short_name string

      Software license short name

    • file_extension string

      Default file extension for the software license

    • 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}/software-licenses/{software_id}
curl \
 --request GET 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/{software_id}' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Maya",
    "short_name": "MAYA",
    "file_extension": ".ma",
    "department_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]

Remove software license from department

View as Markdown
DELETE /data/departments/{department_id}/software-licenses/{software_id}

Remove a software license from a specific department. This disassociates the software license from the department.

Path parameters

  • department_id Required

    Unique identifier of the department

  • software_id Required

    Unique identifier of the software license to remove

Responses

  • 204

    Software license successfully removed from department

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

Get all department hardware items

View as Markdown
GET /data/departments/hardware-items

Retrieve all hardware items organized by department. Returns a dictionary where each department contains its associated hardware items.

Responses

  • 200 application/json

    Department hardware items successfully retrieved

    Hide response attribute Show response attribute object
    • * array[object] Additional properties
      Hide * attributes Show * 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/hardware-items
curl \
 --request GET 'http://api.example.com/data/departments/hardware-items' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "additionalProperty1": [
    {
      "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"
    }
  ],
  "additionalProperty2": [
    {
      "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"
    }
  ]
}

Add hardware item to department

View as Markdown
POST /data/departments/{department_id}/hardware-items

Associate a hardware item with a specific department. This allows the department to use the specified hardware in budget forecasting.

Path parameters

  • department_id Required

    Unique identifier of the department

application/json

Body Required

  • hardware_item_id string(uuid) Required

    Hardware item identifier to add to department

Responses

  • 201 application/json

    Hardware item successfully added to department

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

      Hardware department link unique identifier

    • department_id string(uuid)

      Department identifier

    • hardware_item_id string(uuid)

      Hardware item identifier

    • created_at string(date-time)

      Creation timestamp

POST /data/departments/{department_id}/hardware-items
curl \
 --request POST 'http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"hardware_item_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "hardware_item_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (201)
{
  "id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "department_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "hardware_item_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "created_at": "2023-01-01T12:00: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"

Edits

View as Markdown

Edit management for post-production workflows









Get edits and tasks

View as Markdown
GET /data/edits/with-tasks

Retrieve all edits with project name and all related tasks.

Query parameters

  • project_id

    Filter edits by specific project

  • name

    Filter edits by name

  • force

    Force parameter for additional filtering

Responses

  • 200 application/json

    Edits with tasks 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

    • project_name string

      Project name

    • episode_id string(uuid)

      Episode identifier

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

        Task unique identifier

      • name string

        Task name

      • task_type_id string(uuid)

        Task type identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/edits/with-tasks
curl \
 --request GET 'http://api.example.com/data/edits/with-tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Opening Sequence",
    "description": "Main opening sequence edit",
    "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "project_name": "My Animation Project",
    "episode_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "tasks": [
      {
        "id": "d57d9hd7-fh08-7998-d403-80786315f58",
        "name": "Edit Task",
        "task_type_id": "e68e0ie8-gi19-8009-e514-91897426g69"
      }
    ],
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]












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 edit previews

View as Markdown
GET /data/edits/{edit_id}/preview-files

Retrieve all preview files related to a specific edit. Returns them as a dictionary where keys are related task type IDs and values are arrays of previews for that task type.

Path parameters

  • edit_id Required

    Unique identifier of the edit

Responses

  • 200 application/json

    Edit previews successfully retrieved

    Hide response attribute Show response attribute object
    • * array[object] Additional properties
      Hide * attributes Show * attributes object
      • id string(uuid)

        Preview unique identifier

      • name string

        Preview name

      • original_name string

        Original file name

      • file_path string

        File path

      • task_type_id string(uuid)

        Task type identifier

      • created_at string(date-time)

        Creation timestamp

GET /data/edits/{edit_id}/preview-files
curl \
 --request GET 'http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/preview-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "additionalProperty1": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "name": "edit_preview_01",
      "original_name": "edit_sequence.mov",
      "file_path": "/previews/edit/edit_preview_01.mov",
      "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "created_at": "2023-01-01T12:00:00Z"
    }
  ],
  "additionalProperty2": [
    {
      "id": "b35b7fb5-df86-5776-b181-68564193d36",
      "name": "edit_preview_01",
      "original_name": "edit_sequence.mov",
      "file_path": "/previews/edit/edit_preview_01.mov",
      "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47",
      "created_at": "2023-01-01T12:00: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 project edits

View as Markdown
GET /data/projects/{project_id}/edits

Retrieve all edits that are related to a specific project.

Path parameters

  • project_id Required

    Unique identifier of the project

Responses

  • 200 application/json

    List of project 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/projects/{project_id}/edits
curl \
 --request GET 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Opening Sequence",
    "description": "Main opening sequence 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"
  }
]
POST /data/projects/{project_id}/edits

Create a new edit for a specific project with name, description, and optional episode association.

Path parameters

  • project_id Required

    Unique identifier of the project

application/json

Body Required

  • name string Required

    Edit name

  • description string

    Edit description

  • data object

    Additional edit data

  • episode_id string(uuid)

    Episode identifier (optional)

Responses

  • 201 application/json

    Edit successfully created

    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

    • data object

      Additional edit data

    • created_by string(uuid)

      Creator person identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

POST /data/projects/{project_id}/edits
curl \
 --request POST 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"Opening Sequence","description":"Main opening sequence edit","data":{"fps":24,"duration":120},"episode_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "name": "Opening Sequence",
  "description": "Main opening sequence edit",
  "data": {
    "fps": 24,
    "duration": 120
  },
  "episode_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "Opening Sequence",
  "description": "Main opening sequence edit",
  "project_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "episode_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "data": {
    "fps": 24,
    "duration": 120
  },
  "created_by": "d57d9hd7-fh08-7998-d403-80786315f58",
  "created_at": "2023-01-01T12:00:00Z",
  "updated_at": "2023-01-01T12:00:00Z"
}









Get entity time spent

View as Markdown
GET /data/entities/{entity_id}/time-spents

Retrieve all time spent entries that are linked to a specific entity.

Path parameters

  • entity_id Required

    Unique identifier of the entity

Responses

  • 200 application/json

    List of entity time spent entries successfully retrieved

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

      Time spent unique identifier

    • duration number(float)

      Time duration in hours

    • date string(date)

      Date when time was spent

    • created_at string(date-time)

      Creation timestamp

    • person_id string(uuid)

      Person identifier who spent the time

    • entity_id string(uuid)

      Entity identifier

GET /data/entities/{entity_id}/time-spents
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/time-spents' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "duration": 2.5,
    "date": "2023-12-07",
    "created_at": "2023-01-01T12:00:00Z",
    "person_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "entity_id": "c46c8gc6-eg97-6887-c292-79675204e47"
  }
]

Get linked entities

View as Markdown
GET /data/entities/{entity_id}/entities-linked/with-tasks

Retrieve all entities that are linked to a specific entity along with their associated tasks. This includes related entities, dependencies, and hierarchical relationships.

Path parameters

  • entity_id Required

    Unique identifier of the entity

Responses

  • 200 application/json

    List of linked entities successfully retrieved

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

      Entity unique identifier

    • name string

      Entity name

    • entity_type_id string(uuid)

      Entity type identifier

    • project_id string(uuid)

      Project identifier

    • parent_id string(uuid)

      Parent entity identifier

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

        Task unique identifier

      • name string

        Task name

      • task_type_id string(uuid)

        Task type identifier

GET /data/entities/{entity_id}/entities-linked/with-tasks
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/entities-linked/with-tasks' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Character Model",
    "entity_type_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "project_id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "parent_id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "tasks": [
      {
        "id": "e68e0ie8-gi19-8009-e514-91897426g69",
        "name": "Modeling Task",
        "task_type_id": "f79f1jf9-hj20-9010-f625-02998537h80"
      }
    ]
  }
]









Export

View as Markdown

Data export functionality for reports and integrations





























Export tasks csv

View as Markdown
GET /export/csv/tasks.csv

Responses

  • 200 text/csv

    Tasks exported as CSV successfully

GET /export/csv/tasks.csv
curl \
 --request GET 'http://api.example.com/export/csv/tasks.csv' \
 --header "Authorization: $API_KEY"
Response examples (200)
Project,Task Type,Episode,Sequence,Entity Type,Entity,Assigner,Assignees,Duration,Estimation,Start date,Due date,WIP date,Validation date,Task Status Project A,Animation,EP01,SQ01,Shot,SH010,John Doe,Jane Doe,480,600,2024-01-01,2024-01-15,2024-01-05,2024-01-20,WIP




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

Files

View as Markdown

File management, uploads, and storage operations

Get file information

View as Markdown
GET /data/files/{file_id}

Retrieve information about a file that could be either a working file or an output file. Returns detailed file metadata and properties.

Path parameters

  • file_id string(uuid) Required

    File unique identifier

Responses

  • 200 application/json

    File information retrieved successfully

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

      File unique identifier

    • name string

      File name

    • path string

      File path

    • revision integer

      File revision

    • updated_at string(date-time)

      Last update timestamp

    • task_id string(uuid)

      Task identifier (for working files)

    • entity_id string(uuid)

      Entity identifier (for output files)

GET /data/files/{file_id}
curl \
 --request GET 'http://api.example.com/data/files/a24a6ea4-ce75-4665-a070-57453082c25' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "id": "b35b7fb5-df86-5776-b181-68564193d36",
  "name": "main",
  "path": "/project/asset/working/main_v001.blend",
  "revision": 1,
  "updated_at": "2023-01-01T12:00:00Z",
  "task_id": "c46c8gc6-eg97-6887-c292-79675204e47",
  "entity_id": "d57d9hd7-fh08-7998-d403-80786315f58"
}








Get last working files

View as Markdown
GET /data/tasks/{task_id}/working-files/last-revisions

Retrieve the last working file revisions for each file name for a given task. Returns the most recent version of each working file.

Path parameters

  • task_id string(uuid) Required

    Task unique identifier

Responses

  • 200 application/json

    Last working file revisions for each file name

    Hide response attribute Show response attribute object
    • * object Additional properties
      Hide * attributes Show * attributes object
      • id string(uuid)

        Working file unique identifier

      • name string

        Working file name

      • revision integer

        Working file revision

      • updated_at string(date-time)

        Last update timestamp

GET /data/tasks/{task_id}/working-files/last-revisions
curl \
 --request GET 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/last-revisions' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "additionalProperty1": {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "main",
    "revision": 3,
    "updated_at": "2023-01-01T12:00:00Z"
  },
  "additionalProperty2": {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "main",
    "revision": 3,
    "updated_at": "2023-01-01T12:00:00Z"
  }
}

Generate working file path

View as Markdown
POST /data/tasks/{task_id}/working-file-path

Generate a working file path from file tree template based on task parameters. Revision can be computed automatically if not provided.

Path parameters

  • task_id string(uuid) Required

    Task unique identifier

application/json

Body Required

  • name string

    File name

    Default value is main.

  • mode string

    File mode

    Default value is working.

  • software_id string(uuid)

    Software identifier

  • comment string

    File comment

  • revision integer

    File revision number

  • separator string

    Path separator

    Default value is /.

Responses

  • 200 application/json

    Working file path generated successfully

    Hide response attributes Show response attributes object
    • path string

      Generated file path

    • name string

      Generated file name

  • 400

    Malformed file tree

POST /data/tasks/{task_id}/working-file-path
curl \
 --request POST 'http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-file-path' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"main","mode":"working","software_id":"a24a6ea4-ce75-4665-a070-57453082c25","comment":"Updated lighting","revision":1,"separator":"/"}'
Request examples
{
  "name": "main",
  "mode": "working",
  "software_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "comment": "Updated lighting",
  "revision": 1,
  "separator": "/"
}
Response examples (200)
{
  "path": "/project/asset/working/main_v001.blend",
  "name": "main_v001.blend"
}




Get next instance output file revision

View as Markdown
POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/next-revision

Get the next revision number for an output file based on asset instance, output type, task type, and name. Used for automatic revision numbering.

Path parameters

  • asset_instance_id string(uuid) Required

    Asset instance unique identifier

  • temporal_entity_id string(uuid) Required

    Temporal entity unique identifier

application/json

Body Required

  • name string

    File name

    Default value is main.

  • output_type_id string(uuid) Required

    Output type identifier

  • task_type_id string(uuid) Required

    Task type identifier

Responses

  • 200 application/json

    Next revision number for the instance output file

    Hide response attribute Show response attribute object
    • next_revision integer

      Next available revision number

POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/next-revision
curl \
 --request POST 'http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/next-revision' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"main","output_type_id":"a24a6ea4-ce75-4665-a070-57453082c25","task_type_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "name": "main",
  "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (200)
{
  "next_revision": 2
}








Get instance output type files

View as Markdown
GET /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-types/{output_type_id}/output-files

Retrieve all output files for a given asset instance, temporal entity, and output type. Optionally filter by representation.

Path parameters

  • asset_instance_id string(uuid) Required

    Asset instance unique identifier

  • temporal_entity_id string(uuid) Required

    Temporal entity unique identifier

  • output_type_id string(uuid) Required

    Output type unique identifier

Query parameters

  • representation string

    Filter by representation

Responses

  • 200 application/json

    All output files for the asset instance and output type

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

      Output file unique identifier

    • name string

      Output file name

    • revision integer

      Output file revision

    • path string

      Output file path

    • updated_at string(date-time)

      Last update timestamp

    • asset_instance_id string(uuid)

      Asset instance identifier

    • temporal_entity_id string(uuid)

      Temporal entity identifier

GET /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-types/{output_type_id}/output-files
curl \
 --request GET 'http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types/c46c8gc6-eg97-6887-c292-79675204e47/output-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "name": "main",
    "revision": 1,
    "path": "/project/asset/instance/output/main_v001.mp4",
    "updated_at": "2023-01-01T12:00:00Z",
    "asset_instance_id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "temporal_entity_id": "f79f1jf9-hj20-9010-f625-a09008537h80"
  }
]

Generate instance output file path

View as Markdown
POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-file-path

Generate an output file path from file tree template based on asset instance parameters. Revision can be computed automatically if not provided.

Path parameters

  • asset_instance_id string(uuid) Required

    Asset instance unique identifier

  • temporal_entity_id string(uuid) Required

    Temporal entity unique identifier

application/json

Body Required

  • name string

    File name

    Default value is main.

  • mode string

    File mode

    Default value is output.

  • output_type_id string(uuid) Required

    Output type identifier

  • task_type_id string(uuid) Required

    Task type identifier

  • extension string

    File extension

  • representation string

    File representation

  • revision integer

    File revision number

  • separator string

    Path separator

    Default value is /.

Responses

  • 200 application/json

    Output file path generated successfully

    Hide response attributes Show response attributes object
    • folder_path string

      Generated folder path

    • file_name string

      Generated file name

POST /data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-file-path
curl \
 --request POST 'http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-file-path' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"main","mode":"output","output_type_id":"a24a6ea4-ce75-4665-a070-57453082c25","task_type_id":"b35b7fb5-df86-5776-b181-68564193d36","extension":".mp4","representation":"mp4","revision":1,"separator":"/"}'
Request examples
{
  "name": "main",
  "mode": "output",
  "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "extension": ".mp4",
  "representation": "mp4",
  "revision": 1,
  "separator": "/"
}
Response examples (200)
{
  "folder_path": "/project/asset/instance/output",
  "file_name": "main_v001.mp4"
}

Get entity working files

View as Markdown
GET /data/entities/{entity_id}/working-files

Retrieve all working files for a given entity with optional filtering by task and name. Returns complete list of working files with their revisions.

Path parameters

  • entity_id string(uuid) Required

    Entity unique identifier

Query parameters

  • task_id string(uuid)

    Filter by task

  • name string

    Filter by file name

Responses

  • 200 application/json

    All working files for the entity

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

      Working file unique identifier

    • name string

      Working file name

    • revision integer

      Working file revision

    • path string

      Working file path

    • updated_at string(date-time)

      Last update timestamp

    • task_id string(uuid)

      Task identifier

    • entity_id string(uuid)

      Entity identifier

GET /data/entities/{entity_id}/working-files
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/working-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "c46c8gc6-eg97-6887-c292-79675204e47",
    "name": "main",
    "revision": 1,
    "path": "/project/asset/working/main_v001.blend",
    "updated_at": "2023-01-01T12:00:00Z",
    "task_id": "d57d9hd7-fh08-7998-d403-80786315f58",
    "entity_id": "e68e0ie8-gi19-8009-e514-91897426g69"
  }
]












Get entity output types

View as Markdown
GET /data/entities/{entity_id}/output-types

Retrieve all types of output files generated for a given entity. Returns list of output types available for the entity.

Path parameters

  • entity_id string(uuid) Required

    Entity unique identifier

Responses

  • 200 application/json

    All types of output files generated for the entity

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

      Output type unique identifier

    • name string

      Output type name

    • short_name string

      Output type short name

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

GET /data/entities/{entity_id}/output-types
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "name": "Cache",
    "short_name": "CACHE",
    "created_at": "2023-01-01T12:00:00Z",
    "updated_at": "2023-01-01T12:30:00Z"
  }
]




Get entity output files

View as Markdown
GET /data/entities/{entity_id}/output-files

Retrieve all output files for a given entity with optional filtering by output type, task type, representation, file status, and name.

Path parameters

  • entity_id string(uuid) Required

    Entity unique identifier

Query parameters

  • output_type_id string(uuid)

    Filter by output type

  • task_type_id string(uuid)

    Filter by task type

  • file_status_id string(uuid)

    Filter by file status

  • representation string

    Filter by representation

  • name string

    Filter by file name

Responses

  • 200 application/json

    All output files for the entity

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

      Output file unique identifier

    • name string

      Output file name

    • revision integer

      Output file revision

    • path string

      Output file path

    • updated_at string(date-time)

      Last update timestamp

    • entity_id string(uuid)

      Entity identifier

GET /data/entities/{entity_id}/output-files
curl \
 --request GET 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "e68e0ie8-gi19-8009-e514-91897426g69",
    "name": "main",
    "revision": 1,
    "path": "/project/asset/output/main_v001.mp4",
    "updated_at": "2023-01-01T12:00:00Z",
    "entity_id": "f79f1jf9-hj20-9010-f625-a09008537h80"
  }
]








Generate entity output file path

View as Markdown
POST /data/entities/{entity_id}/output-file-path

Generate an output file path from file tree template based on entity parameters. Revision can be computed automatically if not provided.

Path parameters

  • entity_id string(uuid) Required

    Entity unique identifier

application/json

Body Required

  • name string

    File name

    Default value is main.

  • mode string

    File mode

    Default value is output.

  • output_type_id string(uuid) Required

    Output type identifier

  • task_type_id string(uuid) Required

    Task type identifier

  • extension string

    File extension

  • representation string

    File representation

  • revision integer

    File revision number

  • separator string

    Path separator

    Default value is /.

Responses

  • 200 application/json

    Output file path generated successfully

    Hide response attributes Show response attributes object
    • folder_path string

      Generated folder path

    • file_name string

      Generated file name

  • 400

    Malformed file tree

POST /data/entities/{entity_id}/output-file-path
curl \
 --request POST 'http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-file-path' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"name":"main","mode":"output","output_type_id":"a24a6ea4-ce75-4665-a070-57453082c25","task_type_id":"a24a6ea4-ce75-4665-a070-57453082c25","extension":".mp4","representation":"mp4","revision":1,"separator":"/"}'
Request examples
{
  "name": "main",
  "mode": "output",
  "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "extension": ".mp4",
  "representation": "mp4",
  "revision": 1,
  "separator": "/"
}
Response examples (200)
{
  "folder_path": "/project/asset/output",
  "file_name": "main_v001.mp4"
}




Download working file

View as Markdown
GET /data/working-files/{working_file_id}/file

Download a working file from storage. Returns the file content with appropriate headers for caching and attachment.

Path parameters

  • working_file_id string(uuid) Required

    Working file unique identifier

Responses

GET /data/working-files/{working_file_id}/file
curl \
 --request GET 'http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file' \
 --header "Authorization: $API_KEY"
Response examples (200)
binary data

Store working file

View as Markdown
POST /data/working-files/{working_file_id}/file

Store a working file in the file storage system. Uploads the file content and associates it with the working file record.

Path parameters

  • working_file_id string(uuid) Required

    Working file unique identifier

multipart/form-data

Body Required

  • file string(binary) Required

    Working file to upload

Responses

  • 201 application/json

    Working file stored successfully

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

      Working file unique identifier

    • name string

      Working file name

    • path string

      Working file path

    • revision integer

      Working file revision

    • task_id string(uuid)

      Task identifier

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Last update timestamp

POST /data/working-files/{working_file_id}/file
curl \
 --request POST 'http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: multipart/form-data" \
 --form "file=file content"
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "name": "main",
  "path": "/project/asset/working/main_v001.blend",
  "revision": 1,
  "task_id": "b35b7fb5-df86-5776-b181-68564193d36",
  "created_at": "2023-01-01T12:00:00Z",
  "updated_at": "2023-01-01T12:30:00Z"
}





















Import shotgun episodes

View as Markdown
POST /import/shotgun/episodes

Import Shotgun episodes. Send a list of Shotgun episode entries in the JSON body. Returns created or updated episodes.

application/json

Body Required

  • id integer

    Shotgun ID of the episode

  • code string

    Episode code

  • description string

    Episode description

  • project object

    Project information

    Hide project attribute Show project attribute object
    • name string

Responses

  • 200 application/json

    Episodes imported successfully

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

      Episode unique identifier

    • name string

      Episode name

    • 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/episodes
curl \
 --request POST 'http://api.example.com/import/shotgun/episodes' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"code":"EP01","project":{"name":"My Project"},"description":"First episode"}]'
Request example
[
  {
    "id": 12345,
    "code": "EP01",
    "project": {
      "name": "My Project"
    },
    "description": "First episode"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "EP01",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]

Import shotgun sequences

View as Markdown
POST /import/shotgun/sequences

Import Shotgun sequences. Send a list of Shotgun sequence entries in the JSON body. Returns created or updated sequences linked to episodes.

application/json

Body Required

  • id integer

    Shotgun ID of the sequence

  • code string

    Sequence code

  • description string

    Sequence description

  • project object

    Project information

    Hide project attribute Show project attribute object
    • name string
  • episode object

    Episode information

    Hide episode attribute Show episode attribute object
    • id integer

Responses

  • 200 application/json

    Sequences imported successfully

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

      Sequence unique identifier

    • name string

      Sequence name

    • 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/sequences
curl \
 --request POST 'http://api.example.com/import/shotgun/sequences' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"code":"SQ01","episode":{"id":11111},"project":{"name":"My Project"},"description":"Main sequence"}]'
Request example
[
  {
    "id": 12345,
    "code": "SQ01",
    "episode": {
      "id": 11111
    },
    "project": {
      "name": "My Project"
    },
    "description": "Main sequence"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "SQ01",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]












Import shotgun steps

View as Markdown
POST /import/shotgun/steps

Import Shotgun steps (task types). Send a list of Shotgun step entries in the JSON body. Returns created or updated task types with departments.

application/json

Body Required

  • id integer

    Shotgun ID of the step

  • code string

    Step code (used to extract department)

  • short_name string

    Step short name

  • color string

    Color in RGB format

  • entity_type string

    Entity type this step applies to

Responses

  • 200 application/json

    Task types imported successfully

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

      Task type unique identifier

    • name string

      Task type name

    • short_name string

      Task type short name

    • color string

      Task type color in hex format

    • for_entity string

      Entity type

    • 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/steps
curl \
 --request POST 'http://api.example.com/import/shotgun/steps' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"code":"Animation Modeling","color":"255,128,0","short_name":"mod","entity_type":"Asset"}]'
Request example
[
  {
    "id": 12345,
    "code": "Animation Modeling",
    "color": "255,128,0",
    "short_name": "mod",
    "entity_type": "Asset"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "Animation Modeling",
    "short_name": "mod",
    "color": "#FF8000",
    "for_entity": "Asset",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]

Import shotgun task statuses

View as Markdown
POST /import/shotgun/status

Import Shotgun task statuses. Send a list of Shotgun status entries in the JSON body. Returns created or updated task statuses with colors.

application/json

Body Required

  • id integer

    Shotgun ID of the status

  • name string

    Status name

  • code string

    Status short code

  • bg_color string

    Background color in RGB format

Responses

  • 200 application/json

    Task statuses imported successfully

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

      Task status unique identifier

    • name string

      Status name

    • short_name string

      Status short code

    • color string

      Status color in hex format

    • 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/status
curl \
 --request POST 'http://api.example.com/import/shotgun/status' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"code":"IP","name":"In Progress","bg_color":"255,128,0"}]'
Request example
[
  {
    "id": 12345,
    "code": "IP",
    "name": "In Progress",
    "bg_color": "255,128,0"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "In Progress",
    "short_name": "IP",
    "color": "#FF8000",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]




















Import shotgun project connections

View as Markdown
POST /import/shotgun/projectconnections

Import Shotgun project-user connections. Send a list of Shotgun project connection entries in the JSON body. Returns projects with team members added.

application/json

Body Required

  • id integer

    Shotgun ID of the connection

  • project object

    Project information

    Hide project attribute Show project attribute object
    • id integer
  • user object

    User information

    Hide user attribute Show user attribute object
    • id integer

Responses

  • 200 application/json

    Project connections imported successfully

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

      Project unique identifier

    • name string

      Project name

    • team array[string(uuid)]

      Team member IDs

    • 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/projectconnections
curl \
 --request POST 'http://api.example.com/import/shotgun/projectconnections' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"user":{"id":22222},"project":{"id":11111}}]'
Request example
[
  {
    "id": 12345,
    "user": {
      "id": 22222
    },
    "project": {
      "id": 11111
    }
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "name": "My Project",
    "team": [
      "b35b7fb5-df86-5776-b181-68564193d36"
    ],
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  }
]




Remove shotgun project

View as Markdown
POST /import/shotgun/remove/project

Remove a Shotgun project from the database. Provide the Shotgun entry ID in the JSON body.

application/json

Body Required

  • id integer Required

    Shotgun ID of the project to remove

Responses

  • 200 application/json

    Removal result returned

    Hide response attributes Show response attributes object
    • success boolean

      Whether the removal was successful

    • removed_instance_id string(uuid)

      ID of the removed project, if found

  • 400

    Invalid request body or instance not found

POST /import/shotgun/remove/project
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/project' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"id":12345}'
Request example
{
  "id": 12345
}
Response examples (200)
{
  "success": true,
  "removed_instance_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}

Remove shotgun person

View as Markdown
POST /import/shotgun/remove/person

Remove a Shotgun person (user) from the database. Provide the Shotgun entry ID in the JSON body.

application/json

Body Required

  • id integer Required

    Shotgun ID of the person to remove

Responses

  • 200 application/json

    Removal result returned

    Hide response attributes Show response attributes object
    • success boolean

      Whether the removal was successful

    • removed_instance_id string(uuid)

      ID of the removed person, if found

  • 400

    Invalid request body or instance not found

POST /import/shotgun/remove/person
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/person' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"id":12345}'
Request example
{
  "id": 12345
}
Response examples (200)
{
  "success": true,
  "removed_instance_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}




















Remove shotgun project connection

View as Markdown
POST /import/shotgun/remove/projectconnection

Remove a Shotgun project-user connection from the database. Provide the Shotgun entry ID in the JSON body.

application/json

Body Required

  • id integer Required

    Shotgun ID of the connection to remove

Responses

  • 200 application/json

    Removal result returned

    Hide response attributes Show response attributes object
    • success boolean

      Whether the removal was successful

    • removed_instance_id string(uuid)

      ID of the removed connection, if found

  • 400

    Invalid request body or instance not found

POST /import/shotgun/remove/projectconnection
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/projectconnection' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"id":12345}'
Request example
{
  "id": 12345
}
Response examples (200)
{
  "success": true,
  "removed_instance_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}

Remove shotgun step

View as Markdown
POST /import/shotgun/remove/step

Remove a Shotgun step (task type) from the database. Provide the Shotgun entry ID in the JSON body.

application/json

Body Required

  • id integer Required

    Shotgun ID of the step to remove

Responses

  • 200 application/json

    Removal result returned

    Hide response attributes Show response attributes object
    • success boolean

      Whether the removal was successful

    • removed_instance_id string(uuid)

      ID of the removed step, if found

  • 400

    Invalid request body or instance not found

POST /import/shotgun/remove/step
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/step' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"id":12345}'
Request example
{
  "id": 12345
}
Response examples (200)
{
  "success": true,
  "removed_instance_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}




Remove shotgun task

View as Markdown
POST /import/shotgun/remove/task

Remove a Shotgun task from the database. Provide the Shotgun entry ID in the JSON body.

application/json

Body Required

  • id integer Required

    Shotgun ID of the task to remove

Responses

  • 200 application/json

    Removal result returned

    Hide response attributes Show response attributes object
    • success boolean

      Whether the removal was successful

    • removed_instance_id string(uuid)

      ID of the removed task, if found

  • 400

    Invalid request body or instance not found

POST /import/shotgun/remove/task
curl \
 --request POST 'http://api.example.com/import/shotgun/remove/task' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"id":12345}'
Request example
{
  "id": 12345
}
Response examples (200)
{
  "success": true,
  "removed_instance_id": "a24a6ea4-ce75-4665-a070-57453082c25"
}





















































































Generate a test event

View as Markdown
GET /status/test-event

Generate a main:test event to test the event stream with the Python client or similar.

Responses

  • 200 application/json

    Success flag

    Hide response attribute Show response attribute object
    • success boolean
GET /status/test-event
curl \
 --request GET 'http://api.example.com/status/test-event' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "success": true
}






























Get presence logs

View as Markdown
GET /data/persons/presence-logs/{month_date}

Return a CSV file containing the presence logs based on a daily basis for the given month.

Path parameters

  • month_date string(date) Required

    Month in YYYY-MM format

Responses

  • 200 text/csv

    CSV file containing the presence logs based on daily basis

  • 400

    Invalid date format

GET /data/persons/presence-logs/{month_date}
curl \
 --request GET 'http://api.example.com/data/persons/presence-logs/2022-07' \
 --header "Authorization: $API_KEY"
























Get week time spents

View as Markdown
GET /data/persons/{person_id}/time-spents/week/{year}/{week}

Get aggregated time spents for given person and week.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

  • year integer Required

    Year to get aggregated time spents for

  • week integer Required

    Week number to get aggregated time spents for

Responses

  • 200 application/json

    Aggregated time spents for given person and week

    Hide response attributes Show response attributes object
    • total_duration number(float)

      Total duration in hours

    • year integer

      Year

    • week integer

      Week number

  • 400

    Wrong date format

GET /data/persons/{person_id}/time-spents/week/{year}/{week}
curl \
 --request GET 'http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/week/2022/35' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "total_duration": 40.0,
  "year": 2022,
  "week": 35
}








Get week quota shots

View as Markdown
GET /data/persons/{person_id}/quota-shots/week/{year}/{week}

Get ended shots used for quota calculation of this week.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

  • year integer Required

    Year to get quota shots for

  • week integer Required

    Week number to get quota shots for

Query parameters

  • count_mode string

    Count mode for quota calculation

    Values are weighted, weighteddone, feedback, or done.

Responses

  • 200 application/json

    Ended shots used for quota calculation of this week

  • 400

    Wrong date format or invalid count mode

GET /data/persons/{person_id}/quota-shots/week/{year}/{week}
curl \
 --request GET 'http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/week/2022/35' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {}
]












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)
{}
























Invite person

View as Markdown
GET /actions/persons/{person_id}/invite

Sends an email to given person to invite him or her to connect to Kitsu.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

Responses

  • 200 application/json

    Email sent successfully

    Hide response attributes Show response attributes object
    • success boolean

      Success flag

    • message string

      Success message

GET /actions/persons/{person_id}/invite
curl \
 --request GET 'http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/invite' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "success": true,
  "message": "Email sent"
}