Authentication endpoints. Most of the endpoints require authentication.
There are two methods of authentication:
- Clients, such as the web interface or Ayon launcher use
Authorization
header withBearer <token>
value. Token is obtained by calling the/auth/login
endpoint. When not in use, the token expires after one day. - Services use x-api-key header with the API key value. API key is generated in the user settings and can be revoked at any time.
Services can additionally use x-as-user
header to impersonate another user.
This is useful for services that need to create data on behalf of another user.
Login
Login using name/password credentials.
Returns access token and user information. The token is used for authentication in other endpoints. It is valid for 24 hours, but it is extended automatically when the user is active.
Token may be revoked by calling the logout endpoint or using session manager.
Returns 401 response if the credentials are invalid.
Request Body schema: application/json
name required | string (User name) Username |
password required | string (Password) Password |
Responses
Request samples
- Payload
{- "name": "admin",
- "password": "SecretPassword.123"
}
Response samples
- 200
- 422
{- "detail": "Logged in as NAME",
- "error": "Unauthorized",
- "token": "TOKEN",
- "user": {
- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
}
Response samples
- 200
- 422
[- {
- "user": {
- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}, - "token": "string",
- "created": 0,
- "lastUsed": 0,
- "isService": false,
- "clientInfo": {
- "ip": "string",
- "languages": [
- "string"
], - "location": {
- "country": "string",
- "subdivision": "string",
- "city": "string"
}, - "agent": {
- "platform": "string",
- "client": "string",
- "device": "string"
}, - "site_id": "string"
}
}
]
Project is a collection of folders and other entities. Each project has a unique name, which is used as its identifier.
To address an entity within the project, you need to provide both the project name and the entity ID.
Operations
Process multiple operations (create / update / delete) in a single request.
All operations are processed in the order they are provided in the request. If can_fail is set to False, the processing stops on the first error and all previous operations are rolled back. If can_fail is set to True, the processing continues and all operations are committed.
The response contains the list of operations with their success status. In case of failure, the error message is provided for each operation.
This endpoint normally does not return error response, unless there is a problem with the request itself or an unhandled exception. Do not rely on a status code to determine if the operation was successful.
Always check the success
field of the response.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
Array of objects (Operations) | |
canFail | boolean (Canfail) Default: false |
Responses
Request samples
- Payload
{- "operations": [
- {
- "id": "string",
- "type": "create",
- "entityType": "folder",
- "entityId": "string",
- "data": { },
- "force": false
}
], - "canFail": false
}
Response samples
- 200
- 422
{- "operations": [
- {
- "id": "string",
- "type": "create",
- "success": true,
- "status": 0,
- "detail": "string",
- "entityType": "folder",
- "entityId": "string"
}
], - "success": true
}
Get Project Anatomy
Retrieve a project anatomy.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "roots": [
- {
- "name": "work",
- "windows": "C:/projects",
- "linux": "/mnt/share/projects",
- "darwin": "/Volumes/projects"
}
], - "templates": {
- "version_padding": 3,
- "version": "v{version:0>{@version_padding}}",
- "frame_padding": 4,
- "frame": "{frame:0>{@frame_padding}}",
- "work": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "publish": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "hero": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "delivery": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "staging": [
- {
- "name": "string",
- "directory": ""
}
], - "others": [
- {
- "name": "string",
- "value": ""
}
]
}, - "attributes": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "folder_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "folder",
- "original_name": "string"
}
], - "task_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "task_alt",
- "original_name": "string"
}
], - "link_types": [
- {
- "link_type": "string",
- "input_type": "folder",
- "output_type": "folder",
- "color": "string",
- "style": "solid"
}
], - "statuses": [
- {
- "name": "string",
- "shortName": "",
- "state": "not_started",
- "icon": "",
- "color": "#cacaca",
- "original_name": "string"
}
], - "tags": [
- {
- "name": "string",
- "color": "#cacaca",
- "original_name": "string"
}
]
}
Set Project Anatomy
Set a project anatomy.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
Array of objects (Roots) Default: [{"name":"work","windows":"C:/projects","linux":"/mnt/share/projects","darwin":"/Volumes/projects"}] Setup root paths for the project | |
object (Templates) Path templates configuration | |
object (Attributes) Attributes configuration | |
Array of objects (Folder types) Folder types configuration | |
Array of objects (Task types) Task types configuration | |
Array of objects (Link types) Link types configuration | |
Array of objects (Statuses) Statuses configuration | |
Array of objects (Tags) Tags configuration |
Responses
Request samples
- Payload
{- "roots": [
- {
- "name": "work",
- "windows": "C:/projects",
- "linux": "/mnt/share/projects",
- "darwin": "/Volumes/projects"
}
], - "templates": {
- "version_padding": 3,
- "version": "v{version:0>{@version_padding}}",
- "frame_padding": 4,
- "frame": "{frame:0>{@frame_padding}}",
- "work": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "publish": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "hero": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "delivery": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "staging": [
- {
- "name": "string",
- "directory": ""
}
], - "others": [
- {
- "name": "string",
- "value": ""
}
]
}, - "attributes": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "folder_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "folder",
- "original_name": "string"
}
], - "task_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "task_alt",
- "original_name": "string"
}
], - "link_types": [
- {
- "link_type": "string",
- "input_type": "folder",
- "output_type": "folder",
- "color": "string",
- "style": "solid"
}
], - "statuses": [
- {
- "name": "string",
- "shortName": "",
- "state": "not_started",
- "icon": "",
- "color": "#cacaca",
- "original_name": "string"
}
], - "tags": [
- {
- "name": "string",
- "color": "#cacaca",
- "original_name": "string"
}
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
List Projects
Return a list of available projects.
query Parameters
page | integer (Page) >= 1 Default: 1 |
length | integer (Records per page) If not provided, the result will not be limited |
library | boolean (Show library projects) If not provided, return projects regardless the flag |
active | boolean (Show active projects) If not provided, return projects regardless the flag |
order | string (Attribute to order the list by) Enum: "name" "createdAt" "updatedAt" |
desc | boolean (Sort in descending order) Default: false |
name | string (Filter by name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Example: name=forest Limit the result to project with the matching name, or its part. % character may be used as a wildcard |
Responses
Response samples
- 200
- 422
{- "detail": "Showing LENGTH of COUNT projects",
- "count": 1,
- "projects": [
- {
- "name": "Example project",
- "code": "ex",
- "active": true,
- "createdAt": "2024-07-26T15:07:27.471270",
- "updatedAt": "2024-07-26T15:07:27.471281"
}
]
}
Deploy Project
Create a new project using the provided anatomy object.
Main purpose is to take an anatomy object and transform its contents to the project entity (along with additional data such as the project name).
Request Body schema: application/json
name required | string (Name) Project name |
code required | string (Code) Project code |
required | object (Anatomy) Project anatomy |
library | boolean (Library) Default: false Library project |
Responses
Request samples
- Payload
{- "name": "string",
- "code": "string",
- "anatomy": {
- "roots": [
- {
- "name": "work",
- "windows": "C:/projects",
- "linux": "/mnt/share/projects",
- "darwin": "/Volumes/projects"
}
], - "templates": {
- "version_padding": 3,
- "version": "v{version:0>{@version_padding}}",
- "frame_padding": 4,
- "frame": "{frame:0>{@frame_padding}}",
- "work": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "publish": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "hero": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "delivery": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "staging": [
- {
- "name": "string",
- "directory": ""
}
], - "others": [
- {
- "name": "string",
- "value": ""
}
]
}, - "attributes": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "folder_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "folder",
- "original_name": "string"
}
], - "task_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "task_alt",
- "original_name": "string"
}
], - "link_types": [
- {
- "link_type": "string",
- "input_type": "folder",
- "output_type": "folder",
- "color": "string",
- "style": "solid"
}
], - "statuses": [
- {
- "name": "string",
- "shortName": "",
- "state": "not_started",
- "icon": "",
- "color": "#cacaca",
- "original_name": "string"
}
], - "tags": [
- {
- "name": "string",
- "color": "#cacaca",
- "original_name": "string"
}
]
}, - "library": false
}
Response samples
- 201
- 422
null
Get Project
Retrieve a project by its name.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "name": "awesome_project",
- "code": "prj",
- "library": false,
- "folderTypes": [
- {
- "name": "Folder",
- "icon": "folder"
}, - {
- "name": "Asset",
- "icon": "folder"
}, - {
- "name": "Shot",
- "icon": "folder"
}
], - "taskTypes": [
- {
- "name": "Rigging",
- "icon": "rig"
}, - {
- "name": "Modeling",
- "icon": "model"
}
], - "linkTypes": [
- {
- "name": "reference|version|version",
- "link_type": "reference",
- "input_type": "version",
- "output_type": "version",
- "data": {
- "color": "#ff0000"
}
}
], - "statuses": [
- {
- "name": "Unknown"
}
], - "tags": [
- {
- "name": "Unknown"
}
], - "config": { },
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Create Project
Create a new project.
Since project has no ID, and a unique name is used as its identifier, use PUT request with the name provided in the URL to create a new project.
This is different from the rest of the entities, which use POST requests to create new entities with a unique ID.
Important: this endpoint only creates a project entity. It does
not handle creating its anatomy and assigning users to the project,
so it should be used only in special cases, when you need a granular
control over a project creation process. Use Deploy project
([POST] /api/projects) for general usage.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
code required | string (Project code) ^[a-zA-Z0-9_]*$ |
library | boolean (Library) Default: false |
folderTypes | Array of any (Folder types) |
taskTypes | Array of any (Task types) |
Array of objects (Link types) | |
statuses | Array of any (Statuses) |
tags | Array of any (Tags) List of tags available to set on entities. |
config | object (Project config) Default: {} |
object (Project attributes) | |
data | object (Project auxiliary data) |
active | boolean (Project active) Default: true Whether the project is active |
Responses
Request samples
- Payload
{- "code": "prj",
- "library": false,
- "folderTypes": [
- {
- "name": "Folder",
- "icon": "folder"
}, - {
- "name": "Asset",
- "icon": "folder"
}, - {
- "name": "Shot",
- "icon": "folder"
}
], - "taskTypes": [
- {
- "name": "Rigging",
- "icon": "rig"
}, - {
- "name": "Modeling",
- "icon": "model"
}
], - "linkTypes": [
- {
- "name": "reference|version|version",
- "link_type": "reference",
- "input_type": "version",
- "output_type": "version",
- "data": {
- "color": "#ff0000"
}
}
], - "statuses": [
- {
- "name": "Unknown"
}
], - "tags": [
- {
- "name": "Unknown"
}
], - "config": { },
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
null
Update Project
Patch a project.
Use a PATCH request to partially update a project. For example change the name or a particular key in 'data'.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
code | string (Project code) ^[a-zA-Z0-9_]*$ |
library | boolean (Library) Default: false |
folderTypes | Array of any (Folder types) |
taskTypes | Array of any (Task types) |
Array of objects (Link types) | |
statuses | Array of any (Statuses) |
tags | Array of any (Tags) List of tags available to set on entities. |
config | object (Project config) Default: {} |
object (Project attributes) | |
data | object (Project auxiliary data) |
active | boolean (Project active) Default: true Whether the project is active |
Responses
Request samples
- Payload
{- "code": "prj",
- "library": false,
- "folderTypes": [
- {
- "name": "Folder",
- "icon": "folder"
}, - {
- "name": "Asset",
- "icon": "folder"
}, - {
- "name": "Shot",
- "icon": "folder"
}
], - "taskTypes": [
- {
- "name": "Rigging",
- "icon": "rig"
}, - {
- "name": "Modeling",
- "icon": "model"
}
], - "linkTypes": [
- {
- "name": "reference|version|version",
- "link_type": "reference",
- "input_type": "version",
- "output_type": "version",
- "data": {
- "color": "#ff0000"
}
}
], - "statuses": [
- {
- "name": "Unknown"
}
], - "tags": [
- {
- "name": "Unknown"
}
], - "config": { },
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Project Roots Overrides
Return overrides for project roots.
This endpoint is used to get overrides for project roots. The result is an a dictionary with site_id as a key and a dictionary with root names as keys and root paths as values.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "property1": {
- "property1": "string",
- "property2": "string"
}, - "property2": {
- "property1": "string",
- "property2": "string"
}
}
Set Project Roots Overrides
Set overrides for project roots.
path Parameters
site_id required | string (Site Id) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
property name* additional property | string |
Responses
Request samples
- Payload
{- "property1": "string",
- "property2": "string"
}
Response samples
- 200
- 422
null
Get Project Site Roots
Return roots for a project on a specific site.
Thist takes in account roots declared in the project anatomy as well as site overrides. The result is combined and returned as a dictionary with root names as keys and root paths as values.
As the site also defines the platform, the result is specific to the platform of the site.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
platform | string (Platform) Enum: "windows" "linux" "darwin" |
header Parameters
x-ayon-site-id | string (Site ID) Site ID may be specified either as a query parameter ( |
Responses
Response samples
- 200
- 422
{- "property1": "string",
- "property2": "string"
}
Get Folder
Retrieve a folder by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "bush",
- "label": "bush",
- "folderType": "Asset",
- "parentId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "path": "/assets/characters/xenomorph",
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Folder
Delete a folder.
Returns 409 error in there's a published product in the folder or any of its subfolders. Otherwise, deletes the folder and all its subfolders.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
force | boolean (Force) Default: false Allow recursive deletion |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Folder
Patch (partially update) a folder.
Once there is a version published, the folder's name and hierarchy cannot be changed.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
name | string (Folder name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
label | string (Folder label) ^[^';]*$ |
folderType | string (Folder type) |
parentId | string (Parent ID) ^[0-f]{32}$ Parent folder ID in the hierarchy |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
status | string (Folder status) Status of the folder |
tags | Array of strings (Folder tags) Tags assigned to the the folder |
object (Folder attributes) | |
data | object (Folder auxiliary data) |
active | boolean (Folder active) Default: true Whether the folder is active |
Responses
Request samples
- Payload
{- "name": "bush",
- "label": "bush",
- "folderType": "Asset",
- "parentId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Folder List
Return all folders in the project. Fast.
This is a similar endpoint to /hierarchy, but the result is a flat list. additionally, this endpoint should be faster since it uses a cache. The cache is updated every time a folder is created, updated, or deleted.
The endpoint handles ACL and also returns folder attributes.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
attrib | boolean (Attrib) Default: false |
Responses
Response samples
- 200
- 422
{- "detail": "string",
- "folders": [
- {
- "id": "string",
- "path": "string",
- "parentId": "string",
- "parents": [
- "string"
], - "name": "string",
- "label": "string",
- "folderType": "string",
- "hasTasks": false,
- "hasChildren": false,
- "taskNames": [
- "string"
], - "status": "string",
- "attrib": { },
- "ownAttrib": [
- "string"
], - "updatedAt": "2019-08-24T14:15:22Z"
}
]
}
Create Folder
Create a new folder.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
name required | string (Folder name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
label | string (Folder label) ^[^';]*$ |
folderType | string (Folder type) |
parentId | string (Parent ID) ^[0-f]{32}$ Parent folder ID in the hierarchy |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
status | string (Folder status) Status of the folder |
tags | Array of strings (Folder tags) Tags assigned to the the folder |
object (Folder attributes) | |
data | object (Folder auxiliary data) |
active | boolean (Folder active) Default: true Whether the folder is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "bush",
- "label": "bush",
- "folderType": "Asset",
- "parentId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Get Folder Hierarchy
Return a folder hierarchy of a project.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
search | string (Search query) Default: "" Example: search=forest Full-text search query used to limit the result |
types | string (Type filter) Default: "" Example: types=AssetBuild,Shot,Sequence Comma separated list of folder_types to show |
Responses
Response samples
- 200
- 422
{- "detail": "string",
- "projectName": "string",
- "hierarchy": [
- {
- "id": "af10c8f0e9b111e9b8f90242ac130003",
- "name": "Tree",
- "label": "Tree",
- "status": "Tree",
- "folderType": "AssetBuild",
- "hasTasks": true,
- "taskNames": [
- "Modeling",
- "Rigging"
], - "parents": [
- "string"
], - "parentId": "string",
- "children": [
- { }
]
}
]
}
Endpoints related to attribute configuration.
Warning: data does not reflect the active configuration of the attributes. The server needs to be restarted in order the changes become active.
Response samples
- 200
- 422
{- "attributes": [
- {
- "name": "my_attribute",
- "position": 12,
- "scope": [
- "folder",
- "task"
], - "builtin": false,
- "data": {
- "type": "string",
- "title": "My attribute",
- "description": "Value of my attribute",
- "example": "value1",
- "default": null,
- "gt": 0,
- "ge": 0,
- "lt": 0,
- "le": 0,
- "minLength": 0,
- "maxLength": 0,
- "minItems": 0,
- "maxItems": 0,
- "regex": "^[a-zA-Z0-9_]+$",
- "enum": [
- {
- "value": "value1",
- "label": "Value 1"
}, - {
- "value": "value2",
- "label": "Value 2"
}, - {
- "value": "value3",
- "label": "Value 3"
}
], - "inherit": true
}
}
]
}
Set Attribute List
Set the attribute configuration for all (or ao of) attributes
Request Body schema: application/json
Array of objects (Attributes configuration) | |
deleteMissing | boolean (Delete missing) Default: false Delete custom attributes not includedin the payload from the database. |
Responses
Request samples
- Payload
{- "attributes": [
- {
- "name": "my_attribute",
- "position": 12,
- "scope": [
- "folder",
- "task"
], - "builtin": false,
- "data": {
- "type": "string",
- "title": "My attribute",
- "description": "Value of my attribute",
- "example": "value1",
- "default": null,
- "gt": 0,
- "ge": 0,
- "lt": 0,
- "le": 0,
- "minLength": 0,
- "maxLength": 0,
- "minItems": 0,
- "maxItems": 0,
- "regex": "^[a-zA-Z0-9_]+$",
- "enum": [
- {
- "value": "value1",
- "label": "Value 1"
}, - {
- "value": "value2",
- "label": "Value 2"
}, - {
- "value": "value3",
- "label": "Value 3"
}
], - "inherit": true
}
}
], - "deleteMissing": false
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Attribute Config
Return the configuration for a single attribute.
path Parameters
attribute_name required | string (Attribute name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
Responses
Response samples
- 200
- 422
{- "name": "my_attribute",
- "position": 12,
- "scope": [
- "folder",
- "task"
], - "builtin": false,
- "data": {
- "type": "string",
- "title": "My attribute",
- "description": "Value of my attribute",
- "example": "value1",
- "default": null,
- "gt": 0,
- "ge": 0,
- "lt": 0,
- "le": 0,
- "minLength": 0,
- "maxLength": 0,
- "minItems": 0,
- "maxItems": 0,
- "regex": "^[a-zA-Z0-9_]+$",
- "enum": [
- {
- "value": "value1",
- "label": "Value 1"
}, - {
- "value": "value2",
- "label": "Value 2"
}, - {
- "value": "value3",
- "label": "Value 3"
}
], - "inherit": true
}
}
Set Attribute Config
Update attribute configuration
path Parameters
attribute_name required | string (Attribute name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
Request Body schema: application/json
position required | integer (Positon) Default order |
Array of strings or strings (Scope) List of entity types the attribute is available on | |
builtin | boolean (Builtin) Default: false Is attribute builtin. Built-in attributes cannot be removed. |
required | object (AttributeData) Base API model. |
Responses
Request samples
- Payload
{- "position": 12,
- "scope": [
- "folder",
- "task"
], - "builtin": false,
- "data": {
- "type": "string",
- "title": "My attribute",
- "description": "Value of my attribute",
- "example": "value1",
- "default": null,
- "gt": 0,
- "ge": 0,
- "lt": 0,
- "le": 0,
- "minLength": 0,
- "maxLength": 0,
- "minItems": 0,
- "maxItems": 0,
- "regex": "^[a-zA-Z0-9_]+$",
- "enum": [
- {
- "value": "value1",
- "label": "Value 1"
}, - {
- "value": "value2",
- "label": "Value 2"
}, - {
- "value": "value3",
- "label": "Value 3"
}
], - "inherit": true
}
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Addon Project Settings Schema
Return the JSON schema of the addon settings.
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Get Addon Project Settings
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
as | string (As) |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Set Addon Project Settings
Set the project overrides of the given addon.
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Get Addon Project Overrides
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
as | string (As) |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 401
- 403
- 422
null
Modify Project Overrides
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Request Body schema: application/json
action required | string (Action) Enum: "delete" "pin" |
path required | Array of strings (Path) |
Responses
Request samples
- Payload
{- "action": "delete",
- "path": [
- "string"
]
}
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Delete Addon Project Overrides
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Get Raw Addon Project Overrides
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Set Raw Addon Project Overrides
Set raw studio overrides for an addon.
Warning: this endpoint is not intended for general use and should only be used by administrators. It bypasses the normal validation and processing that occurs when modifying studio overrides through the normal API.
It won't trigger any events or validation checks, and may result in unexpected behaviour if used incorrectly.
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
variant | string (Variant) Default: "production" |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Get Addon Site Settings
Return the JSON schema of the addon site settings.
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
query Parameters
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Set Addon Site Settings
path Parameters
addon_name required | string (Addon Name) |
version required | string (Version) |
query Parameters
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Get Addon Settings Schema
Return the JSON schema of the addon settings.
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
query Parameters
variant | string (Variant) Default: "production" |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Get Addon Studio Settings
Return the settings (including studio overrides) of the given addon.
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
query Parameters
variant | string (Variant) Default: "production" |
as | string (As) |
Responses
Response samples
- 200
- 401
- 403
- 422
{ }
Set Addon Studio Settings
Set the studio overrides for the given addon.
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
query Parameters
variant | string (Variant) Default: "production" |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Modify Studio Overrides
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
query Parameters
variant | string (Variant) Default: "production" |
Request Body schema: application/json
action required | string (Action) Enum: "delete" "pin" |
path required | Array of strings (Path) |
Responses
Request samples
- Payload
{- "action": "delete",
- "path": [
- "string"
]
}
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
Set Raw Addon Studio Overrides
Set raw studio overrides for an addon.
Warning: this endpoint is not intended for general use and should only be used by administrators. It bypasses the normal validation and processing that occurs when modifying studio overrides through the normal API.
It won't trigger any events or validation checks, and may result in unexpected behaviour if used incorrectly.
path Parameters
addon_name required | string (Addon Name) |
addon_version required | string (Addon Version) |
query Parameters
variant | string (Variant) Default: "production" |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 401
- 403
- 422
{- "code": 401,
- "detail": "Not logged in"
}
List Addons
List all available addons.
query Parameters
details | boolean (Show details) Default: false |
Responses
Response samples
- 200
- 401
- 403
- 422
{- "addons": [
- {
- "name": "string",
- "title": "string",
- "versions": {
- "property1": {
- "hasSettings": false,
- "hasSiteSettings": false,
- "frontendScopes": { },
- "clientPyproject": { },
- "clientSourceInfo": [
- {
- "type": "filesystem",
- "path": {
- "windows": "",
- "linux": "",
- "darwin": ""
}
}
], - "services": { },
- "isBroken": false,
- "reason": {
- "property1": "string",
- "property2": "string"
}
}, - "property2": {
- "hasSettings": false,
- "hasSiteSettings": false,
- "frontendScopes": { },
- "clientPyproject": { },
- "clientSourceInfo": [
- {
- "type": "filesystem",
- "path": {
- "windows": "",
- "linux": "",
- "darwin": ""
}
}
], - "services": { },
- "isBroken": false,
- "reason": {
- "property1": "string",
- "property2": "string"
}
}
}, - "description": "string",
- "productionVersion": "string",
- "stagingVersion": "string",
- "addonType": "server",
- "system": true
}
]
}
Configure Addons
Request Body schema: application/json
object (VariantCopyRequest) Base API model. | |||||||
|
Responses
Request samples
- Payload
{- "copyVariant": {
- "addonName": "string",
- "copyFrom": "production",
- "copyTo": "staging"
}
}
Response samples
- 200
- 401
- 403
- 422
null
Get All Addons Settings Deprecated
Return all addon settings for the project.
query Parameters
variant | string (Settings variant) Default: "production" Enum: "production" "staging" |
project | string (Project) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
site | string (Site) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
Responses
Response samples
- 200
- 422
{- "settings": {
- "my-addon": {
- "my-setting": "my-value",
- "my-other-setting": "my-other-value"
}
}, - "versions": {
- "my-addon": "1.0.0"
}
}
Get All Site Settings Deprecated
Return site settings for all enabled addons.
Those are 'global' site settings (from addon.site_settings_model) with no project overrides. When site is not specified, it will return the default settings provided by the model.
query Parameters
variant | string (Settings variant) Default: "production" Enum: "production" "staging" |
site | string (Site) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
Responses
Response samples
- 200
- 422
{- "settings": {
- "my-addon": {
- "my-setting": "my-value",
- "my-other-setting": "my-other-value"
}
}, - "versions": {
- "my-addon": "1.0.0"
}
}
Get All Settings
query Parameters
bundle_name | string (Bundle name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Production if not set |
project_name | string (Project name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Studio settings if not set |
variant | string (Variant) Default: "production" |
summary | boolean (Summary) Default: false Summary mode |
site_id | string (Site ID) Site ID may be specified a query parameter. Both |
Responses
Response samples
- 200
- 422
{- "bundleName": "string",
- "addons": [
- {
- "name": "my-addon",
- "version": "1.0.0",
- "title": "My Addon",
- "hasSettings": false,
- "hasProjectSettings": false,
- "hasProjectSiteSettings": false,
- "hasSiteSettings": false,
- "hasStudioOverrides": true,
- "hasProjectOverrides": true,
- "hasProjectSiteOverrides": true,
- "settings": { },
- "siteSettings": { },
- "isBroken": false,
- "reason": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Sensitive information, like passwords or API keys, can be securely stored in secrets, which are only accessible by administrators and services. This makes them an ideal location for storing this type of data.
For addons needing access to secrets, using the 'secret name' in settings instead of the actual value is recommended. Consequently, updating secrets won't require any changes to the addon configuration.
Save Secret
Create or update a secret value
path Parameters
secret_name required | string (Secret name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
Request Body schema: application/json
name | string (Secret name) |
value | string (Secret value) |
Responses
Request samples
- Payload
{- "name": "string",
- "value": "string"
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Access Group
Get an access group definition
path Parameters
access_group_name required | string (Access group name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
project_name required | string (Project name) |
Responses
Response samples
- 200
- 422
{- "create": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "read": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "update": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "publish": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "delete": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "attrib_read": {
- "enabled": false,
- "attributes": [
- "string"
]
}, - "attrib_write": {
- "enabled": false,
- "attributes": [
- "string"
]
}, - "endpoints": {
- "enabled": false,
- "endpoints": [
- "string"
]
}
}
Save Access Group
Create or update an access group.
Use _
as a project name to save a global access group.
path Parameters
access_group_name required | string (Access group name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
project_name required | string (Project name) |
Request Body schema: application/json
object (Restrict folder creation) Whitelist folders a user can create | |
object (Restrict folder read) Whitelist folders a user can read | |
object (Restrict folder update) Whitelist folders a user can update | |
object (Restrict publishing) Whitelist folders a user can publish to | |
object (Restrict folder delete) Whitelist folders a user can delete | |
object (Restrict attribute read) Whitelist attributes a user can read | |
object (Restrict attribute update) Whitelist attributes a user can write | |
object (Restrict REST endpoints) Whitelist REST endpoints a user can access |
Responses
Request samples
- Payload
{- "create": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "read": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "update": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "publish": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "delete": {
- "enabled": false,
- "access_list": [
- {
- "access_type": "assigned",
- "path": "/assets/characters"
}
]
}, - "attrib_read": {
- "enabled": false,
- "attributes": [
- "string"
]
}, - "attrib_write": {
- "enabled": false,
- "attributes": [
- "string"
]
}, - "endpoints": {
- "enabled": false,
- "endpoints": [
- "string"
]
}
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Delete Access Group
Delete an access group
path Parameters
access_group_name required | string (Access group name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
project_name required | string (Project name) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
List Available Actions For Context
Get available actions for a context.
This endpoint is used to get a list of actions that can be performed on a given context. The context is defined by the project name, entity type, and entity ids. The resulting list is then displayed to the user, who can choose to run one of the actions.
Simple actions are actions that do not require any additional computation, so the list may be returned relatively quickly.
Dynamic actions are actions that require additional computation to determine if they are available, so they cannot be listed as quickly as simple actions.
Simple actions may be pinned to the entity sidebar.
query Parameters
mode | string (Action List Mode) Default: "simple" Enum: "simple" "dynamic" "all" |
Request Body schema: application/json
projectName required | string (Projectname) The name of the project |
entityType required | string (Entitytype) Enum: "folder" "product" "version" "representation" "task" "workfile" The type of the entity |
entitySubtypes | Array of strings (Entitysubtypes) List of subtypes present in the entity list |
entityIds required | Array of strings (Entity IDs) The IDs of the entities |
Responses
Request samples
- Payload
{- "projectName": "my_project",
- "entityType": "folder",
- "entitySubtypes": [
- "asset"
], - "entityIds": [
- "1a3bfe33-1b1b-4b1b-8b1b-1b1b1b1b1b1b"
]
}
Response samples
- 200
- 422
{- "actions": [
- {
- "identifier": "maya.launch",
- "label": "Launch Maya",
- "category": "Launch",
- "order": 100,
- "icon": {
- "type": "material-symbols",
- "name": "launch"
}, - "featured": false,
- "addonName": "maya",
- "addonVersion": "1.5.6",
- "variant": "production"
}
]
}
List All Actions
Get a list of all available actions.
This endpoint is used to get a list of all available actions, regardless the context they are available in. In order to get this list, addon has to implement "get_all_actions" method.
This endpoint is used for managing actions (e.g. enable/disable/statistics...)
Responses
Response samples
- 200
- 422
[- {
- "identifier": "maya.launch",
- "label": "Launch Maya",
- "category": "Launch",
- "order": 100,
- "icon": {
- "type": "material-symbols",
- "name": "launch"
}, - "featured": false,
- "addonName": "maya",
- "addonVersion": "1.5.6",
- "variant": "production"
}
]
Execute Action
Run an action.
This endpoint is used to run an action on a context. This is called from the frontend when the user selects an action to run.
query Parameters
addonName required | string (Addon Name) |
addonVersion required | string (Addon Version) |
variant | string (Action Variant) Default: "production" |
identifier required | string (Action Identifier) |
Request Body schema: application/json
projectName required | string (Projectname) The name of the project |
entityType required | string (Entitytype) Enum: "folder" "product" "version" "representation" "task" "workfile" The type of the entity |
entitySubtypes | Array of strings (Entitysubtypes) List of subtypes present in the entity list |
entityIds required | Array of strings (Entity IDs) The IDs of the entities |
Responses
Request samples
- Payload
{- "projectName": "my_project",
- "entityType": "folder",
- "entitySubtypes": [
- "asset"
], - "entityIds": [
- "1a3bfe33-1b1b-4b1b-8b1b-1b1b1b1b1b1b"
]
}
Response samples
- 200
- 422
{- "type": "launcher",
- "success": true,
- "message": "Action executed successfully",
- "uri": "ayon-launcher://action?server_url=http%3A%2F%2Flocalhost%3A8000%2F&token=eyJaaaa"
}
Take Action
called by launcher
This is called by the launcher when it is started via
ayon-launcher://action?server_url=...&token=...
URI
Launcher connects to the server using the server url and uses the token to get the action event (token is the event.hash)
The server then gets the event payload and updates the event status to in_progress and returns the event payload to the launcher.
Launcher is then responsible for executing the action based on the payload and updating the event status to finished or failed
path Parameters
token required | string (Action Token) [a-f0-9]{64} |
Responses
Response samples
- 200
- 422
{- "eventId": "aae4b3d4-7b7b-4b7b-8b7b-7b7b7b7b7b7b",
- "actionIdentifier": "launch-maya",
- "args": [
- "-file",
- "path/to/file.ma"
], - "context": {
- "projectName": "my_project",
- "entityType": "folder",
- "entitySubtypes": [
- "asset"
], - "entityIds": [
- "1a3bfe33-1b1b-4b1b-8b1b-1b1b1b1b1b1b"
]
}, - "addonName": "maya",
- "addonVersion": "1.5.6",
- "variant": "production",
- "userName": "john.doe"
}
Post Project Activity
Create an activity.
Comment on an entity for example. Or subscribe for updates (later)
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
entity_type required | string (Entity Type) |
entity_id required | string (Entity ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Id) Explicitly set the ID of the activity |
activityType required | string (Activitytype) Enum: "comment" "reviewable" "status.change" "assignee.add" "assignee.remove" "version.publish" |
body | string (Body) Default: "" |
files | Array of strings (Files) |
timestamp | string <date-time> (Timestamp) |
data | object (Data) Additional data |
Responses
Request samples
- Payload
{- "id": "string",
- "activityType": "comment",
- "body": "This is a comment",
- "files": [
- "file1",
- "file2"
], - "timestamp": "2021-01-01T00:00:00Z",
- "data": {
- "key": "value"
}
}
Response samples
- 201
- 422
{- "id": "123"
}
Delete Project Activity
Delete an activity.
Only the author or an administrator of the activity can delete it.
path Parameters
activity_id required | string (Activity Id) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 200
- 422
null
Patch Project Activity
Edit an activity.
Only the author of the activity can edit it.
path Parameters
activity_id required | string (Activity Id) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
body required | string (Body) |
files | Array of strings (Files) |
Responses
Request samples
- Payload
{- "body": "This is a comment",
- "files": [
- "file1",
- "file2"
]
}
Response samples
- 200
- 422
null
Suggest Entity Mention
Suggests entity mentions based on the given entity type.
This is triggered when the user begins commenting on a task, folder, or version. It populates the suggestions dropdown with relevant entities that the user can mention.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
entityType required | string (Entitytype) Enum: "folder" "task" "version" |
entityId required | string (Entityid) |
Responses
Request samples
- Payload
{- "entityType": "task",
- "entityId": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b"
}
Response samples
- 200
- 422
{- "users": [
- {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "name": "john",
- "fullName": "John Doe"
}
], - "tasks": [
- {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "id": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b",
- "taskType": "Modeling",
- "name": "modeling",
- "label": "string",
- "thumbnailId": "string",
- "parent": {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "id": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b",
- "folderType": "Asset",
- "name": "my_character",
- "label": "My Character",
- "thumbnailId": "string"
}
}
], - "versions": [
- {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "id": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b",
- "version": 1,
- "parent": {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "id": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b",
- "name": "model_main",
- "productType": "Model",
- "parent": {
- "createdAt": "2023-01-01T12:00:00Z",
- "relevance": 0.85,
- "id": "af3e4b3e-1b1b-4b3b-8b3b-3b3b3b3b3b3b",
- "folderType": "Asset",
- "name": "my_character",
- "label": "My Character",
- "thumbnailId": "string"
}
}, - "name": "string"
}
]
}
Response samples
- 200
- 401
- 403
- 422
{- "items": [
- {
- "id": "string",
- "topic": "addon.install",
- "description": "string",
- "addonName": "string",
- "addonVersion": "string",
- "user": "string",
- "status": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "restartRequired": true
}
Get Anatomy Preset
Returns the anatomy preset with the given name.
- Use
__builtin__
character as a preset name to return the builtin preset. - Use
__primary__
character as a preset name to return the primary preset. _
is an alias for built in preset (deprecated, kept for backward compatibility).
path Parameters
preset_name required | string (Preset Name) |
Responses
Response samples
- 200
- 422
{- "roots": [
- {
- "name": "work",
- "windows": "C:/projects",
- "linux": "/mnt/share/projects",
- "darwin": "/Volumes/projects"
}
], - "templates": {
- "version_padding": 3,
- "version": "v{version:0>{@version_padding}}",
- "frame_padding": 4,
- "frame": "{frame:0>{@frame_padding}}",
- "work": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "publish": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "hero": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "delivery": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "staging": [
- {
- "name": "string",
- "directory": ""
}
], - "others": [
- {
- "name": "string",
- "value": ""
}
]
}, - "attributes": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "folder_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "folder",
- "original_name": "string"
}
], - "task_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "task_alt",
- "original_name": "string"
}
], - "link_types": [
- {
- "link_type": "string",
- "input_type": "folder",
- "output_type": "folder",
- "color": "string",
- "style": "solid"
}
], - "statuses": [
- {
- "name": "string",
- "shortName": "",
- "state": "not_started",
- "icon": "",
- "color": "#cacaca",
- "original_name": "string"
}
], - "tags": [
- {
- "name": "string",
- "color": "#cacaca",
- "original_name": "string"
}
]
}
Update Anatomy Preset
Create/update an anatomy preset with the given name.
path Parameters
preset_name required | string (Preset Name) |
Request Body schema: application/json
Array of objects (Roots) Default: [{"name":"work","windows":"C:/projects","linux":"/mnt/share/projects","darwin":"/Volumes/projects"}] Setup root paths for the project | |
object (Templates) Path templates configuration | |
object (Attributes) Attributes configuration | |
Array of objects (Folder types) Folder types configuration | |
Array of objects (Task types) Task types configuration | |
Array of objects (Link types) Link types configuration | |
Array of objects (Statuses) Statuses configuration | |
Array of objects (Tags) Tags configuration |
Responses
Request samples
- Payload
{- "roots": [
- {
- "name": "work",
- "windows": "C:/projects",
- "linux": "/mnt/share/projects",
- "darwin": "/Volumes/projects"
}
], - "templates": {
- "version_padding": 3,
- "version": "v{version:0>{@version_padding}}",
- "frame_padding": 4,
- "frame": "{frame:0>{@frame_padding}}",
- "work": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "publish": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "hero": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "delivery": [
- {
- "name": "string",
- "directory": "string",
- "file": "string"
}
], - "staging": [
- {
- "name": "string",
- "directory": ""
}
], - "others": [
- {
- "name": "string",
- "value": ""
}
]
}, - "attributes": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 1001,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "applications": {
- "value": "adsk_3dsmax/2023",
- "label": "3ds Max 2023"
}, - "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}
}, - "folder_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "folder",
- "original_name": "string"
}
], - "task_types": [
- {
- "name": "string",
- "shortName": "",
- "icon": "task_alt",
- "original_name": "string"
}
], - "link_types": [
- {
- "link_type": "string",
- "input_type": "folder",
- "output_type": "folder",
- "color": "string",
- "style": "solid"
}
], - "statuses": [
- {
- "name": "string",
- "shortName": "",
- "state": "not_started",
- "icon": "",
- "color": "#cacaca",
- "original_name": "string"
}
], - "tags": [
- {
- "name": "string",
- "color": "#cacaca",
- "original_name": "string"
}
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
List Bundles
query Parameters
archived | boolean (Archived) Default: false Include archived bundles |
Responses
Response samples
- 200
- 422
{- "bundles": [
- {
- "name": "my_superior_bundle",
- "createdAt": "2024-07-26T15:07:26.708670",
- "addons": {
- "ftrack": "1.2.3"
}, - "installerVersion": "1.2.3",
- "dependencyPackages": {
- "windows": "a_windows_package123.zip",
- "linux": "a_linux_package123.zip",
- "darwin": "a_mac_package123.zip"
}, - "addonDevelopment": {
- "ftrack": {
- "enabled": true,
- "path": "~/devel/ftrack"
}
}, - "isProduction": false,
- "isStaging": false,
- "isArchived": false,
- "isDev": false,
- "activeUser": "admin"
}
], - "productionBundle": "my_superior_bundle",
- "stagingBundle": "my_superior_bundle",
- "devBundles": [
- "string"
]
}
Create New Bundle
query Parameters
force | boolean (Force) Default: false Force creation of bundle |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
name required | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the bundle |
createdAt | string <date-time> (Createdat) |
object (Addons) | |
installerVersion | string (Installerversion) |
object (Dependency packages) mapping of platform:dependency_package_filename | |
object (Addondevelopment) | |
isProduction | boolean (Isproduction) Default: false |
isStaging | boolean (Isstaging) Default: false |
isArchived | boolean (Isarchived) Default: false |
isDev | boolean (Isdev) Default: false |
activeUser | string (Activeuser) |
Responses
Request samples
- Payload
{- "name": "my_superior_bundle",
- "createdAt": "2024-07-26T15:07:26.708670",
- "addons": {
- "ftrack": "1.2.3"
}, - "installerVersion": "1.2.3",
- "dependencyPackages": {
- "windows": "a_windows_package123.zip",
- "linux": "a_linux_package123.zip",
- "darwin": "a_mac_package123.zip"
}, - "addonDevelopment": {
- "ftrack": {
- "enabled": true,
- "path": "~/devel/ftrack"
}
}, - "isProduction": false,
- "isStaging": false,
- "isArchived": false,
- "isDev": false,
- "activeUser": "admin"
}
Response samples
- 201
- 422
null
Check Bundle Compatibility
Request Body schema: application/json
name required | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the bundle |
createdAt | string <date-time> (Createdat) |
object (Addons) | |
installerVersion | string (Installerversion) |
object (Dependency packages) mapping of platform:dependency_package_filename | |
object (Addondevelopment) | |
isProduction | boolean (Isproduction) Default: false |
isStaging | boolean (Isstaging) Default: false |
isArchived | boolean (Isarchived) Default: false |
isDev | boolean (Isdev) Default: false |
activeUser | string (Activeuser) |
Responses
Request samples
- Payload
{- "name": "my_superior_bundle",
- "createdAt": "2024-07-26T15:07:26.708670",
- "addons": {
- "ftrack": "1.2.3"
}, - "installerVersion": "1.2.3",
- "dependencyPackages": {
- "windows": "a_windows_package123.zip",
- "linux": "a_linux_package123.zip",
- "darwin": "a_mac_package123.zip"
}, - "addonDevelopment": {
- "ftrack": {
- "enabled": true,
- "path": "~/devel/ftrack"
}
}, - "isProduction": false,
- "isStaging": false,
- "isArchived": false,
- "isDev": false,
- "activeUser": "admin"
}
Response samples
- 200
- 422
{- "success": false,
- "issues": [
- {
- "severity": "error",
- "addon": "ftrack",
- "message": "FTrack addon requires Core >= 1.0.0",
- "requiredAddon": "core"
}
]
}
Bundle Actions
Perform actions on bundles.
path Parameters
bundle_name required | string (Bundle Name) |
Request Body schema: application/json
action required | string (Action) Value: "promote" |
Responses
Request samples
- Payload
{- "action": "promote"
}
Response samples
- 201
- 422
null
Update Bundle
path Parameters
bundle_name required | string (Bundle Name) |
query Parameters
build | Array of strings (Request build) Items Enum: "windows" "linux" "darwin" Build dependency packages for selected platforms |
force | boolean (Force) Default: false Force creation of bundle |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
object (Addons) | |
installerVersion | string (Installerversion) |
object (Dependency packages) mapping of platform:dependency_package_filename | |
isProduction | boolean (Isproduction) |
isStaging | boolean (Isstaging) |
isArchived | boolean (Isarchived) |
isDev | boolean (Isdev) |
activeUser | string (Activeuser) |
object (Addondevelopment) |
Responses
Request samples
- Payload
{- "addons": {
- "kitsu": "1.2.3"
}, - "installerVersion": "1.2.3",
- "dependencyPackages": {
- "windows": "a_windows_package123.zip",
- "linux": "a_linux_package123.zip",
- "darwin": "a_mac_package123.zip"
}, - "isProduction": false,
- "isStaging": false,
- "isArchived": false,
- "isDev": false,
- "activeUser": "admin",
- "addonDevelopment": {
- "property1": {
- "enabled": false,
- "path": "/path/to/addon"
}, - "property2": {
- "enabled": false,
- "path": "/path/to/addon"
}
}
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Ynput Cloud Info
Check whether the Ynput Cloud key is set and return the Ynput Cloud info
Responses
Response samples
- 200
- 422
{- "instanceId": "string",
- "instanceName": "Ayon - staging",
- "orgId": "string",
- "orgName": "Ynput",
- "collectSaturatedMetrics": false,
- "managed": false,
- "subscriptions": [
- {
- "name": "string",
- "productType": "string"
}
]
}
Set Ynput Cloud Key
Store the Ynput cloud key in the database and return the user info
Request Body schema: application/json
key required | string (Key) Ynput cloud key |
Responses
Request samples
- Payload
{- "key": "string"
}
Response samples
- 200
- 422
{- "instanceId": "string",
- "instanceName": "Ayon - staging",
- "orgId": "string",
- "orgName": "Ynput",
- "collectSaturatedMetrics": false,
- "managed": false,
- "subscriptions": [
- {
- "name": "string",
- "productType": "string"
}
]
}
Response samples
- 200
- 422
{- "packages": [
- {
- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "installerVersion": "1.2.3",
- "sourceAddons": {
- "ftrack": "1.2.3",
- "maya": "2.4"
}, - "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
]
}
Create Dependency Package
query Parameters
url | string (Url) URL to the addon zip file |
overwrite | boolean (Overwrite) Deprecated Default: false Deprecated. Use the force. |
force | boolean (Force) Default: false Force install the package if it already exists |
Request Body schema: application/json
filename required | string (Filename) |
platform required | string (Platform) Enum: "windows" "linux" "darwin" |
size | integer (Size) |
checksum | string (Checksum) |
checksumAlgorithm | string (Checksumalgorithm) Enum: "md5" "sha1" "sha256" |
Array of objects (Sources) List of sources to download the file from. Server source is added automatically by the server if the file is uploaded. | |
installerVersion required | string (Installer version) Version of the Ayon installer this package is created with |
object (Source addons) mapping of addon_name:addon_version used to create the package | |
object (Python modules) mapping of module_name:module_version used to create the package |
Responses
Request samples
- Payload
{- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "installerVersion": "1.2.3",
- "sourceAddons": {
- "ftrack": "1.2.3",
- "maya": "2.4"
}, - "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
Response samples
- 201
- 422
{- "eventId": "string"
}
Delete Dependency Package
Delete a dependency package from the server. If there is an uploaded package, it will be deleted as well.
path Parameters
filename required | string (Filename) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Dependency Package
Update dependency package sources
path Parameters
filename required | string (Filename) |
Request Body schema: application/json
Array of objects (Sources) List of sources to download the file from. Server source is added automatically by the server if the file is uploaded. | |||||
Array
|
Responses
Request samples
- Payload
{- "sources": [
- {
- "type": "url"
}
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
List Installers
query Parameters
version | string (Version) Version of the package |
platform | string (Platform) Enum: "windows" "linux" "darwin" Platform of the package |
variant | string (Variant) Enum: "production" "staging" |
Responses
Response samples
- 200
- 422
{- "installers": [
- {
- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "version": "1.2.3",
- "pythonVersion": "3.11",
- "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}, - "runtimePythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
]
}
Create Installer
query Parameters
url | string (Url) URL to the addon zip file |
overwrite | boolean (Overwrite) Deprecated Default: false Deprecated. Use the force |
force | boolean (Force) Default: false Overwrite existing installer |
Request Body schema: application/json
filename required | string (Filename) |
platform required | string (Platform) Enum: "windows" "linux" "darwin" |
size | integer (Size) |
checksum | string (Checksum) |
checksumAlgorithm | string (Checksumalgorithm) Enum: "md5" "sha1" "sha256" |
Array of objects (Sources) List of sources to download the file from. Server source is added automatically by the server if the file is uploaded. | |
version required | string (Version) Version of the installer |
pythonVersion required | string (Python version) Version of Python that the installer is created with |
object (Python modules) mapping of module name:version used to create the installer | |
object (Runtime Python modules) mapping of module_name:module_version used to run the installer |
Responses
Request samples
- Payload
{- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "version": "1.2.3",
- "pythonVersion": "3.11",
- "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}, - "runtimePythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
Response samples
- 201
- 422
{- "eventId": "string"
}
Patch Installer
Update sources for an installer
path Parameters
filename required | string (Filename) |
Request Body schema: application/json
Array of objects (Sources) List of sources to download the file from. Server source is added automatically by the server if the file is uploaded. | |||||
Array
|
Responses
Request samples
- Payload
{- "sources": [
- {
- "type": "url"
}
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Enroll
Enroll for a new job.
Enroll for a new job by providing a source topic and target topic. Used by workers to get a new job to process. If there is no job available, request returns 204 (no content).
Non-error response is returned because having nothing to do is not an error and we don't want to spam the logs.
Request Body schema: application/json
sourceTopic required | string (Source topic) ^[a-zA-Z][a-zA-Z0-9_\.\*]{2,64}$ |
targetTopic required | string (Target topic) ^[a-zA-Z][a-zA-Z0-9_\.\*]{2,64}$ |
sender required | string (Sender) |
description | string (Description) Short, human readable description of the target event |
sequential | boolean (Sequential) Default: false Ensure events are processed in sequential order |
object (Filter) Filter source events | |
maxRetries | integer (Max retries) Default: 3 |
debug | boolean (Debug) Default: false |
Responses
Request samples
- Payload
{- "sourceTopic": "ftrack.update",
- "targetTopic": "ftrack.sync_to_ayon",
- "sender": "workerservice01",
- "description": "Sync Ftrack project to Ayon",
- "sequential": true,
- "filter": {
- "conditions": [
- {
- "key": "summary/newValue",
- "value": "New value",
- "operator": "eq"
}
], - "operator": "and"
}, - "maxRetries": 3,
- "debug": false
}
Response samples
- 200
- 422
{- "id": "string",
- "dependsOn": "string",
- "hash": "string",
- "status": "pending"
}
Post Event
Request Body schema: application/json
topic required | string (Topic) ^[a-zA-Z][a-zA-Z0-9_\.\*]{2,64}$ Topic of the event |
sender | string (Sender) Identifier of the process that sent the event. |
hash | string (Hash) Deterministic hash of the event topic and summary/payload |
project | string (Project name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the project if the event belong to one. |
dependsOn | string (Depends on) = 32 characters ID of the event this event depends on. |
description | string (Description) Short, human-readable description of the event and its state |
summary | object (Summary) Arbitrary topic-specific data sent to clients in real time |
payload | object (Payload) Full event payload. Only avaiable in REST endpoint. |
finished | boolean (Finished) Default: true Is event finished (one shot event) |
store | boolean (Store) Default: true Set to False for fire-and-forget events |
Responses
Request samples
- Payload
{- "topic": "media.import",
- "sender": "service-processor-01",
- "hash": "string",
- "project": "MyProject",
- "dependsOn": "69dd9b85a522fcedc14203ea95f54f52",
- "description": "Importing file 3 of 10",
- "summary": { },
- "payload": { },
- "finished": true,
- "store": true
}
Response samples
- 200
- 422
{- "id": "c14203ea95f54f569dd9b85a522fced2"
}
Get Event
Get event by ID.
Return event data with given ID. If event is not found, 404 is returned.
path Parameters
event_id required | string (Event ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003",
- "hash": "string",
- "topic": "string",
- "sender": "service-processor-01",
- "project": "MyProject",
- "user": "admin",
- "dependsOn": "69dd9b85a522fcedc14203ea95f54f52",
- "status": "pending",
- "retries": 0,
- "description": "Importing file 3 of 10",
- "summary": { },
- "payload": { },
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
Update Existing Event
Update existing event.
path Parameters
event_id required | string (Event ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Request Body schema: application/json
sender | string (Sender) Identifier of the process that sent the event. |
projectName | string (Project name) Deprecated Deprecated use 'project' instead |
project | string (Project name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the project if the event belong to one. |
user | string (User name) |
status | string (Status) Enum: "pending" "in_progress" "finished" "failed" "aborted" "restarted" |
description | string (Description) Short, human-readable description of the event and its state |
summary | object (Summary) |
payload | object (Payload) |
progress | number (Progress) [ 0 .. 100 ] Percentage of progress. Transmitted to clients in real time. |
retries | integer (Retries) Force number of attempted retries |
Responses
Request samples
- Payload
{- "sender": "service-processor-01",
- "projectName": "string",
- "project": "MyProject",
- "user": "admin",
- "status": "in_progress",
- "description": "Importing file 3 of 10",
- "summary": { },
- "payload": { },
- "progress": 42,
- "retries": 1
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Query
Request Body schema: application/json
entity required | string (Entity) Enum: "event" "project" "user" "folder" "product" "task" "version" "representation" "workfile" |
object (Filter) Filter events | |
limit | integer (Limit) Default: 100 Maximum number of events to return |
offset | integer (Offset) Default: 0 Offset of the first event to return |
Responses
Request samples
- Payload
{- "entity": "event",
- "filter": {
- "conditions": [
- {
- "key": "summary/newValue",
- "value": "New value",
- "operator": "eq"
}
], - "operator": "and"
}, - "limit": 100,
- "offset": 0
}
Response samples
- 200
- 422
[- { }
]
Upload Project File
Handle uploading a file to a project.
Used for comment attachments, etc.
Files are stored in the uploads
directory (defined in ayon config).
Each file is associated with its author, project and optionally an activity.
The request accepts additional headers for the file metadata:
Content-Type
: The MIME type of the file (required)X-File-Id
: The ID of the file (optional, will be generated if not provided)X-File-Name
: The name of the file including the extension (required)X-Activity-Id
: The ID of the activity the file is associated with (optional)
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-file-id | string (X-File-Id) |
x-file-name required | string (X-File-Name) |
x-activity-id | string (X-Activity-Id) |
content-type required | string (Content-Type) |
Responses
Response samples
- 201
- 422
{- "id": "123"
}
Get Project File
Get a project file (comment attachment etc.)
The preview
query parameter can be used to get
a preview of the file (if available).
path Parameters
file_id required | string (File Id) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
null
Get Project File Thumbnail
Get a project file (comment attachment etc.)
The preview
query parameter can be used to get
a preview of the file (if available).
path Parameters
file_id required | string (File Id) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
null
Manage Inbox Item
Manage inbox items
Request Body schema: application/json
projectName required | string (Projectname) |
ids | Array of strings (List of items) List of reference_ids of items to be managed |
status required | string (Status) Enum: "unread" "read" "inactive" Status to set for the items |
Responses
Request samples
- Payload
{- "projectName": "string",
- "ids": [
- "string"
], - "status": "unread"
}
Response samples
- 200
- 422
null
List Link Types
List all link types
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "types": [
- {
- "name": "reference|version|version",
- "link_type": "reference",
- "input_type": "version",
- "output_type": "version",
- "data": { }
}, - {
- "name": "breakdown|folder|folder",
- "link_type": "breakdown",
- "input_type": "folder",
- "output_type": "folder",
- "data": { }
}
]
}
Save Link Type
Save a link type
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
link_type required | string (Link Type) |
Request Body schema: application/json
data | object (Data) Link data |
Responses
Request samples
- Payload
{- "data": { }
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Entity Link
Create a new entity link.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
input required | string (Input) The ID of the input entity. |
output required | string (Output) The ID of the output entity. |
name | string (Name) The name of the link. |
link | string (Link) Link type to create. This is deprecated. Use linkType instead. |
linkType | string (Linktype) Link type to create. |
data | object (Data) Link data |
Responses
Request samples
- Payload
{- "input": "string",
- "output": "string",
- "name": "string",
- "link": "reference|folder|version",
- "linkType": "reference|folder|version",
- "data": { }
}
Response samples
- 200
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Delete Entity Link
Delete a link.
Normal users can only delete links they created. Managers can delete any link.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
link_id required | string (Link ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create First Admin
Create the first user and log in.
When Ayon is started for the first time, there is no admin user.
in that case /api/system/info
contains {"noAdmin_user": true}
.
The frontend will display a form to create the first admin user.
using this endpoint. It will also log in the user and return the same
response as /api/auth/login
, so the frontend can continue in
logged-in mode.
Request Body schema: application/json
adminName required | string (User name) Username |
adminPassword required | string (Password) Password |
adminFullName | string (Full name) Default: "" Full name |
adminEmail | string (Administrator email) Default: "" |
Responses
Request samples
- Payload
{- "adminName": "admin",
- "adminPassword": "SecretPassword.123",
- "adminFullName": "Administrator",
- "adminEmail": "admin@example.com"
}
Response samples
- 200
- 422
{- "detail": "Logged in as NAME",
- "error": "Unauthorized",
- "token": "TOKEN",
- "user": {
- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
}
Get Release Info
Get the release info
path Parameters
release_name required | string (Release Name) |
Responses
Response samples
- 200
- 422
{- "name": "2023.08-2D",
- "label": "2D Animation",
- "createdAt": "2019-08-24T14:15:22Z",
- "addons": [
- {
- "name": "string",
- "title": "string",
- "description": "string",
- "icon": "string",
- "preview": "string",
- "features": [
- "string"
], - "families": [
- "string"
], - "tags": [
- "string"
], - "docs": {
- "property1": "string",
- "property2": "string"
}, - "github": "string",
- "discussion": "string",
- "isFree": true,
- "version": "string",
- "url": "string",
- "checksum": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
- "mandatory": true
}
], - "installers": [
- {
- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "version": "1.2.3",
- "pythonVersion": "3.11",
- "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}, - "runtimePythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
], - "dependencyPackages": [
- {
- "filename": "string",
- "platform": "windows",
- "size": 0,
- "checksum": "string",
- "checksumAlgorithm": "md5",
- "sources": [
- {
- "type": "url"
}
], - "installerVersion": "1.2.3",
- "sourceAddons": {
- "ftrack": "1.2.3",
- "maya": "2.4"
}, - "pythonModules": {
- "requests": "2.25.1",
- "pydantic": "1.8.2"
}
}
]
}
Get Product
Retrieve a product by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
product_id required | string (Product ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "modelMain",
- "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "productType": "model",
- "attrib": {
- "productGroup": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Product
Delete a product.
This will also delete all the product's versions and representations.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
product_id required | string (Product ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Product
Patch (partially update) a product.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
product_id required | string (Product ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
name | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the product |
folderId | string (Folder ID) ^[0-f]{32}$ ID of the parent folder |
productType | string (Product type) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Product |
status | string (Product status) Status of the product |
tags | Array of strings (Product tags) Tags assigned to the the product |
object (Product attributes) | |
data | object (Product auxiliary data) |
active | boolean (Product active) Default: true Whether the product is active |
Responses
Request samples
- Payload
{- "name": "modelMain",
- "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "productType": "model",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "productGroup": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Product
Create a new product.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
name required | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Name of the product |
folderId required | string (Folder ID) ^[0-f]{32}$ ID of the parent folder |
productType required | string (Product type) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... Product |
status | string (Product status) Status of the product |
tags | Array of strings (Product tags) Tags assigned to the the product |
object (Product attributes) | |
data | object (Product auxiliary data) |
active | boolean (Product active) Default: true Whether the product is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "modelMain",
- "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "productType": "model",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "productGroup": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Get Project Entity Counts
Retrieve entity counts for a given project.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "folders": 10,
- "products": 98,
- "versions": 512,
- "representations": 4853,
- "tasks": 240,
- "workfiles": 190
}
Get Project Health
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 200
- 422
{- "completion": {
- "percentage": 69,
- "behind": 5,
- "ahead": 3
}, - "storageUsage": {
- "quota": 1000000000,
- "used": 500000000
}, - "tasks": {
- "total": 100,
- "completed": 50,
- "overdue": 10
}, - "statuses": {
- "property1": 0,
- "property2": 0
}
}
Representation Context Filter
Return representation IDs matching the given criteria.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
names | Array of strings (Representation names) |
versionIds | Array of strings (Version IDs) |
Array of objects (Context filters) |
Responses
Request samples
- Payload
{- "names": [
- "ma",
- "obj"
], - "versionIds": [
- "c10d5bc73dcab7da4cba0f3e0b3c0aea"
], - "context": [
- {
- "key": "task.name",
- "values": [
- "^work.*$"
]
}
]
}
Response samples
- 200
- 422
{- "ids": [
- "c10d5bc73dcab7da4cba0f3e0b3c0aea"
]
}
Get Representation
Retrieve a representation by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
representation_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "ma",
- "versionId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "files": [
- {
- "id": "7da4cba0f3e0b3c0aeac10d5bc73dcab",
- "name": "string",
- "path": "{root}/demo_Commercial/shots/sh010/workfile/workfileCompositing/v001/sh010_workfile Compositing_v001.ma",
- "size": "123456",
- "hash": "e831c13f0ba0fbbfe102cd50420439d1",
- "hashType": "md5"
}
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "path": "string",
- "template": "string",
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Representation
Delete a representation.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
representation_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Representation
Patch (partially update) a representation.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
representation_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
name | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... The name of the representation |
versionId | string (Version ID) ^[0-f]{32}$ ID of the parent version |
Array of objects (Files) List of files | |
status | string (Representation status) Status of the representation |
tags | Array of strings (Representation tags) Tags assigned to the the representation |
object (Representation attributes) | |
data | object (Representation auxiliary data) |
active | boolean (Representation active) Default: true Whether the representation is active |
Responses
Request samples
- Payload
{- "name": "ma",
- "versionId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "files": [
- {
- "id": "7da4cba0f3e0b3c0aeac10d5bc73dcab",
- "name": "string",
- "path": "{root}/demo_Commercial/shots/sh010/workfile/workfileCompositing/v001/sh010_workfile Compositing_v001.ma",
- "size": "123456",
- "hash": "e831c13f0ba0fbbfe102cd50420439d1",
- "hashType": "md5"
}
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "path": "string",
- "template": "string",
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Representation
Create a new representation.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
name required | string (Name) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... The name of the representation |
versionId required | string (Version ID) ^[0-f]{32}$ ID of the parent version |
Array of objects (Files) List of files | |
status | string (Representation status) Status of the representation |
tags | Array of strings (Representation tags) Tags assigned to the the representation |
object (Representation attributes) | |
data | object (Representation auxiliary data) |
active | boolean (Representation active) Default: true Whether the representation is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "ma",
- "versionId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "files": [
- {
- "id": "7da4cba0f3e0b3c0aeac10d5bc73dcab",
- "name": "string",
- "path": "{root}/demo_Commercial/shots/sh010/workfile/workfileCompositing/v001/sh010_workfile Compositing_v001.ma",
- "size": "123456",
- "hash": "e831c13f0ba0fbbfe102cd50420439d1",
- "hashType": "md5"
}
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "path": "string",
- "template": "string",
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Resolve Uris
Resolve a list of ayon:// URIs to entities.
Each URI starts with ayon://{project_name}/{path}
which
determines the requested folder.
Schemes ayon://
and ayon+entity://
are equivalent (ayon is a shorter alias).
Additional query arguments [product
, version
, representation
]
or [task
, workfile
] are allowed.
Note that arguments from product/version/representations cannot be mixed with
task/workfile arguments.
Implicit wildcards
The response contains a list of resolved URIs with the requested entities. One URI can match multiple entities - for example when product and representation are requested, the response will contain all matching representations from all versions of the product.
Explicit wildcards
It is possible to use a *
wildcard for querying multiple
entities at the deepest level of the data structure:
ayon://my_project/assets/characters?product=setdress?version=*
will return all versions of the given product.
Representation paths
When a representation is requested, the response will contain the
resolved file path, and if the request contains X-ayon-site-id
header and resolve_roots
is set to true
, in the request,
the server will resolve the file path to the actual absolute path.
query Parameters
pathOnly | boolean (Pathonly) Default: false Return only file paths |
header Parameters
x-ayon-site-id | string (Site ID) Site ID may be specified either as a query parameter ( |
Request Body schema: application/json
resolveRoots | boolean (Resolve roots) Default: false If x-ayon-site-id header is provided, resolve representation path roots |
uris required | Array of strings (URIs) List of uris to resolve |
Responses
Request samples
- Payload
{- "resolveRoots": false,
- "uris": [
- "ayon+entity://myproject/assets/env/beach?product=layout&version=v004"
]
}
Response samples
- 200
- 422
[- {
- "uri": "ayon+entity://demo_Big_Feature/assets/environments/01_pfueghtiaoft?product=layoutMain&version=v004&representation=ma",
- "entities": [
- {
- "projectName": "demo_Big_Feature",
- "folderId": "0254c370005811ee9a740242ac130004",
- "productId": "0255ce50005811ee9a740242ac130004",
- "versionId": "0256ba2c005811ee9a740242ac130004",
- "filePath": "/path/to/file.ma"
}
]
}
]
Get Project Entity Uris
Return a list of Ayon URIs for the given entity IDs.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
entityType required | string (Entity type) Enum: "folder" "product" "version" "representation" "task" "workfile" |
ids | Array of strings (Entity IDs) |
Responses
Request samples
- Payload
{- "entityType": "folder",
- "ids": [
- "string"
]
}
Response samples
- 200
- 422
{- "uris": [
- {
- "id": "string",
- "uri": "string"
}
]
}
Get Reviewables For Product
Returns a list of reviewables for a given product.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
product_id required | string (Product ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
[- {
- "id": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "name": "v001",
- "version": 1,
- "status": "In Review",
- "productId": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "productName": "Product Name",
- "productType": "Product Type",
- "reviewables": [
- {
- "fileId": "string",
- "activityId": "string",
- "filename": "string",
- "label": "string",
- "mimetype": "string",
- "availability": "unknown",
- "mediaInfo": { },
- "createdFrom": "string",
- "processing": {
- "eventId": "string",
- "status": "string",
- "description": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": {
- "name": "string",
- "fullName": "string"
}
}
]
}
]
Get Reviewables For Version
Returns a list of reviewables for a given version.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "name": "v001",
- "version": 1,
- "status": "In Review",
- "productId": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "productName": "Product Name",
- "productType": "Product Type",
- "reviewables": [
- {
- "fileId": "string",
- "activityId": "string",
- "filename": "string",
- "label": "string",
- "mimetype": "string",
- "availability": "unknown",
- "mediaInfo": { },
- "createdFrom": "string",
- "processing": {
- "eventId": "string",
- "status": "string",
- "description": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": {
- "name": "string",
- "fullName": "string"
}
}
]
}
Upload Reviewable
Uploads a reviewable for a given version.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
label | string (Label) Label |
header Parameters
content-type required | string (Content-Type) |
x-file-name required | string (X-File-Name) |
x-sender | string (X-Sender) |
Responses
Response samples
- 200
- 422
{- "fileId": "string",
- "activityId": "string",
- "filename": "string",
- "label": "string",
- "mimetype": "string",
- "availability": "unknown",
- "mediaInfo": { },
- "createdFrom": "string",
- "processing": {
- "eventId": "string",
- "status": "string",
- "description": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": {
- "name": "string",
- "fullName": "string"
}
}
Sort Version Reviewables
Change the order of reviewables of a given version.
In the payload, provide a list of activity ids (reviewables) in the order you want them to appear in the UI.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Request Body schema: application/json
sort | Array of strings (Reviewables Order) List of reviewable (activity) ids in the order you want them to appear in the UI. |
Responses
Request samples
- Payload
{- "sort": [
- "c197712a48ef11ef95450242ac1f0004",
- "c519a3f448ef11ef95450242ac1f0004",
- "c8edce0648ef11ef95450242ac1f0004"
]
}
Response samples
- 200
- 422
null
Get Reviewables For Task
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
[- {
- "id": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "name": "v001",
- "version": 1,
- "status": "In Review",
- "productId": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "productName": "Product Name",
- "productType": "Product Type",
- "reviewables": [
- {
- "fileId": "string",
- "activityId": "string",
- "filename": "string",
- "label": "string",
- "mimetype": "string",
- "availability": "unknown",
- "mediaInfo": { },
- "createdFrom": "string",
- "processing": {
- "eventId": "string",
- "status": "string",
- "description": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": {
- "name": "string",
- "fullName": "string"
}
}
]
}
]
Get Reviewables For Folder
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
[- {
- "id": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "name": "v001",
- "version": 1,
- "status": "In Review",
- "productId": "1a3b34ce-1b2c-4d5e-6f7a-8b9c0d1e2f3a",
- "productName": "Product Name",
- "productType": "Product Type",
- "reviewables": [
- {
- "fileId": "string",
- "activityId": "string",
- "filename": "string",
- "label": "string",
- "mimetype": "string",
- "availability": "unknown",
- "mediaInfo": { },
- "createdFrom": "string",
- "processing": {
- "eventId": "string",
- "status": "string",
- "description": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "author": {
- "name": "string",
- "fullName": "string"
}
}
]
}
]
Update Reviewable
Update an existing reviewable,
Currently it is only possible to update the label of a reviewable.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
activity_id required | string (Activity ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Request Body schema: application/json
label | string (Reviewable Label) |
Responses
Request samples
- Payload
{- "label": "Shoulder detail"
}
Response samples
- 200
- 422
null
Response samples
- 200
- 422
{- "services": [
- {
- "name": "string",
- "hostname": "worker03",
- "addonName": "ftrack",
- "addonVersion": "2.0.0",
- "service": "collector",
- "shouldRun": true,
- "isRunning": true,
- "lastSeen": "2019-08-24T14:15:22Z",
- "lastSeenDelta": 0,
- "data": {
- "volumes": [
- "/tmp:/tmp"
], - "ports": [
- "8080:8080"
], - "memLimit": "1g",
- "user": "1000",
- "env": { },
- "storagePath": "/mnt/storage",
- "image": "ayon/ftrack-addon-leecher:2.0.0"
}
}
]
}
Spawn Service
path Parameters
name required | string (Name) |
Request Body schema: application/json
addonName required | string (Addon name) |
addonVersion required | string (Addon version) |
service required | string (Service) |
hostname required | string (Host) |
object (ServiceConfigModel) Base API model. |
Responses
Request samples
- Payload
{- "addonName": "ftrack",
- "addonVersion": "2.0.0",
- "service": "leecher",
- "hostname": "worker03",
- "config": {
- "volumes": [
- "/tmp:/tmp"
], - "ports": [
- "8080:8080"
], - "memLimit": "1g",
- "user": "1000",
- "env": { },
- "storagePath": "/mnt/storage"
}
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Patch Service
path Parameters
service_name required | string (Service Name) |
Request Body schema: application/json
shouldRun | boolean (Shouldrun) |
object (ServiceConfigModel) Base API model. |
Responses
Request samples
- Payload
{- "shouldRun": true,
- "config": {
- "volumes": [
- "/tmp:/tmp"
], - "ports": [
- "8080:8080"
], - "memLimit": "1g",
- "user": "1000",
- "env": { },
- "storagePath": "/mnt/storage"
}
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
List Hosts
Return a list of all hosts.
A host is an instance of Ayon Service Host (ASH) that is capable of running addon services. A host record in the database is created automatically when the host sends a heartbeat to the API.
Responses
Response samples
- 200
- 422
{- "hosts": [
- {
- "name": "my-host",
- "lastSeen": "2024-07-26T15:07:27.896633",
- "health": {
- "cpu": 0.5,
- "mem": 42
}
}
]
}
Host Heartbeat
Send a heartbeat from a host.
This endpoint is called by ASH to send a heartbeat to the API. The heartbeat contains information about the host, its health and the state of its services
Request Body schema: application/json
hostname required | string (Hostname) |
required | object (HostHealthModel) Base API model. |
services | Array of strings (List of running services) |
Responses
Request samples
- Payload
{- "hostname": "string",
- "health": {
- "cpu": 0.5,
- "mem": 42
}, - "services": [
- "ftrack-processor",
- "ftrack-event-server"
]
}
Response samples
- 200
- 422
{- "services": [
- {
- "name": "string",
- "hostname": "worker03",
- "addonName": "ftrack",
- "addonVersion": "2.0.0",
- "service": "collector",
- "shouldRun": true,
- "isRunning": true,
- "lastSeen": "2019-08-24T14:15:22Z",
- "lastSeenDelta": 0,
- "data": {
- "volumes": [
- "/tmp:/tmp"
], - "ports": [
- "8080:8080"
], - "memLimit": "1g",
- "user": "1000",
- "env": { },
- "storagePath": "/mnt/storage",
- "image": "ayon/ftrack-addon-leecher:2.0.0"
}
}
]
}
Get Site Info
Return site information.
This is the initial endpoint that is called when the user opens the page. It returns information about the site, the current user and the configuration.
If the user is not logged in, only the message of the day and the API version are returned.
Responses
Response samples
- 200
- 422
{- "motd": "Hello and welcome to Ayon!",
- "loginPageBrand": "/static/brand.svg",
- "releaseInfo": {
- "version": "1.0.0",
- "buildDate": "20231013",
- "buildTime": "1250",
- "frontendBranch": "main",
- "backendBranch": "main",
- "frontendCommit": "1234567",
- "backendCommit": "1234567"
}, - "version": "string",
- "uptime": 0,
- "noAdminUser": true,
- "onboarding": true,
- "passwordRecoveryAvailable": true,
- "user": {
- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}, - "attributes": [
- {
- "name": "my_attribute",
- "position": 12,
- "scope": [
- "folder",
- "task"
], - "builtin": false,
- "data": {
- "type": "string",
- "title": "My attribute",
- "description": "Value of my attribute",
- "example": "value1",
- "default": null,
- "gt": 0,
- "ge": 0,
- "lt": 0,
- "le": 0,
- "minLength": 0,
- "maxLength": 0,
- "minItems": 0,
- "maxItems": 0,
- "regex": "^[a-zA-Z0-9_]+$",
- "enum": [
- {
- "value": "value1",
- "label": "Value 1"
}, - {
- "value": "value2",
- "label": "Value 2"
}, - {
- "value": "value3",
- "label": "Value 3"
}
], - "inherit": true
}
}
], - "sites": [
- {
- "id": "string",
- "platform": "windows",
- "hostname": "string",
- "version": "string",
- "users": [
- "string"
]
}
], - "ssoOptions": [
- {
- "name": "string",
- "title": "string",
- "icon": "string",
- "color": "#47b7da",
- "textColor": "#ffffff",
- "redirectKey": "string",
- "url": "string",
- "args": {
- "property1": "string",
- "property2": "string"
}, - "callback": "string"
}
]
}
Get Production Metrics
Get production related metrics
query Parameters
system | boolean (System) Default: false Collect system metrics |
saturated | boolean (Saturated) Default: false Collect saturated (more granular) metrics |
Responses
Response samples
- 200
- 422
{- "version": "1.3.1+202407231806",
- "releaseInfo": {
- "version": "1.3.1",
- "buildDate": "20240723",
- "buildTime": "1806",
- "frontendBranch": "develop",
- "backendBranch": "develop",
- "frontendCommit": "e798ff19",
- "backendCommit": "8df0940"
}, - "uptime": 518163,
- "system": {
- "cpuUsage": 12.3,
- "memoryUsage": 12.3,
- "swapUsage": 12.3,
- "uptimeSeconds": 123456,
- "runtimeSeconds": 123456,
- "dbSizeShared": 123456,
- "dbSizeTotal": 123456,
- "redisSizeTotal": 123456,
- "storageUtilizationTotal": 123456
}, - "userCounts": {
- "total": 69,
- "active": 42,
- "admins": 1,
- "managers": 8
}, - "projectCounts": 1,
- "projects": [
- {
- "nickname": "crazy-pink-cat",
- "folderCount": 52,
- "productCount": 587,
- "versionCount": 2348,
- "representationCount": 2888,
- "taskCount": 222,
- "workfileCount": 323,
- "rootCount": 2,
- "teamCount": 2,
- "duration": 30,
- "dbSize": 0,
- "storageUtilization": 0,
- "folderTypes": [
- "Folder",
- "Asset",
- "Episode",
- "Sequence"
], - "taskTypes": [
- "Art",
- "Modeling",
- "Texture",
- "Lookdev"
], - "statuses": [
- "Not ready",
- "In progress",
- "Pending review",
- "Approved"
]
}
], - "averageProjectEventCount": 0,
- "installedAddons": [
- [
- "maya",
- "1.0.0"
], - [
- "maya",
- "1.0.1"
], - [
- "ftrack",
- "1.2.3"
]
], - "eventTopics": {
- "property1": 0,
- "property2": 0
}, - "productionBundle": {
- "addons": {
- "maya": "1.0.0",
- "nuke": "1.0.0",
- "ftrack": "1.0.0"
}, - "launcherVersion": "1.0.0"
}, - "studioSettingsOverrides": [
- {
- "addonName": "resolve",
- "addonVersion": "1.0.0",
- "paths": [
- [
- "imageio",
- "ocio_config",
- "override_global_config"
]
]
}
], - "services": [
- {
- "addonName": "kitsu",
- "addonVersion": "1.0.0",
- "serviceName": "processor"
}
]
}
Set Restart Required
Set the server restart required flag.
This will notify the administrators that the server needs to be restarted. When the server is ready to restart, the administrator can use restart_server (using /api/system/restart) to trigger server.restart_requested event, which (captured by messaging) will trigger restart_server function and restart the server.
Human-readable reason for the restart can be provided in the reason
field.
Request Body schema: application/json
required required | boolean (Required) Whether the server requires a restart |
reason | string (Reason) The reason for the restart |
Responses
Request samples
- Payload
{- "required": true,
- "reason": "string"
}
Response samples
- 200
- 422
null
Get Task
Retrieve a task by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "modeling",
- "label": "Modeling of a model",
- "taskType": "Modeling",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "assignees": [
- "john_doe",
- "jane_doe"
], - "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Task
Delete a task.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Task
Patch (partially update) a task.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
name | string (Folder ID) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
label | string (Task label) ^[^';]*$ |
taskType | string (Task type) |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
assignees | Array of strings (Assignees) List of users assigned to the task |
folderId | string (Folder ID) ^[0-f]{32}$ Folder ID |
status | string (Task status) Status of the task |
tags | Array of strings (Task tags) Tags assigned to the the task |
object (Task attributes) | |
data | object (Task auxiliary data) |
active | boolean (Task active) Default: true Whether the task is active |
Responses
Request samples
- Payload
{- "name": "modeling",
- "label": "Modeling of a model",
- "taskType": "Modeling",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "assignees": [
- "john_doe",
- "jane_doe"
], - "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Task
Create a new task.
Use a POST request to create a new task (with a new id).
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
name required | string (Folder ID) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
label | string (Task label) ^[^';]*$ |
taskType required | string (Task type) |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
assignees | Array of strings (Assignees) List of users assigned to the task |
folderId | string (Folder ID) ^[0-f]{32}$ Folder ID |
status | string (Task status) Status of the task |
tags | Array of strings (Task tags) Tags assigned to the the task |
object (Task attributes) | |
data | object (Task auxiliary data) |
active | boolean (Task active) Default: true Whether the task is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "name": "modeling",
- "label": "Modeling of a model",
- "taskType": "Modeling",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "assignees": [
- "john_doe",
- "jane_doe"
], - "folderId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "startDate": "2021-01-01T00:00:00+00:00",
- "endDate": "2021-01-01T00:00:00+00:00",
- "description": "A very nice entity",
- "tools": {
- "value": "mtoa/3-1",
- "label": "Autodesk Arnold 3.1"
}, - "toto": "string"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Assign Users To Task
Change the list of users assigned to a task.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Request Body schema: application/json
mode required | string (Mode) Enum: "add" "remove" "set" What to do with the list of users |
users required | Array of strings (Users) List of user names |
Responses
Request samples
- Payload
{- "mode": "add",
- "users": [
- "Eeny",
- "Meeny",
- "Miny",
- "Moe"
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Teams
Get all teams in a project.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
query Parameters
show_members | boolean (Show Members) Default: false |
Responses
Response samples
- 200
- 422
[- {
- "name": "string",
- "memberCount": 0,
- "members": [
- {
- "name": "string",
- "leader": false,
- "roles": [
- "string"
]
}
], - "leaders": [
- {
- "name": "string",
- "leader": false,
- "roles": [
- "string"
]
}
]
}
]
Update Teams
Update teams.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
name required | string (Name) Team name |
Array of objects (Members) Team members |
Responses
Request samples
- Payload
[- {
- "name": "string",
- "members": [
- {
- "name": "string",
- "leader": false,
- "roles": [
- "string"
]
}
]
}
]
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Save Team
Save a team.
path Parameters
team_name required | string (Team Name) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
required | Array of objects (Team members) | ||||||
Array
|
Responses
Request samples
- Payload
{- "members": [
- {
- "name": "string",
- "leader": false,
- "roles": [
- "string"
]
}
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Save Team Member
Save a team member.
path Parameters
team_name required | string (Team Name) |
member_name required | string (Member Name) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Request Body schema: application/json
name required | string (User's name) |
leader | boolean (Is user a leader) Default: false |
roles | Array of strings (User's role) |
Responses
Request samples
- Payload
{- "name": "string",
- "leader": false,
- "roles": [
- "string"
]
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Delete Team Member
Delete a team member.
path Parameters
team_name required | string (Team Name) |
member_name required | string (Member Name) |
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Thumbnail
Create a thumbnail.
This endpoint is used to create a thumbnail not associated with any entity. Returns the ID of the created thumbnail. which can be used to assign it to an entity.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 200
- 422
{- "id": "a1f2b3c4d5e6f7g8h9i0"
}
Get Thumbnail
Get a thumbnail by its ID.
This endpoint is used to retrieve a thumbnail by its ID.
Since this is can be an security issue, this endpoint is only available
to users with the manager
role or higher.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
thumbnail_id required | string (Thumbnail ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
placeholder | string (Placeholder) Default: "empty" Enum: "empty" "none" |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Thumbnail
Create or update a thumbnail with a specific ID.
This endpoint is used to create or update a thumbnail by its ID.
Since this is can be an security issue, this endpoint is only available
to users with the manager
role or higher.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
thumbnail_id required | string (Thumbnail ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Get Folder Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
placeholder | string (Placeholder) Default: "empty" Enum: "empty" "none" |
Responses
Response samples
- 200
- 422
null
Create Folder Thumbnail
Create a new thumbnail for a folder.
Returns a thumbnail ID, which is also saved into the entity database record.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
folder_id required | string (Folder ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 201
- 422
{- "id": "a1f2b3c4d5e6f7g8h9i0"
}
Get Version Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
placeholder | string (Placeholder) Default: "empty" Enum: "empty" "none" |
Responses
Response samples
- 200
- 422
null
Create Version Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 201
- 422
{- "id": "a1f2b3c4d5e6f7g8h9i0"
}
Get Workfile Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
workfile_id required | string (Workfile ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
placeholder | string (Placeholder) Default: "empty" Enum: "empty" "none" |
Responses
Response samples
- 200
- 422
null
Create Workfile Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
workfile_id required | string (Workfile ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 201
- 422
{- "id": "a1f2b3c4d5e6f7g8h9i0"
}
Get Task Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
query Parameters
placeholder | string (Placeholder) Default: "empty" Enum: "empty" "none" |
Responses
Response samples
- 200
- 422
null
Create Task Thumbnail
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
task_id required | string (Task ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
content-type | string (Content-Type) |
Responses
Response samples
- 201
- 422
{- "id": "a1f2b3c4d5e6f7g8h9i0"
}
Password Reset
Request Body schema: application/json
token required | string (Token) |
password | string (New password) |
Responses
Request samples
- Payload
{- "token": "string",
- "password": "string"
}
Response samples
- 200
- 401
- 422
{- "detail": "Logged in as NAME",
- "error": "Unauthorized",
- "token": "TOKEN",
- "user": {
- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
}
Get Current User
Return the current user information (based on the Authorization header). This is used for a profile page as well as as an initial check to ensure the user is still logged in.
Responses
Response samples
- 200
- 401
- 422
{- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Get User
Return the current user information (based on the Authorization header). This is used for a profile page as well as as an initial check to ensure the user is still logged in.
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Responses
Response samples
- 200
- 401
- 422
{- "name": "awesome_user",
- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Create User
Create a new user.
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
object (User attributes) | |
data | object (User auxiliary data) |
active | boolean (User active) Default: true Whether the user is active |
password | string (Password) Password for the new user |
apiKey | string (Apikey) API Key for the new service user |
Responses
Request samples
- Payload
{- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true,
- "password": "string",
- "apiKey": "string"
}
Response samples
- 200
- 401
- 422
null
Patch User
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
object (User attributes) | |
data | object (User auxiliary data) |
active | boolean (User active) Default: true Whether the user is active |
Responses
Request samples
- Payload
{- "attrib": {
- "fullName": "Jane Doe",
- "email": "jane.doe@ayon.cloud",
- "avatarUrl": "string",
- "developerMode": true
}, - "data": { },
- "active": true
}
Response samples
- 200
- 401
- 422
null
Change Password
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
password | string (Password) New password |
apiKey | string (API Key) ^[0-9a-f]{32}$ API Key to set to a service user |
Responses
Request samples
- Payload
{- "password": "5up3r5ecr3t_p455W0rd.123",
- "apiKey": "1cb4f6a89012a4b6d8a01ee4f67ae0fb"
}
Response samples
- 200
- 401
- 422
null
Check Password
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
password required | string (Password) |
Responses
Request samples
- Payload
{- "password": "5up3r5ecr3t_p455W0rd.123"
}
Response samples
- 200
- 401
- 422
null
Change User Name
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
newName required | string (Newname) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ New user name |
Responses
Request samples
- Payload
{- "newName": "EvenBetterUser"
}
Response samples
- 200
- 401
- 422
null
Get User Sessions
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Responses
Response samples
- 200
- 401
- 422
{- "sessions": [
- {
- "token": "string",
- "isService": true,
- "lastUsed": 0,
- "clientInfo": {
- "ip": "string",
- "languages": [
- "string"
], - "location": {
- "country": "string",
- "subdivision": "string",
- "city": "string"
}, - "agent": {
- "platform": "string",
- "client": "string",
- "device": "string"
}, - "site_id": "string"
}
}
]
}
Assign Access Groups
path Parameters
user_name required | string (User name) ^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*[a-zA-Z0-9]$ |
Request Body schema: application/json
Array of objects (Accessgroups) List of access groups to assign | |||||
Array
|
Responses
Request samples
- Payload
{- "accessGroups": [
- {
- "project": "project1",
- "accessGroups": [
- "artist",
- "viewer"
]
}, - {
- "project": "project2",
- "accessGroups": [
- "viewer"
]
}
]
}
Response samples
- 200
- 401
- 422
null
Get Version
Retrieve a version by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "version": 1,
- "productId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "author": "john_doe",
- "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "intent": "string",
- "machine": "string",
- "source": "string",
- "comment": "string",
- "productTypes": [
- "string"
], - "site": "workstation42",
- "families": [
- "string"
], - "colorSpace": "rec709",
- "description": "A very nice entity"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Version
Delete a version.
This will also delete all representations of the version.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Version
Patch (partially update) a version.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
version_id required | string (Version ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
version | integer (Version) Version number |
productId | string (Product ID) ^[0-f]{32}$ ID of the parent product |
taskId | string (Task ID) ^[0-f]{32}$ |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
author | string (Author) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
status | string (Version status) Status of the version |
tags | Array of strings (Version tags) Tags assigned to the the version |
object (Version attributes) | |
data | object (Version auxiliary data) |
active | boolean (Version active) Default: true Whether the version is active |
Responses
Request samples
- Payload
{- "version": 1,
- "productId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "author": "john_doe",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "intent": "string",
- "machine": "string",
- "source": "string",
- "comment": "string",
- "productTypes": [
- "string"
], - "site": "workstation42",
- "families": [
- "string"
], - "colorSpace": "rec709",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Version
Create a new version.
Use a POST request to create a new version (with a new id).
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
version required | integer (Version) Version number |
productId required | string (Product ID) ^[0-f]{32}$ ID of the parent product |
taskId | string (Task ID) ^[0-f]{32}$ |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
author | string (Author) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
status | string (Version status) Status of the version |
tags | Array of strings (Version tags) Tags assigned to the the version |
object (Version attributes) | |
data | object (Version auxiliary data) |
active | boolean (Version active) Default: true Whether the version is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "version": 1,
- "productId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "author": "john_doe",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "fps": 25,
- "resolutionWidth": 1920,
- "resolutionHeight": 1080,
- "pixelAspect": 1,
- "clipIn": 1,
- "clipOut": 1,
- "frameStart": 1001,
- "frameEnd": 0,
- "handleStart": 0,
- "handleEnd": 0,
- "intent": "string",
- "machine": "string",
- "source": "string",
- "comment": "string",
- "productTypes": [
- "string"
], - "site": "workstation42",
- "families": [
- "string"
], - "colorSpace": "rec709",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}
Get Workfile
Retrieve a version by its ID.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
workfile_id required | string (Workfile ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
Responses
Response samples
- 200
- 422
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "path": "{root['work']}/Project/workfiles/ma/modelMain_v001.ma",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "createdBy": "john_doe",
- "updatedBy": "john_doe",
- "attrib": {
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true,
- "ownAttrib": [
- "frameStart",
- "frameEnd"
], - "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "createdAt": "2023-01-01T00:00:00+00:00",
- "updatedAt": "2023-01-01T00:00:00+00:00"
}
Delete Workfile
Delete a workfile.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
workfile_id required | string (Workfile ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Responses
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Update Workfile
Patch (partially update) a workfile.
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
workfile_id required | string (Workfile ID) = 32 characters ^[0-9a-f]{32}$ Example: af10c8f0e9b111e9b8f90242ac130003 |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
path | string (Path) Path to the workfile |
taskId | string (Task ID) ^[0-f]{32}$ ID of the parent task |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
createdBy | string (Createdby) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
updatedBy | string (Updatedby) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
status | string (Workfile status) Status of the workfile |
tags | Array of strings (Workfile tags) Tags assigned to the the workfile |
object (Workfile attributes) | |
data | object (Workfile auxiliary data) |
active | boolean (Workfile active) Default: true Whether the workfile is active |
Responses
Request samples
- Payload
{- "path": "{root['work']}/Project/workfiles/ma/modelMain_v001.ma",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "createdBy": "john_doe",
- "updatedBy": "john_doe",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 422
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}
Create Workfile
Create a new workfile.
Use a POST request to create a new workfile
path Parameters
project_name required | string (Project name) ^[a-zA-Z0-9_]*$ |
header Parameters
x-sender | string (X-Sender) |
Request Body schema: application/json
id | string (Entity ID) ^[0-f]{32}$ Explicitly set the ID of the entity |
path required | string (Path) Path to the workfile |
taskId required | string (Task ID) ^[0-f]{32}$ ID of the parent task |
thumbnailId | string (Thumbnail ID) ^[0-f]{32}$ |
createdBy | string (Createdby) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
updatedBy | string (Updatedby) ^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?... |
status | string (Workfile status) Status of the workfile |
tags | Array of strings (Workfile tags) Tags assigned to the the workfile |
object (Workfile attributes) | |
data | object (Workfile auxiliary data) |
active | boolean (Workfile active) Default: true Whether the workfile is active |
Responses
Request samples
- Payload
{- "id": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "path": "{root['work']}/Project/workfiles/ma/modelMain_v001.ma",
- "taskId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "thumbnailId": "c10d5bc73dcab7da4cba0f3e0b3c0aea",
- "createdBy": "john_doe",
- "updatedBy": "john_doe",
- "status": "In progress",
- "tags": [
- "flabadob",
- "blip",
- "blop",
- "blup"
], - "attrib": {
- "extension": "string",
- "description": "A very nice entity"
}, - "data": { },
- "active": true
}
Response samples
- 201
- 422
{- "id": "af10c8f0e9b111e9b8f90242ac130003"
}