Authentication

Jwt authorization (http_api_key)

Format in header: Authorization: Bearer {token}.

Value example: Bearer xxxxx.yyyyy.zzzzz






















































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












Pre-register FIDO device

View as markdown
PUT /auth/fido

Prepare FIDO device for registration. It returns registration options for WebAuthn.

Responses

  • 200

    FIDO device pre-registered data

  • 400

    Invalid request

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





















































































































Get shared assets used in project

View as markdown
GET /data/projects/{project_id}/assets/shared-used

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

Path parameters

  • project_id Required

    Unique identifier of the project

Responses

  • 200 application/json

    List of shared assets used in project 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

GET /data/projects/{project_id}/assets/shared-used
curl \
 --request GET 'http://api.example.com/data/projects/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
  }
]




Breakdown

View as markdown

Shot breakdown management and asset-to-shot relationships





































Get scene asset instances

View as markdown
GET /data/scenes/{scene_id}/asset-instances

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

Path parameters

  • scene_id Required

    Unique identifier of the scene

Responses

  • 200 application/json

    Scene asset instances successfully retrieved

    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

GET /data/scenes/{scene_id}/asset-instances
curl \
 --request GET 'http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "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"
  }
]
































































































































































































Create entity type

View as markdown
POST /data/entity-types

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

application/json

Body Required

  • name string Required
  • color string

Responses

  • 201 application/json

    Entity type created successfully

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

    Invalid data format or entity type already exists

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




















































































































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




















































































































GET /data/news/

Retrieve all news entries. 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

    News entries retrieved successfully

    One of:
  • 400

    Invalid filter format or query error

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




















































































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




























































































POST /data/salary-scales

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










































































































































Get edit versions

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

Retrieve all data versions of a specific edit. This includes historical versions and metadata about changes over time.

Path parameters

  • edit_id Required

    Unique identifier of the edit

Responses

  • 200 application/json

    Edit versions successfully retrieved

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

      Version unique identifier

    • edit_id string(uuid)

      Edit identifier

    • version_number integer

      Version number

    • data object

      Version data content

    • created_at string(date-time)

      Creation timestamp

    • created_by string(uuid)

      Creator person identifier

GET /data/edits/{edit_id}/versions
curl \
 --request GET 'http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/versions' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "b35b7fb5-df86-5776-b181-68564193d36",
    "edit_id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "version_number": 1,
    "data": {
      "fps": 24,
      "changes": "Added transitions",
      "duration": 120
    },
    "created_at": "2023-01-01T12:00:00Z",
    "created_by": "c46c8gc6-eg97-6887-c292-79675204e47"
  }
]












































































































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
}









































































































Import shotgun assets

View as markdown
POST /import/shotgun/assets

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

application/json

Body Required

  • id integer

    Shotgun ID of the asset

  • code string

    Asset code

  • description string

    Asset description

  • sg_asset_type string

    Asset type name

  • project object

    Project information

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

    Parent assets

    Hide parents attribute Show parents attribute object
    • id integer

Responses

  • 200 application/json

    Assets imported successfully

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

      Asset unique identifier

    • name string

      Asset name

    • description string

      Asset description

    • created_at string(date-time)

      Creation timestamp

    • updated_at string(date-time)

      Update timestamp

  • 400

    Invalid request body or data format error

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
















Import shotgun notes

View as markdown
POST /import/shotgun/notes

Import Shotgun notes (comments) linked to tasks. Send a list of Shotgun note entries in the JSON body. Only notes linked to tasks are imported. Returns created or updated comments.

application/json

Body Required

  • id integer

    Shotgun ID of the note

  • content string

    Note content

  • tasks array[object]

    Linked tasks

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

    User who created the note

    Hide user attribute Show user attribute object
    • id integer
  • created_at string(date-time)

    Creation timestamp

Responses

  • 200 application/json

    Notes imported successfully

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

      Comment unique identifier

    • text string

      Comment text

    • created_at string(date-time)

      Creation timestamp

  • 400

    Invalid request body or data format error

POST /import/shotgun/notes
curl \
 --request POST 'http://api.example.com/import/shotgun/notes' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '[{"id":12345,"user":{"id":11111},"tasks":[{"id":67890}],"content":"This is a comment","created_at":"2024-01-15T10:30:00Z"}]'
Request example
[
  {
    "id": 12345,
    "user": {
      "id": 11111
    },
    "tasks": [
      {
        "id": 67890
      }
    ],
    "content": "This is a comment",
    "created_at": "2024-01-15T10:30:00Z"
  }
]
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "text": "This is a comment",
    "created_at": "2024-01-15T10:30:00Z"
  }
]

























































































































































Get the configuration of the Kitsu instance

View as markdown
GET /config

The configuration includes self-hosted status, Crisp token, indexer configuration, SAML status, and dark theme status.

Responses

  • 200 application/json

    Configuration object

    Hide response attributes Show response attributes object
    • is_self_hosted boolean
    • crisp_token string
    • dark_theme_by_default boolean
    • indexer_configured boolean
    • saml_enabled boolean
    • saml_idp_name string
    • default_locale string
    • default_timezone string
    • sentry object
      Hide sentry attributes Show sentry attributes object
      • dsn string
      • sampleRate number
GET /config
curl \
 --request GET 'http://api.example.com/config' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "is_self_hosted": true,
  "crisp_token": "abc123def456",
  "dark_theme_by_default": false,
  "indexer_configured": true,
  "saml_enabled": false,
  "saml_idp_name": "My Company SSO",
  "default_locale": "en_US",
  "default_timezone": "UTC",
  "sentry": {
    "dsn": "https://example@sentry.io/123456",
    "sampleRate": 0.1
  }
}






















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 time spents

View as markdown
GET /data/persons/{person_id}/time-spents

Get all time spents for the given person. Optionally can accept date range parameters.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

Query parameters

  • start_date string(date)

    Start date for date range filter

  • end_date string(date)

    End date for date range filter

Responses

  • 200 application/json

    All time spents for the given person

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

      Time spent unique identifier

    • person_id string(uuid)

      Person unique identifier

    • duration number(float)

      Time spent duration in hours

    • date string(date)

      Date of time spent entry

  • 400

    Invalid date range parameters

GET /data/persons/{person_id}/time-spents
curl \
 --request GET 'http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents' \
 --header "Authorization: $API_KEY"
Response examples (200)
[
  {
    "id": "a24a6ea4-ce75-4665-a070-57453082c25",
    "person_id": "b35b7fb5-df86-5776-b181-68564193d36",
    "duration": 8.5,
    "date": "2022-07-12"
  }
]












































































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

Add person to department

View as markdown
POST /actions/persons/{person_id}/departments/add

Add a user to given department.

Path parameters

  • person_id string(uuid) Required

    Person unique identifier

application/json

Body Required

  • department_id string(uuid) Required

    Department unique identifier

Responses

  • 201 application/json

    User added to given department

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

      Person unique identifier

    • department_id string(uuid)

      Department unique identifier

  • 400

    Invalid department ID

POST /actions/persons/{person_id}/departments/add
curl \
 --request POST 'http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/add' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --data '{"department_id":"b35b7fb5-df86-5776-b181-68564193d36"}'
Request examples
{
  "department_id": "b35b7fb5-df86-5776-b181-68564193d36"
}
Response examples (201)
{
  "id": "a24a6ea4-ce75-4665-a070-57453082c25",
  "department_id": "b35b7fb5-df86-5776-b181-68564193d36"
}





























GET /data/projects/{project_id}/playlists/{playlist_id}

Retrieve a specific playlist by ID with preview file revisions.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • playlist_id string(uuid) Required

    Playlist unique identifier

Responses

  • 200 application/json

    Playlist details with preview file revisions

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

      Playlist unique identifier

    • name string

      Playlist name

    • project_id string(uuid)

      Project unique identifier

    • shots array[object]

      List of shots with preview file revisions

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

Get entity previews

View as markdown
GET /data/playlists/entities/{entity_id}/preview-files

Retrieve all previews related to a given entity. It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type.

Path parameters

  • entity_id string(uuid) Required

    Entity unique identifier

Responses

  • 200 application/json

    All previews related to given entity grouped by task type

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

        Preview file unique identifier

      • name string

        Preview file name

GET /data/playlists/entities/{entity_id}/preview-files
curl \
 --request GET 'http://api.example.com/data/playlists/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "additionalProperty1": [
    {
      "id": "a24a6ea4-ce75-4665-a070-57453082c25",
      "name": "preview_v001.png"
    }
  ],
  "additionalProperty2": [
    {
      "id": "a24a6ea4-ce75-4665-a070-57453082c25",
      "name": "preview_v001.png"
    }
  ]
}






































































































































































































Remove person from production team

View as markdown
DELETE /data/projects/{project_id}/team/{person_id}

Remove people listed in a production team.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • person_id string(uuid) Required

    Person unique identifier

Responses

  • 204

    Person removed from production team

DELETE /data/projects/{project_id}/team/{person_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team/b35b7fb5-df86-5776-b181-68564193d36' \
 --header "Authorization: $API_KEY"

Add asset type to production

View as markdown
POST /data/projects/{project_id}/settings/asset-types

Add an asset type linked to a production.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

application/json

Body Required

  • asset_type_id string(uuid) Required

    Asset type unique identifier

Responses

  • 201 application/json

    Asset type added to production

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

      Project unique identifier

    • name string

      Project name

  • 400

    Invalid parameters

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




































Remove preview background file from production

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

Remove a preview background file from a production.

Path parameters

  • project_id string(uuid) Required

    Project unique identifier

  • preview_background_file_id string(uuid) Required

    Preview background file unique identifier

Responses

  • 204

    Preview background file removed from production

DELETE /data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}
curl \
 --request DELETE 'http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files/b35b7fb5-df86-5776-b181-68564193d36' \
 --header "Authorization: $API_KEY"










































































































































GET /data/shots/{shot_id}

Get a shot by id. Returns full shot data. Use this to fetch a single shot with all fields needed by the UI.

Path parameters

  • shot_id Required

Responses

  • 200 application/json

    Shot found and returned

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




































GET /data/scenes/{scene_id}

Get a scene by id. Returns full scene data needed by clients.

Path parameters

  • scene_id Required

Responses

  • 200 application/json

    Scene found and returned

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