--- info: title: Kitsu API description: |2 ## Welcome to the Kitsu API specification ```Version: 1.0.19``` The Kitsu API allows to store and manage the data of your animation/VFX production. Through it you can link all the tools of your pipeline and make sure they are all synchronized. An easy to use Python client to access this API is available: [Python Kitsu Client documentation](https://gazu.cg-wire.com/) ## Authentication
Before you can use any of the endpoints outlined below, you will need to obtain a JWT token to authorize your requests.
You will find detailed information on how to retrieve authentication tokens in the [Zou documentation](https://zou.cg-wire.com/api/).
All API requests require authentication via JWT tokens passed in the Authorization header.
contact: name: CGWire url: https://www.cg-wire.com version: 1.0.19 license: name: AGPL 3.0 url: https://www.gnu.org/licenses/agpl-3.0.en.html paths: "/auth/login": post: summary: Login user description: Log in user by creating and registering auth tokens. Login is based on email and password. If no user matches given email It fallbacks to a desktop ID. It is useful for desktop tools that don't know user email. It is also possible to login with TOTP, Email OTP, FIDO and recovery code. requestBody: required: true content: application/json: schema: type: object properties: email: type: string format: email example: admin@example.com description: User email address password: type: string format: password example: "********" description: User password required: true totp: type: string example: 123456 description: TOTP verification code for two-factor authentication required: false email_otp: type: string example: 123456 description: Email OTP verification code for two-factor authentication fido_authentication_response: type: object description: FIDO authentication response for WebAuth recovery_code: type: string example: ABCD-EFGH-IJKL-MNOP description: Recovery code for two-factor authentication required: - email - password responses: '200': description: Login successful '400': description: Login failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/login" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "email": "admin@example.com", "password": "mysecretpassword", "totp": 123456, "email_otp": 123456, "fido_authentication_response": {}, "recovery_code": "ABCD-EFGH-IJKL-MNOP" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/login" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "email": "admin@example.com", "password": "mysecretpassword", "totp": 123456, "email_otp": 123456, "fido_authentication_response": {}, "recovery_code": "ABCD-EFGH-IJKL-MNOP" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/logout": get: summary: Logout user description: Log user out by revoking auth tokens. Once logged out, current user cannot access the API anymore. responses: '200': description: Logout successful tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/logout" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/logout" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/authenticated": get: summary: Check authentication status description: Returns information if the user is authenticated. It can be used by third party tools, especially browser frontend, to know if current user is still logged in. responses: '200': description: User authenticated '401': description: Person not found tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/authenticated" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/authenticated" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/register": post: summary: Register new user description: Allow a user to register himself to the service. requestBody: required: true content: application/json: schema: type: object properties: email: type: string format: email example: admin@example.com description: User email address password: type: string format: password description: User password password_2: type: string format: password description: Password confirmation first_name: type: string description: User first name last_name: type: string description: User last name required: - email - password - password_2 - first_name - last_name responses: '201': description: Registration successful '400': description: Invalid password or email tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/register" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "email": "admin@example.com", "password": "", "password_2": "", "first_name": "", "last_name": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/register" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "email": "admin@example.com", "password": "", "password_2": "", "first_name": "", "last_name": "" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/change-password": post: summary: Change user password description: Allow the user to change his password. Requires current password for verification and password confirmation to ensure accuracy. requestBody: required: true content: application/json: schema: type: object properties: old_password: type: string format: password description: Current password password: type: string format: password description: New password password_2: type: string format: password description: New password confirmation required: - old_password - password - password_2 responses: '200': description: Password changed '400': description: Invalid password or inactive user tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/change-password" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "old_password": "", "password": "", "password_2": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/change-password" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "old_password": "", "password": "", "password_2": "" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/reset-password": put: summary: Reset password with token description: Allow a user to change his password when he forgets it. It uses a token sent by email to the user to verify it is the user who requested the password reset. requestBody: required: true content: application/json: schema: type: object properties: email: type: string format: email example: admin@example.com description: User email address token: type: string format: JWT token description: Password reset token password: type: string format: password description: New password password2: type: string format: password description: New password confirmation required: - email - token - password - password2 responses: '200': description: Password reset '400': description: Invalid password Wrong or expired token Inactive user tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/auth/reset-password" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "email": "admin@example.com", "token": "", "password": "", "password2": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/reset-password" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "email": "admin@example.com", "token": "", "password": "", "password2": "" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) post: summary: Request password reset description: Send a password reset token by email to the user. It uses a classic scheme where a token is sent by email. requestBody: required: true content: application/json: schema: type: object properties: email: type: string format: email example: admin@example.com description: User email address required: - email responses: '200': description: Reset token sent '400': description: Email not listed in database tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/reset-password" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "email": "admin@example.com" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/reset-password" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "email": "admin@example.com" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/refresh-token": get: summary: Refresh access token description: Tokens are considered outdated every two weeks. This route allows to extend their lifetime before they get outdated. responses: '200': description: Access Token tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/refresh-token" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/refresh-token" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/totp": put: summary: Pre-enable TOTP description: Prepare TOTP (Time-based One-Time Password) for enabling. It returns provisioning URI and secret for authenticator app setup. responses: '200': description: TOTP pre-enabled '400': description: TOTP already enabled tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/auth/totp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/totp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) post: summary: Enable TOTP description: Enable TOTP (Time-based One-Time Password) authentication. It requires verification code from authenticator app. requestBody: required: true content: application/json: schema: type: object properties: totp: type: string description: TOTP verification code from authenticator app required: - totp responses: '200': description: TOTP enabled '400': description: TOTP already enabled or verification failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/totp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "totp": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/totp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "totp": "" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Disable TOTP description: Disable TOTP (Time-based One-Time Password) authentication. It requires two-factor authentication verification. requestBody: required: true content: application/json: schema: type: object properties: totp: type: string description: TOTP verification code email_otp: type: string description: Email OTP verification code fido_authentication_response: type: object description: FIDO authentication response recovery_code: type: string description: Recovery code for two-factor authentication responses: '200': description: TOTP disabled '400': description: TOTP not enabled or verification failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/auth/totp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/totp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" } response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/email-otp": put: summary: Pre-enable email OTP description: Prepare email OTP (One-Time Password) for enabling. It sets up email-based two-factor authentication. responses: '200': description: Email OTP pre-enabled '400': description: Email OTP already enabled tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/auth/email-otp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/email-otp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) post: summary: Enable email OTP description: Enable email OTP (One-Time Password) authentication. It requires verification code sent to email. requestBody: required: true content: application/json: schema: type: object properties: email_otp: type: string description: Email OTP verification code required: - email_otp responses: '200': description: Email OTP enabled '400': description: Email OTP already enabled or verification failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/email-otp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "email_otp": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/email-otp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "email_otp": "" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Disable email OTP description: Disable email OTP (One-Time Password) authentication. It requires two-factor authentication verification. requestBody: required: true content: application/json: schema: type: object properties: totp: type: string description: TOTP verification code email_otp: type: string description: Email OTP verification code fido_authentication_response: type: object description: FIDO authentication response recovery_code: type: string description: Recovery code for two-factor authentication responses: '200': description: Email OTP disabled '400': description: Email OTP not enabled or verification failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/auth/email-otp" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/email-otp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" } response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Send email OTP description: Send a one-time password by email to the user for authentication. responses: '200': description: OTP by email sent '400': description: OTP by email not enabled parameters: - in: query name: email required: true type: string format: email description: User email address tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/email-otp?email=" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/email-otp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "email": "" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/recovery-codes": put: summary: Generate recovery codes description: Generate new recovery codes for two-factor authentication. It requires two-factor authentication verification. requestBody: required: true content: application/json: schema: type: object properties: totp: type: string description: TOTP verification code email_otp: type: string description: Email OTP verification code fido_authentication_response: type: object description: FIDO authentication response recovery_code: type: string description: Recovery code for two-factor authentication responses: '200': description: New recovery codes generated '400': description: No two-factor authentication enabled or verification failed tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/auth/recovery-codes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/recovery-codes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/fido": put: summary: Pre-register FIDO device description: Prepare FIDO device for registration. It returns registration options for WebAuthn. responses: '200': description: FIDO device pre-registered data '400': description: Invalid request tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/auth/fido" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/fido" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) post: summary: Register FIDO device description: Register a FIDO device for WebAuthn authentication. It requires registration response from the device. requestBody: required: true content: application/json: schema: type: object properties: registration_response: type: object description: FIDO device registration response device_name: type: string description: Name for the FIDO device required: - registration_response - device_name responses: '200': description: FIDO device registered '400': description: Registration failed or no preregistration tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/fido" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "registration_response": {}, "device_name": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/fido" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "registration_response": {}, "device_name": "" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Unregister FIDO device description: Unregister a FIDO device from WebAuthn authentication. It requires two-factor authentication verification. requestBody: required: true content: application/json: schema: type: object properties: device_name: type: string description: Name of the FIDO device to unregister required: - device_name responses: '200': description: FIDO device unregistered '400': description: FIDO not enabled tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/auth/fido" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "", "device_name": "" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/fido" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "totp": "", "email_otp": "", "fido_authentication_response": {}, "recovery_code": "", "device_name": "" } response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get FIDO challenge description: Get a challenge for FIDO device authentication. It is used for WebAuthn authentication flow. responses: '200': description: FIDO challenge generated '400': description: FIDO not enabled parameters: - in: query name: email required: true type: string format: email description: User email address tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/fido?email=" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/fido" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "email": "" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/saml/sso": post: summary: SAML SSO login description: Handle SAML SSO login response. Processes authentication response from SAML identity provider and creates a new user if they don't exist. responses: '302': description: Login successful, redirect to home page '400': description: SAML not enabled or wrong parameter tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/auth/saml/sso" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/saml/sso" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/auth/saml/login": get: summary: SAML SSO login redirect description: Initiate SAML SSO login by redirecting to SAML identity provider. responses: '302': description: Redirect to SAML identity provider '400': description: SAML not enabled or wrong parameter tags: - Authentication x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/auth/saml/login" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/auth/saml/login" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-types": get: summary: Get asset types description: Retrieve all available asset types (entity types that are not shot, sequence, or episode) with filtering support responses: '200': description: List of asset types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Asset type name example: Character created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id type: string format: uuid description: Filter asset types by project example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-types?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-types/{asset_type_id}": get: summary: Get asset type description: Retrieve detailed information about a specific asset type including metadata and configuration responses: '200': description: Given asset type content: application/json: schema: type: object properties: id: type: string format: uuid description: Asset type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Asset type name example: Character created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_type_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the asset type tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets": get: summary: Get all assets description: Retrieve all production assets with filtering and pagination. Supports advanced filtering by project, asset type, task status, and other criteria responses: '200': description: List of assets successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_name: type: string description: Project name example: My Project asset_type_name: type: string description: Asset type name example: Character parameters: - in: query name: project_id type: string format: uuid description: Filter assets by specific project example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: asset_type_id type: string format: uuid description: Filter assets by asset type example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: page type: integer description: Page number for pagination example: 1 - in: query name: limit type: integer description: Number of assets per page example: 100 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets?project_id=a24a6ea4-ce75-4665-a070-57453082c25&asset_type_id=a24a6ea4-ce75-4665-a070-57453082c25&page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "asset_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "page": 1, "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/all": get: summary: Get all assets description: Retrieve all production assets with filtering and pagination. Supports advanced filtering by project, asset type, task status, and other criteria responses: '200': description: List of assets successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_name: type: string description: Project name example: My Project asset_type_name: type: string description: Asset type name example: Character parameters: - in: query name: project_id type: string format: uuid description: Filter assets by specific project example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: asset_type_id type: string format: uuid description: Filter assets by asset type example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: page type: integer description: Page number for pagination example: 1 - in: query name: limit type: integer description: Number of assets per page example: 100 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/all?project_id=a24a6ea4-ce75-4665-a070-57453082c25&asset_type_id=a24a6ea4-ce75-4665-a070-57453082c25&page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "asset_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "page": 1, "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/with-tasks": get: summary: Get assets with tasks description: Retrieve all production assets with their related tasks. Includes project name, asset type name, and all associated tasks. Supports filtering by episode responses: '200': description: List of assets with tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_name: type: string description: Project name example: My Project asset_type_name: type: string description: Asset type name example: Character tasks: type: array items: type: object description: Array of related tasks parameters: - in: query name: project_id type: string format: uuid description: Filter assets by specific project example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: episode_id type: string format: uuid description: Filter assets by episode (returns assets not linked to episode and assets linked to given episode) example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: asset_type_id type: string format: uuid description: Filter assets by asset type example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25&episode_id=a24a6ea4-ce75-4665-a070-57453082c25&asset_type_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25", "asset_type_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}": delete: summary: Delete asset description: Permanently remove an asset from the system. Only asset creators or project managers can delete assets responses: '204': description: Asset successfully deleted parameters: - in: path name: asset_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the asset to delete - in: query name: force type: boolean required: false description: Force deletion bypassing validation checks example: false tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get asset ok description: Retrieve detailed information about a specific asset including metadata, project context, and related data responses: '200': description: Asset information successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/assets": get: summary: Get linked assets description: Retrieve all assets that are linked to a specific asset through casting relationships responses: '200': description: List of linked assets successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Linked asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Linked asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/assets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/tasks": get: summary: Get asset tasks description: Retrieve all tasks related to a specific asset. responses: '200': description: List of asset tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Task name example: Modeling Task task_type_id: type: string format: uuid description: Task type identifier example: f79f1jf9-hj20-9110-f625-02908537h70 task_status_id: type: string format: uuid description: Task status identifier example: g80g2kg0-ik31-0221-g736-13019648i81 entity_id: type: string format: uuid description: Asset identifier example: a24a6ea4-ce75-4665-a070-57453082c25 assigned_to: type: string format: uuid description: Assigned user identifier example: h91h3lh1-jl42-1332-h847-24120759j92 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset - in: query name: task_type_id type: string format: uuid description: Filter tasks by task type example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: task_status_id type: string format: uuid description: Filter tasks by task status example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks?task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&task_status_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/task-types": get: summary: Get asset task types description: Retrieve all task types that are used for tasks related to a specific asset. responses: '200': description: List of asset task types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: f79f1jf9-hj20-9110-f625-02908537h70 name: type: string description: Task type name example: Modeling short_name: type: string description: Task type short name example: MOD color: type: string description: Task type color code example: "#FF5733" for_entity: type: string description: Entity type this task type is for example: Asset parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/cast-in": get: summary: Get shots casting asset description: Retrieve all shots that cast a specific asset in their breakdown. responses: '200': description: List of shots casting the asset successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Shot unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: Shot name example: SH001 project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 sequence_id: type: string format: uuid description: Sequence identifier example: e68e0ie8-gi19-8009-e514-91897426g69 frame_in: type: integer description: Frame in example: 100 frame_out: type: integer description: Frame out example: 200 duration: type: integer description: Shot duration in frames example: 100 parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/cast-in" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/cast-in" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/casting": put: summary: Update asset casting description: Modify the casting relationships for a specific asset by updating which shots or sequences use this asset. requestBody: required: true content: application/json: schema: type: object description: Casting data to update properties: casting: type: array items: type: object properties: entity_id: type: string format: uuid description: Entity identifier to cast example: d57d9hd7-fh08-7998-d403-80786315f58 entity_type: type: string description: Entity type (shot/sequence) example: shot responses: '200': description: Asset casting successfully updated content: application/json: schema: type: object properties: asset_id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 casting: type: array items: type: object properties: id: type: string format: uuid description: Casting entry unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_id: type: string format: uuid description: Entity identifier example: d57d9hd7-fh08-7998-d403-80786315f58 entity_name: type: string description: Entity name example: SH001 parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "casting": [ { "entity_id": "d57d9hd7-fh08-7998-d403-80786315f58", "entity_type": "shot" } ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "casting": [ { "entity_id": "d57d9hd7-fh08-7998-d403-80786315f58", "entity_type": "shot" } ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get asset casting description: Retrieve the casting information for a specific asset showing which shots or sequences use this asset responses: '200': description: Asset casting information successfully retrieved content: application/json: schema: type: object properties: asset_id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 casting: type: array items: type: object properties: id: type: string format: uuid description: Casting entry unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_id: type: string format: uuid description: Entity identifier (shot/sequence) example: d57d9hd7-fh08-7998-d403-80786315f58 entity_name: type: string description: Entity name example: SH001 entity_type: type: string description: Entity type (shot/sequence) example: shot parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/shot-asset-instances": get: summary: Get shot asset instances description: Retrieve all shot asset instances that are linked to a specific asset. responses: '200': description: List of shot asset instances successfully retrieved. content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: f79f1jf9-hj20-9110-f625-02908537h70 asset_id: type: string format: uuid description: Asset identifier example: a24a6ea4-ce75-4665-a070-57453082c25 shot_id: type: string format: uuid description: Shot identifier example: d57d9hd7-fh08-7998-d403-80786315f58 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/shot-asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/shot-asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/scene-asset-instances": get: summary: Get scene asset instances description: Retrieve all scene asset instances that are linked to a specific asset. responses: '200': description: List of scene asset instances successfully retrieved. content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: f79f1jf9-hj20-9110-f625-02908537h70 asset_id: type: string format: uuid description: Asset identifier example: a24a6ea4-ce75-4665-a070-57453082c25 scene_id: type: string format: uuid description: Scene identifier example: g80g2kg0-ik31-0221-g736-13019648i81 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/scene-asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/scene-asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/assets/{asset_id}/asset-asset-instances": post: summary: Create asset instance description: Create a new asset instance inside a specific asset by instantiating another asset. requestBody: required: true content: application/json: schema: type: object required: - asset_to_instantiate_id properties: asset_to_instantiate_id: type: string format: uuid description: Unique identifier of the asset to instantiate example: a24a6ea4-ce75-4665-a070-57453082c25 description: type: string description: Description for the asset instance example: Asset instance description responses: '201': description: Asset instance successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Created asset instance unique identifier example: f79f1jf9-hj20-9110-f625-02908537h70 asset_id: type: string format: uuid description: Parent asset identifier example: a24a6ea4-ce75-4665-a070-57453082c25 target_asset_id: type: string format: uuid description: Target asset identifier example: b35b7fb5-df86-5776-b181-68564193d36 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the parent asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_to_instantiate_id": "a24a6ea4-ce75-4665-a070-57453082c25", "description": "Asset instance description" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_to_instantiate_id": "a24a6ea4-ce75-4665-a070-57453082c25", "description": "Asset instance description" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get asset instances description: Retrieve all asset instances that are instantiated inside a specific asset. responses: '200': description: List of asset instances successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: f79f1jf9-hj20-9110-f625-02908537h70 asset_id: type: string format: uuid description: Parent asset identifier example: a24a6ea4-ce75-4665-a070-57453082c25 target_asset_id: type: string format: uuid description: Target asset identifier example: b35b7fb5-df86-5776-b181-68564193d36 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: asset_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/asset-types/{asset_type_id}/assets": get: summary: Get project asset type assets description: Retrieve all assets of a specific type within a project. responses: '200': description: List of project asset type assets successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_name: type: string description: Project name example: My Project asset_type_name: type: string description: Asset type name example: Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: asset_type_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset type - in: query name: page type: integer description: Page number for pagination example: 1 - in: query name: limit type: integer description: Number of assets per page example: 100 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets?page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/asset-types/{asset_type_id}/assets/new": post: summary: Create asset description: Create a new asset in a specific project with the given asset type and parameters. requestBody: required: true content: application/json: schema: type: object required: - name - description - data - is_shared - source_id properties: name: type: string description: Asset name example: Character Name description: type: string description: Asset description example: Main character data: type: object description: Asset metadata and custom data example: - difficulty: easy atmsophere: sunny is_shared: type: boolean description: Whether the asset is shared across projects example: false source_id: type: string format: uuid description: Source asset identifier for duplication example: a24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid description: Episode identifier for episodic assets example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Asset successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Created asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name description: type: string description: Asset description example: Main character project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: asset_type_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset type tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/new" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Character Name", "description": "Main character", "data": [ { "difficulty": "easy", "atmsophere": "sunny" } ], "is_shared": false, "source_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/new" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Character Name", "description": "Main character", "data": [ { "difficulty": "easy", "atmsophere": "sunny" } ], "is_shared": false, "source_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/asset-types": get: summary: Get project asset types description: Retrieve all asset types available for a specific project responses: '200': description: List of project asset types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Asset type name example: Character project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: project_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the project tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/asset-types": get: summary: Get shot asset types description: Retrieve all asset types of assets that are casted in a specific shot responses: '200': description: List of shot asset types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Asset type name example: Character shot_id: type: string format: uuid description: Shot identifier example: d57d9hd7-fh08-7998-d403-80786315f58 parameters: - in: path name: shot_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the shot tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/assets": get: summary: Get project assets description: Retrieve all assets belonging to a specific project with filtering support responses: '200': description: List of project assets successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_name: type: string description: Project name example: My Project asset_type_name: type: string description: Asset type name example: Character parameters: - in: path name: project_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 required: true description: Unique identifier of the project - in: query name: asset_type_id type: string format: uuid description: Filter assets by asset type example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: page type: integer description: Page number for pagination example: 1 - in: query name: limit type: integer description: Number of assets per page example: 100 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets?asset_type_id=a24a6ea4-ce75-4665-a070-57453082c25&page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "asset_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "page": 1, "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/assets/share": post: summary: Set assets shared description: Share or unshare a specific list of assets by their IDs. requestBody: required: true content: application/json: schema: type: object required: - asset_ids properties: asset_ids: type: array items: type: string format: uuid description: List of asset IDs to update example: - a24a6ea4-ce75-4665-a070-57453082c25 - b35b7fb5-df86-5776-b181-68564193d36 is_shared: type: boolean description: Whether to share or unshare the assets example: true responses: '200': description: Assets shared status successfully updated content: application/json: schema: type: object properties: updated_count: type: integer description: Number of assets updated example: 2 asset_ids: type: array items: type: string format: uuid description: List of updated asset IDs example: - a24a6ea4-ce75-4665-a070-57453082c25 - b35b7fb5-df86-5776-b181-68564193d36 tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/assets/share" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b35b7fb5-df86-5776-b181-68564193d36" ], "is_shared": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/assets/share" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b35b7fb5-df86-5776-b181-68564193d36" ], "is_shared": true } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/assets/share": post: summary: Set project assets shared description: Share or unshare all assets for a specific project or a list of specific assets. requestBody: required: false content: application/json: schema: type: object properties: is_shared: type: boolean description: Whether to share or unshare the assets example: true asset_ids: type: array items: type: string format: uuid description: Specific asset IDs to update. example: - a24a6ea4-ce75-4665-a070-57453082c25 - b35b7fb5-df86-5776-b181-68564193d36 responses: '200': description: Assets shared status successfully updated content: application/json: schema: type: object properties: updated_count: type: integer description: Number of assets updated example: 5 project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/share" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "is_shared": true, "asset_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b35b7fb5-df86-5776-b181-68564193d36" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/share" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "is_shared": true, "asset_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b35b7fb5-df86-5776-b181-68564193d36" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/asset-types/{asset_type_id}/assets/share": post: summary: Set asset type assets shared description: Share or unshare all assets for a specific project and asset type. requestBody: required: false content: application/json: schema: type: object properties: is_shared: type: boolean description: Whether to share or unshare the assets example: true responses: '200': description: Asset type assets shared status successfully updated content: application/json: schema: type: object properties: updated_count: type: integer description: Number of assets updated example: 3 project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 asset_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: asset_type_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the asset type tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/share" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "is_shared": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/share" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "is_shared": true } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/assets/shared-used": get: summary: Get shared assets used in project description: Retrieve all shared assets that are used in a specific project. responses: '200': description: List of shared assets used in project successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Original project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 is_shared: type: boolean description: Whether the asset is shared example: true parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/{episode_id}/assets/shared-used": get: summary: Get shared assets used in episode description: Retrieve all shared assets that are used in a specific project episode. responses: '200': description: List of shared assets used in episode successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Character Name project_id: type: string format: uuid description: Original project identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type_id: type: string format: uuid description: Asset type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 is_shared: type: boolean description: Whether the asset is shared example: true episode_id: type: string format: uuid description: Episode identifier example: d57d9hd7-fh08-7998-d403-80786315f58 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the episode tags: - Assets x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/entities/{entity_id}/casting": put: summary: Update entity casting description: Modify the casting relationships for a specific entity by updating which assets are linked to it. requestBody: required: true content: application/json: schema: type: object description: Casting data to update properties: casting: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset identifier to link example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character responses: '200': description: Entity casting successfully updated content: application/json: schema: type: object properties: entity_id: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 casting: type: array items: type: object properties: id: type: string format: uuid description: Casting entry unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "casting": [ { "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47", "asset_name": "Main Character" } ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "casting": [ { "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47", "asset_name": "Main Character" } ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity casting description: Retrieve the casting information for a specific entity showing which assets are linked to it. responses: '200': description: Entity casting information successfully retrieved content: application/json: schema: type: object properties: entity_id: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 casting: type: array items: type: object properties: id: type: string format: uuid description: Casting entry unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/asset-types/{asset_type_id}/casting": get: summary: Get asset type casting description: Retrieve the casting information for all assets of a specific asset type in a project. responses: '200': description: Asset type casting information successfully retrieved content: application/json: schema: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character asset_type_id: type: string format: uuid description: Asset type identifier example: g80g2kg0-ik31-0221-g736-13019648i81 casting: type: array items: type: object properties: entity_id: type: string format: uuid description: Entity identifier example: e68e0ie8-gi19-8009-e514-91897426g69 entity_name: type: string description: Entity name example: SH001 entity_type: type: string description: Entity type (shot/sequence) example: shot parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: asset_type_id required: true type: string format: uuid example: g80g2kg0-ik31-0221-g736-13019648i81 description: Unique identifier of the asset type tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/g80g2kg0-ik31-0221-g736-13019648i81/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/g80g2kg0-ik31-0221-g736-13019648i81/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/casting": get: summary: Get episodes casting description: Retrieve the casting information for all episodes in a specific project. responses: '200': description: Episodes casting information successfully retrieved content: application/json: schema: type: array items: type: object properties: episode_id: type: string format: uuid description: Episode unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 episode_name: type: string description: Episode name example: Episode 01 casting: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/sequences/{sequence_id}/casting": get: summary: Get sequence shots casting description: Retrieve the casting information for all shots from a specific sequence. responses: '200': description: Sequence shots casting information successfully retrieved content: application/json: schema: type: array items: type: object properties: shot_id: type: string format: uuid description: Shot unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 shot_name: type: string description: Shot name example: SH001 sequence_id: type: string format: uuid description: Sequence identifier example: f79f1jf9-hj20-9110-f625-02908537h70 casting: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: sequence_id required: true type: string format: uuid example: f79f1jf9-hj20-9110-f625-02908537h70 description: Unique identifier of the sequence tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/f79f1jf9-hj20-9110-f625-02908537h70/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/f79f1jf9-hj20-9110-f625-02908537h70/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/{episode_id}/sequences/all/casting": get: summary: Get episode shots casting description: Retrieve the casting information for all shots from a specific episode. responses: '200': description: Episode shots casting information successfully retrieved content: application/json: schema: type: array items: type: object properties: shot_id: type: string format: uuid description: Shot unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 shot_name: type: string description: Shot name example: SH001 casting: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: episode_id required: true type: string format: uuid example: d57d9hd7-fh08-7998-d403-80786315f58 description: Unique identifier of the episode tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/d57d9hd7-fh08-7998-d403-80786315f58/sequences/all/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/d57d9hd7-fh08-7998-d403-80786315f58/sequences/all/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/sequences/all/casting": get: summary: Get project shots casting description: Retrieve the casting information for all shots from all sequences in a specific project. responses: '200': description: Project shots casting information successfully retrieved content: application/json: schema: type: array items: type: object properties: shot_id: type: string format: uuid description: Shot unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 shot_name: type: string description: Shot name example: SH001 sequence_id: type: string format: uuid description: Sequence identifier example: f79f1jf9-hj20-9110-f625-02908537h70 sequence_name: type: string description: Sequence name example: SEQ01 casting: type: array items: type: object properties: asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 asset_name: type: string description: Asset name example: Main Character parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/all/casting" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/all/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/entity-links": get: summary: Get project entity links description: Retrieve all entity links related to a specific project. Results can be paginated using page and limit query parameters. If you prefer a more accurate pagination, you can use cursor_created_at to get the next page. It's mainly used for synchronisation purpose. responses: '200': description: Project entity links successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Entity link unique identifier example: m46m8qm6-oq97-6887-m403-80786315o47 entity_in_id: type: string format: uuid description: Source entity identifier example: c46c8gc6-eg97-6887-c292-79675204e47 entity_out_id: type: string format: uuid description: Target entity identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2020-01-01T00:00:00' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: query name: page required: false type: integer example: 2 description: Page number for pagination - in: query name: limit required: false type: integer example: 100 description: Number of items per page - in: query name: cursor_created_at required: false type: string format: date-time example: '2020-01-01T00:00:00' description: Cursor for pagination based on creation date tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links?page=2&limit=100&cursor_created_at=2020-01-01T00%3A00%3A00" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 2, "limit": 100, "cursor_created_at": "2020-01-01T00:00:00" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/entity-links/{entity_link_id}": delete: summary: Delete entity link description: Delete a specific entity link. It's mainly used for synchronisation purpose. responses: '200': description: Entity link successfully deleted parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: entity_link_id required: true type: string format: uuid example: m46m8qm6-oq97-6887-m403-80786315o47 description: Unique identifier of the entity link tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links/m46m8qm6-oq97-6887-m403-80786315o47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links/m46m8qm6-oq97-6887-m403-80786315o47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/asset-instances": post: summary: Create scene asset instance description: Create an asset instance on a specific scene. requestBody: required: true content: application/json: schema: type: object required: - asset_id properties: asset_id: type: string format: uuid description: Asset identifier to create instance from example: c46c8gc6-eg97-6887-c292-79675204e47 description: type: string description: Instance description example: Main character instance responses: '201': description: Asset instance successfully created on scene content: application/json: schema: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: j13j5nj3-ln64-3554-j069-46342981l14 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 scene_id: type: string format: uuid description: Scene identifier example: i02i4mi2-km53-2443-i958-35231870k03 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: scene_id required: true type: string format: uuid example: i02i4mi2-km53-2443-i958-35231870k03 description: Unique identifier of the scene tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47", "description": "Main character instance" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_id": "c46c8gc6-eg97-6887-c292-79675204e47", "description": "Main character instance" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get scene asset instances description: Retrieve all asset instances that are linked to a specific scene. responses: '200': description: Scene asset instances successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: j13j5nj3-ln64-3554-j069-46342981l14 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 scene_id: type: string format: uuid description: Scene identifier example: i02i4mi2-km53-2443-i958-35231870k03 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: scene_id required: true type: string format: uuid example: i02i4mi2-km53-2443-i958-35231870k03 description: Unique identifier of the scene tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/camera-instances": get: summary: Get scene camera instances description: Retrieve all camera instances that are linked to a specific scene. responses: '200': description: Scene camera instances successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Camera instance unique identifier example: k24k6ok4-mo75-4665-k180-57453082m25 camera_id: type: string format: uuid description: Camera identifier example: l35l7pl5-np86-5776-l291-68564193n36 scene_id: type: string format: uuid description: Scene identifier example: i02i4mi2-km53-2443-i958-35231870k03 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main camera instance parameters: - in: path name: scene_id required: true type: string format: uuid example: i02i4mi2-km53-2443-i958-35231870k03 description: Unique identifier of the scene tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/camera-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/camera-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/asset-instances": post: summary: Add shot asset instance description: Add an asset instance to a specific shot. requestBody: required: true content: application/json: schema: type: object required: - asset_instance_id properties: asset_instance_id: type: string format: uuid description: Asset instance identifier to add example: h91h3lh1-jl42-1332-h847-24120759j92 responses: '201': description: Asset instance successfully added to shot content: application/json: schema: type: object properties: id: type: string format: uuid description: Shot unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Shot name example: SH001 asset_instances: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: h91h3lh1-jl42-1332-h847-24120759j92 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: shot_id required: true type: string format: uuid example: e68e0ie8-gi19-8009-e514-91897426g69 description: Unique identifier of the shot tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_instance_id": "h91h3lh1-jl42-1332-h847-24120759j92" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_instance_id": "h91h3lh1-jl42-1332-h847-24120759j92" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get shot asset instances description: Retrieve all asset instances that are linked to a specific shot. responses: '200': description: Shot asset instances successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset instance unique identifier example: h91h3lh1-jl42-1332-h847-24120759j92 asset_id: type: string format: uuid description: Asset identifier example: c46c8gc6-eg97-6887-c292-79675204e47 shot_id: type: string format: uuid description: Shot identifier example: e68e0ie8-gi19-8009-e514-91897426g69 number: type: string description: Instance number example: '001' description: type: string description: Instance description example: Main character instance parameters: - in: path name: shot_id required: true type: string format: uuid example: e68e0ie8-gi19-8009-e514-91897426g69 description: Unique identifier of the shot tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/asset-instances/{asset_instance_id}": delete: summary: Remove shot asset instance description: Remove an asset instance from a specific shot. responses: '204': description: Asset instance successfully removed from shot parameters: - in: path name: shot_id required: true type: string format: uuid example: e68e0ie8-gi19-8009-e514-91897426g69 description: Unique identifier of the shot - in: path name: asset_instance_id required: true type: string format: uuid example: h91h3lh1-jl42-1332-h847-24120759j92 description: Unique identifier of the asset instance tags: - Breakdown x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances/h91h3lh1-jl42-1332-h847-24120759j92" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances/h91h3lh1-jl42-1332-h847-24120759j92" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/chat": get: summary: Get chat details description: Retrieve chat information and messages for a specific entity. Returns chat metadata including participants and all associated messages. responses: '200': description: Chat information successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Chat unique identifier entity_id: type: string format: uuid description: Entity ID this chat is associated with participants: type: array items: type: string format: uuid description: List of participant user IDs messages: type: array items: type: object description: Array of chat messages parameters: - in: path name: entity_id description: ID of the entity related to the chat type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Chat x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/chat/messages": post: summary: Create chat message description: Create a new chat message for a specific entity. Supports both JSON and form data with optional file attachments. Only chat participants can send messages. requestBody: required: true content: application/json: schema: type: object properties: message: type: string description: Message content to send example: Hello, world! required: - message multipart/form-data: schema: type: object properties: message: type: string description: Message content to send example: Hello, world! files: type: array items: type: string format: binary description: Files to attach to the message required: - message responses: '201': description: Chat message successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Created message unique identifier message: type: string description: Message content person_id: type: string format: uuid description: ID of the message sender created_at: type: string format: date-time description: Message creation timestamp attachments: type: array items: type: object description: Array of attached files parameters: - in: path name: entity_id description: ID of the entity related to the chat type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Chat x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "message": "Hello, world!" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "message": "Hello, world!" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chat messages description: Retrieve all chat messages for a specific entity. Returns a list of messages with sender information and timestamps. responses: '200': description: Chat messages successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Message unique identifier message: type: string description: Message content person_id: type: string format: uuid description: ID of the message sender created_at: type: string format: date-time description: Message creation timestamp attachments: type: array items: type: object description: Array of file attachments parameters: - in: path name: entity_id description: ID of the entity related to the chat type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Chat x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/chat/messages/{chat_message_id}": delete: summary: Delete chat message description: Delete a specific chat message. Only the message author or administrators can delete messages. responses: '204': description: Chat message successfully deleted parameters: - in: path name: entity_id description: ID of the entity related to the chat type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: chat_message_id description: ID of the chat message to delete type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Chat x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chat message description: Retrieve a specific chat message by its ID. Returns detailed message information including content and metadata. responses: '200': description: Chat message successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Message unique identifier message: type: string description: Message content person_id: type: string format: uuid description: ID of the message sender created_at: type: string format: date-time description: Message creation timestamp updated_at: type: string format: date-time description: Message last update timestamp attachments: type: array items: type: object description: Array of file attachments parameters: - in: path name: entity_id description: ID of the entity related to the chat type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: chat_message_id description: ID of the chat message type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Chat x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments/{comment_id}/ack": post: summary: Acknowledge comment description: Acknowledge a specific comment. If it's already acknowledged, remove the acknowledgement. responses: '200': description: Comment acknowledgement status successfully updated content: application/json: schema: type: object properties: id: type: string format: uuid description: Comment unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 acknowledged: type: boolean description: Whether the comment is acknowledged example: true parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task - in: path name: comment_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the comment tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/ack" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/ack" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments/{comment_id}/reply": post: summary: Reply to comment description: Add a reply to a specific comment. The reply will be added to the comment's replies list. responses: '200': description: Reply successfully added to comment content: application/json: schema: type: object properties: id: type: string format: uuid description: Reply unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 comment_id: type: string format: uuid description: Parent comment identifier example: b35b7fb5-df86-5776-b181-68564193d36 text: type: string description: Reply text content example: Thanks for the feedback! person_id: type: string format: uuid description: Person identifier who made the reply example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task - in: path name: comment_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the comment - in: formData name: text type: string example: Thanks for the feedback! description: Reply text content tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments/{comment_id}/attachments/{attachment_id}": delete: summary: Delete comment attachment description: Delete a specific attachment file linked to a comment. Only the comment author or project managers can delete attachments. responses: '204': description: Attachment successfully deleted parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task - in: path name: comment_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the comment - in: path name: attachment_id required: true type: string format: uuid example: c46c8gc6-eg97-6887-c292-79675204e47 description: Unique identifier of the attachment tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/attachments/c46c8gc6-eg97-6887-c292-79675204e47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/attachments/c46c8gc6-eg97-6887-c292-79675204e47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments/{comment_id}/reply/{reply_id}": delete: summary: Delete comment reply description: Delete a specific reply from a comment. Only the reply author or administrators can delete replies. responses: '200': description: Reply successfully deleted parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task - in: path name: comment_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the comment - in: path name: reply_id required: true type: string format: uuid example: c46c8gc6-eg97-6887-c292-79675204e47 description: Unique identifier of the reply tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply/c46c8gc6-eg97-6887-c292-79675204e47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply/c46c8gc6-eg97-6887-c292-79675204e47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/attachment-files/{attachment_file_id}/file/{file_name}": get: summary: Download attachment file description: Download a specific attachment file from a comment or chat message. Supports various file types including images and documents. responses: '200': description: Attachment file successfully downloaded content: application/octet-stream: schema: type: string format: binary description: File content parameters: - in: path name: attachment_file_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the attachment file - in: path name: file_name required: true type: string example: document.pdf description: Name of the file to download tags: - Comments produces: - multipart/form-data - image/png - image/gif - image/jpeg x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25/file/document.pdf" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25/file/document.pdf" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/comments/{comment_id}/add-attachment": post: summary: Add comment attachments description: Add one or more files as attachments to a specific comment. Supports various file types including images and documents. responses: '201': description: Files successfully added as attachments content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Attachment file unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: File name example: document.pdf mimetype: type: string description: File MIME type example: application/pdf size: type: integer description: File size in bytes example: 1024000 comment_id: type: string format: uuid description: Comment identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task - in: path name: comment_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the comment - in: formData name: reply_id type: string format: uuid example: c46c8gc6-eg97-6887-c292-79675204e47 description: Reply identifier (optional) - in: formData name: files type: file required: true description: Files to attach to the comment tags: - Comments consumes: - image/png - image/gif - image/jpeg - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/add-attachment" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/add-attachment" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/attachment-files": get: summary: Get project attachment files description: Retrieve all attachment files related to a specific project. Requires administrator permissions. responses: '200': description: Project attachment files successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Attachment file unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: File name example: document.pdf mimetype: type: string description: File MIME type example: application/pdf size: type: integer description: File size in bytes example: 1024000 comment_id: type: string format: uuid description: Comment identifier example: b35b7fb5-df86-5776-b181-68564193d36 project_id: type: string format: uuid description: Project identifier example: a24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/attachment-files": get: summary: Get task attachment files description: Retrieve all attachment files related to a specific task. Requires administrator permissions. responses: '200': description: Task attachment files successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Attachment file unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: File name example: document.pdf mimetype: type: string description: File MIME type example: application/pdf size: type: integer description: File size in bytes example: 1024000 comment_id: type: string format: uuid description: Comment identifier example: b35b7fb5-df86-5776-b181-68564193d36 task_id: type: string format: uuid description: Task identifier example: a24a6ea4-ce75-4665-a070-57453082c25 reply_id: type: string format: uuid description: Reply identifier if attached to a reply example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/comment": post: summary: Create task comment description: Create a new comment for a specific task. It requires a text, a task_status and a person as arguments. This way, comments keep history of status changes. When the comment is created, it updates the task status with the given task status. requestBody: required: true content: application/json: schema: type: object required: - task_status_id properties: task_status_id: type: string format: uuid description: Task status identifier example: c46c8gc6-eg97-6887-c292-79675204e47 comment: type: string description: Comment text content example: This looks great! Ready for review. person_id: type: string format: uuid description: Person identifier (optional, defaults to current user) example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp (optional, defaults to current time) example: '2023-01-01T12:00:00Z' checklist: type: object description: Checklist items for the comment example: item1: Check lighting item2: Verify textures links: type: array items: type: string description: List of related links example: - https://example.com/reference1 - https://example.com/reference2 responses: '201': description: Comment successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Comment unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 task_id: type: string format: uuid description: Task identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 comment: type: string description: Comment text content example: This looks great! Ready for review. task_status_id: type: string format: uuid description: Task status identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: task_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the task tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comment" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47", "comment": "This looks great! Ready for review.", "person_id": "d57d9hd7-fh08-7998-d403-80786315f58", "created_at": "2023-01-01T12:00:00Z", "checklist": { "item1": "Check lighting", "item2": "Verify textures" }, "links": [ "https://example.com/reference1", "https://example.com/reference2" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comment" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47", "comment": "This looks great! Ready for review.", "person_id": "d57d9hd7-fh08-7998-d403-80786315f58", "created_at": "2023-01-01T12:00:00Z", "checklist": { "item1": "Check lighting", "item2": "Verify textures" }, "links": [ "https://example.com/reference1", "https://example.com/reference2" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/tasks/comment-many": post: summary: Create multiple comments description: Create several comments at once for a specific project. Each comment requires a text, a task id, a task_status and a person as arguments. This way, comments keep history of status changes. When the comment is created, it updates the task status with the given task status. requestBody: required: true content: application/json: schema: type: array items: type: object required: - task_status_id - object_id properties: task_status_id: type: string format: uuid description: Task status identifier example: c46c8gc6-eg97-6887-c292-79675204e47 comment: type: string description: Comment text content example: This looks great! Ready for review. person_id: type: string format: uuid description: Person identifier (optional, defaults to current user) example: d57d9hd7-fh08-7998-d403-80786315f58 object_id: type: string format: uuid description: Task identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp (optional, defaults to current time) example: '2023-01-01T12:00:00Z' checklist: type: object description: Checklist items for the comment example: item1: Check lighting item2: Verify textures links: type: array items: type: string description: List of related links example: - https://example.com/reference1 - https://example.com/reference2 responses: '201': description: Comments successfully created content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Comment unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 task_id: type: string format: uuid description: Task identifier example: e68e0ie8-gi19-8009-e514-91897426g69 person_id: type: string format: uuid description: Person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 comment: type: string description: Comment text content example: This looks great! Ready for review. task_status_id: type: string format: uuid description: Task status identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks/comment-many" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47", "comment": "This looks great! Ready for review.", "person_id": "d57d9hd7-fh08-7998-d403-80786315f58", "object_id": "e68e0ie8-gi19-8009-e514-91897426g69", "created_at": "2023-01-01T12:00:00Z", "checklist": { "item1": "Check lighting", "item2": "Verify textures" }, "links": [ "https://example.com/reference1", "https://example.com/reference2" ] } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks/comment-many" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "task_status_id": "c46c8gc6-eg97-6887-c292-79675204e47", "comment": "This looks great! Ready for review.", "person_id": "d57d9hd7-fh08-7998-d403-80786315f58", "object_id": "e68e0ie8-gi19-8009-e514-91897426g69", "created_at": "2023-01-01T12:00:00Z", "checklist": { "item1": "Check lighting", "item2": "Verify textures" }, "links": [ "https://example.com/reference1", "https://example.com/reference2" ] } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons": post: summary: Create person description: Create a new person with data provided in the request body. JSON format is expected. Requires admin permissions. Validates role, contract_type, two_factor_authentication, email, and expiration_date. Checks user limit for active non-bot users. requestBody: required: true content: application/json: schema: type: object required: - first_name - last_name - email properties: first_name: type: string example: John last_name: type: string example: Doe email: type: string format: email example: john.doe@example.com password: type: string example: securepassword123 role: type: string example: user active: type: boolean default: true example: true contract_type: type: string example: permanent two_factor_authentication: type: string example: none expiration_date: type: string format: date example: '2025-12-31' is_bot: type: boolean default: false example: false responses: '201': description: Person created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string example: John last_name: type: string example: Doe email: type: string format: email example: john.doe@example.com role: type: string example: user active: type: boolean example: true contract_type: type: string example: permanent two_factor_authentication: type: string example: none access_token: type: string example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error or user limit reached tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/persons" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "password": "securepassword123", "role": "user", "active": true, "contract_type": "permanent", "two_factor_authentication": "none", "expiration_date": "2025-12-31", "is_bot": false }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "password": "securepassword123", "role": "user", "active": true, "contract_type": "permanent", "two_factor_authentication": "none", "expiration_date": "2025-12-31", "is_bot": false } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get persons description: Retrieve all persons. Supports filtering via query parameters and pagination. Admin users can include password hashes. Non-admin users only see minimal information. responses: '200': description: Persons retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations - in: query name: with_pass_hash required: false schema: type: boolean default: false example: false description: Include password hash (admin only) tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons?page=1&limit=50&relations=false&with_pass_hash=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false, "with_pass_hash": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{instance_id}": put: summary: Update person description: Update a person with data provided in the request body. JSON format is expected. Users can only update themselves unless they have admin permissions. Non-admins cannot change certain protected fields. Validates role, contract_type, two_factor_authentication, email, and expiration_date. Checks user limit when activating non-bot users. Protected accounts have restrictions. requestBody: required: true content: application/json: schema: type: object properties: first_name: type: string example: Jane last_name: type: string example: Smith email: type: string format: email example: jane.smith@example.com password: type: string example: newsecurepassword123 role: type: string example: manager description: Admin only active: type: boolean example: true description: Admin only contract_type: type: string example: freelance two_factor_authentication: type: string example: totp expiration_date: type: string format: date example: '2025-12-31' description: Person or admin only responses: '200': description: Person updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string example: Jane last_name: type: string example: Smith email: type: string format: email example: jane.smith@example.com role: type: string example: manager active: type: boolean example: true contract_type: type: string example: freelance two_factor_authentication: type: string example: totp departments: type: array items: type: string format: uuid example: [] access_token: type: string example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error or user limit reached or protected account restriction parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "first_name": "Jane", "last_name": "Smith", "email": "jane.smith@example.com", "password": "newsecurepassword123", "role": "manager", "active": true, "contract_type": "freelance", "two_factor_authentication": "totp", "expiration_date": "2025-12-31" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "first_name": "Jane", "last_name": "Smith", "email": "jane.smith@example.com", "password": "newsecurepassword123", "role": "manager", "active": true, "contract_type": "freelance", "two_factor_authentication": "totp", "expiration_date": "2025-12-31" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete person description: Delete a person by their ID. Returns empty response on success. Cannot delete yourself. responses: '204': description: Person deleted successfully '400': description: Cannot delete person or integrity error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: force required: false schema: type: boolean default: false example: false description: Force deletion even if person has associated data tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get person description: Retrieve a person by their ID and return it as a JSON object. Supports including relations. Managers see safe serialization, others see minimal information. responses: '200': description: Person retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string example: John last_name: type: string example: Doe email: type: string format: email example: john.doe@example.com role: type: string example: user active: type: boolean example: true contract_type: type: string example: permanent two_factor_authentication: type: string example: none departments: type: array items: type: string format: uuid example: [] created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects": post: summary: Create project description: Create a new project with data provided in the request body. JSON format is expected. Validates production_style. For tvshow production type, automatically creates first episode. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Project Name production_type: type: string example: feature production_style: type: string default: 2d3d example: 2d3d project_status_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Project created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Project Name production_type: type: string example: feature production_style: type: string example: 2d3d project_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 first_episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or invalid production_style tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Project Name", "production_type": "feature", "production_style": "2d3d", "project_status_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Project Name", "production_type": "feature", "production_style": "2d3d", "project_status_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get projects description: Retrieve all projects. Supports filtering via query parameters and pagination. Includes project permission filtering for non-admin users. responses: '200': description: Projects retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{instance_id}": put: summary: Update project description: Update a project with data provided in the request body. JSON format is expected. Requires manager access to the project. Validates production_style. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Project Name production_style: type: string example: 2d preview_background_file_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Project updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Project Name production_type: type: string example: feature production_style: type: string example: 2d project_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 first_episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or invalid production_style parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Project Name", "production_style": "2d", "preview_background_file_id": "b24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Project Name", "production_style": "2d", "preview_background_file_id": "b24a6ea4-ce75-4665-a070-57453082c25" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete project description: Delete a project by its ID. Only closed projects can be deleted. Returns empty response on success. responses: '204': description: Project deleted successfully '400': description: Only closed projects can be deleted or integrity error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: force required: false schema: type: boolean default: false example: false description: Force deletion with cascading removal tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project description: Retrieve a project by its ID and return it as a JSON object. Supports including relations. Requires project access. responses: '200': description: Project retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Project Name production_type: type: string example: feature production_style: type: string example: 2d3d project_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 project_status_name: type: string example: Open created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/project-status": post: summary: Create project status description: Create a new project status with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Open color: type: string example: "#00FF00" responses: '201': description: Project status created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Open color: type: string example: "#00FF00" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/project-status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Open", "color": "#00FF00" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/project-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Open", "color": "#00FF00" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project statuses description: Retrieve all project statuses. Supports filtering via query parameters and pagination. responses: '200': description: Project statuses retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/project-status?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/project-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/project-status/{instance_id}": put: summary: Update project status description: Update a project status with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Closed color: type: string example: "#FF0000" responses: '200': description: Project status updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Closed color: type: string example: "#FF0000" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Closed", "color": "#FF0000" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Closed", "color": "#FF0000" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete project status description: Delete a project status by its ID. Returns empty response on success. responses: '204': description: Project status deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project status description: Retrieve a project status by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Project status retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Open color: type: string example: "#00FF00" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entity-types": post: summary: Create entity type description: Create a new entity type with data provided in the request body. JSON format is expected. Entity type names must be unique. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Character color: type: string example: "#FF5733" responses: '201': description: Entity type created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Character color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or entity type already exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entity-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Character", "color": "#FF5733" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Character", "color": "#FF5733" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity types description: Retrieve all entity types. Supports filtering via query parameters and pagination. responses: '200': description: Entity types retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entity-types?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entity-types/{instance_id}": put: summary: Update entity type description: Update an entity type with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Character color: type: string example: "#FF5734" responses: '200': description: Entity type updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Character color: type: string example: "#FF5734" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Character", "color": "#FF5734" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Character", "color": "#FF5734" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete entity type description: Delete an entity type by its ID. Returns empty response on success. responses: '204': description: Entity type deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity type description: Retrieve an entity type by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Entity type retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Character color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities": post: summary: Create entity description: Create a new entity with data provided in the request body. JSON format is expected. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object required: - name - project_id - entity_type_id properties: name: type: string example: SH010 project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 status: type: string example: running data: type: object example: frame_in: 1001 frame_out: 1120 responses: '201': description: Entity created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 status: type: string example: running data: type: object example: frame_in: 1001 frame_out: 1120 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "SH010", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "status": "running", "data": { "frame_in": 1001, "frame_out": 1120 } }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "SH010", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "status": "running", "data": { "frame_in": 1001, "frame_out": 1120 } } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entities description: Retrieve all entities. Supports filtering via query parameters and pagination. Includes project permission filtering for non-admin users. responses: '200': description: Entities retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{instance_id}": put: summary: Update entity description: Update an entity with data provided in the request body. JSON format is expected. Supports shot versioning when frame data changes. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: SH010 data: type: object example: frame_in: 1001 frame_out: 1120 responses: '200': description: Entity updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 data: type: object example: frame_in: 1001 frame_out: 1120 '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "SH010", "data": { "frame_in": 1001, "frame_out": 1120 } }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "SH010", "data": { "frame_in": 1001, "frame_out": 1120 } } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete entity description: Delete an entity by its ID. Returns empty response on success. Can only be deleted by creator or project manager. responses: '204': description: Entity deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity description: Retrieve an entity by its ID and return it as a JSON object. Supports including relations. Requires project access. responses: '200': description: Entity retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 status: type: string example: running data: type: object example: frame_in: 1001 frame_out: 1120 type: type: string example: shot created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-types": post: summary: Create task type description: Create a new task type with data provided in the request body. JSON format is expected. Task type names must be unique. requestBody: required: true content: application/json: schema: type: object required: - name - for_entity properties: name: type: string example: Animation for_entity: type: string example: Shot color: type: string example: "#FF5733" responses: '201': description: Task type created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation for_entity: type: string example: Shot color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or task type name already exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Animation", "for_entity": "Shot", "color": "#FF5733" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Animation", "for_entity": "Shot", "color": "#FF5733" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get task types description: Retrieve all task types. Supports filtering via query parameters and pagination. responses: '200': description: Task types retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/task-types?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-types/{instance_id}": put: summary: Update task type description: Update a task type with data provided in the request body. JSON format is expected. Task type names must be unique. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Animation color: type: string example: "#FF5734" responses: '200': description: Task type updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Animation for_entity: type: string example: Shot color: type: string example: "#FF5734" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or task type name already exists parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Animation", "color": "#FF5734" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Animation", "color": "#FF5734" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete task type description: Delete a task type by its ID. Returns empty response on success. responses: '204': description: Task type deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get task type description: Retrieve a task type by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Task type retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation for_entity: type: string example: Shot color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-type-links": post: summary: Create project task type link description: Create a link between a project and a task type. Sets the priority of the task type within the project. requestBody: required: true content: application/json: schema: type: object required: - project_id - task_type_id properties: project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 priority: type: integer default: 1 example: 1 description: Priority of the task type in the project responses: '201': description: Project task type link created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 priority: type: integer example: 1 '400': description: Invalid project or task type tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/task-type-links" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "priority": 1 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-type-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "priority": 1 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-status": post: summary: Create task status description: Create a new task status with data provided in the request body. JSON format is expected. If is_default is true, sets all other statuses to non-default. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: To Do short_name: type: string example: TODO color: type: string example: "#FF5733" is_default: type: boolean default: false example: false responses: '201': description: Task status created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: To Do short_name: type: string example: TODO color: type: string example: "#FF5733" is_default: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/task-status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "To Do", "short_name": "TODO", "color": "#FF5733", "is_default": false }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "To Do", "short_name": "TODO", "color": "#FF5733", "is_default": false } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get task statuses description: Retrieve all task statuses. Supports filtering via query parameters and pagination. responses: '200': description: Task statuses retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/task-status?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-status/{instance_id}": put: summary: Update task status description: Update a task status with data provided in the request body. JSON format is expected. If is_default is set to true, sets all other statuses to non-default. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: In Progress short_name: type: string example: WIP color: type: string example: "#00FF00" is_default: type: boolean example: true responses: '200': description: Task status updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: In Progress short_name: type: string example: WIP color: type: string example: "#00FF00" is_default: type: boolean example: true created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "In Progress", "short_name": "WIP", "color": "#00FF00", "is_default": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "In Progress", "short_name": "WIP", "color": "#00FF00", "is_default": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete task status description: Delete a task status by its ID. Returns empty response on success. responses: '204': description: Task status deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get task status description: Retrieve a task status by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Task status retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: To Do short_name: type: string example: TODO color: type: string example: "#FF5733" is_default: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/task-status-links": post: summary: Create project task status link description: Create a link between a project and a task status. Sets the priority and roles that can view it on the board. requestBody: required: true content: application/json: schema: type: object required: - project_id - task_status_id properties: project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 priority: type: integer default: 1 example: 1 description: Priority of the task status in the project roles_for_board: type: array items: type: string example: - admin - manager description: Roles allowed to see this status on the board responses: '201': description: Project task status link created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 priority: type: integer example: 1 roles_for_board: type: array items: type: string example: - admin - manager '400': description: Invalid project or task status tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/task-status-links" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "priority": 1, "roles_for_board": [ "admin", "manager" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/task-status-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "priority": 1, "roles_for_board": [ "admin", "manager" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks": post: summary: Create task description: Create a task with data provided in the request body. JSON format is expected. The task type must match the entity type. requestBody: required: true content: application/json: schema: type: object required: - task_type_id - entity_id properties: task_type_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - c24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Task created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - c24a6ea4-ce75-4665-a070-57453082c25 '400': description: Task type does not match entity type or task already exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25", "assignees": [ "c24a6ea4-ce75-4665-a070-57453082c25" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25", "assignees": [ "c24a6ea4-ce75-4665-a070-57453082c25" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get tasks description: Retrieve all tasks. Supports filtering via query parameters and pagination. Includes project permission filtering for non-admin users. Vendor users only see assigned tasks. responses: '200': description: Tasks retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations - in: query name: episode_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter tasks by episode ID tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks?page=1&limit=50&relations=false&episode_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false, "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{instance_id}": put: summary: Update task description: Update a task with data provided in the request body. JSON format is expected. Requires supervisor access. requestBody: required: true content: application/json: schema: type: object properties: task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - c24a6ea4-ce75-4665-a070-57453082c25 duration: type: number example: 8.5 responses: '200': description: Task updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 duration: type: number example: 8.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "assignees": [ "c24a6ea4-ce75-4665-a070-57453082c25" ], "duration": 8.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "assignees": [ "c24a6ea4-ce75-4665-a070-57453082c25" ], "duration": 8.5 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete task description: Delete a task by its ID. Returns empty response on success. May require force flag if task has associated data. responses: '204': description: Task deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: force required: false schema: type: boolean default: false example: false description: Force deletion even if task has associated data tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get task description: Retrieve a task by its ID and return it as a JSON object. Supports including relations. Requires project and entity access. responses: '200': description: Task retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments": post: summary: Create department description: Create a new department with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Animation color: type: string example: "#FF5733" responses: '201': description: Department created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/departments" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Animation", "color": "#FF5733" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Animation", "color": "#FF5733" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get departments description: Retrieve all departments. Supports filtering via query parameters and pagination. responses: '200': description: Departments retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/{instance_id}": put: summary: Update department description: Update a department with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Animation color: type: string example: "#FF5734" responses: '200': description: Department updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Animation color: type: string example: "#FF5734" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Animation", "color": "#FF5734" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Animation", "color": "#FF5734" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete department description: Delete a department by its ID. Returns empty response on success. responses: '204': description: Department deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get department description: Retrieve a department by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Department retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation color: type: string example: "#FF5733" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/organisations": post: summary: Create organisation description: Create a new organisation with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Studio Name hours_by_day: type: number example: 8.0 responses: '201': description: Organisation created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Studio Name hours_by_day: type: number example: 8.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/organisations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Studio Name", "hours_by_day": 8 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/organisations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Studio Name", "hours_by_day": 8 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get organisations description: Retrieve all organisations. Supports filtering via query parameters and pagination. responses: '200': description: Organisations retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/organisations?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/organisations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/organisations/{instance_id}": put: summary: Update organisation description: Update an organisation with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Studio Name hours_by_day: type: number example: 7.5 responses: '200': description: Organisation updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Studio Name hours_by_day: type: number example: 7.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Studio Name", "hours_by_day": 7.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Studio Name", "hours_by_day": 7.5 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete organisation description: Delete an organisation by its ID. Returns empty response on success. responses: '204': description: Organisation deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get organisation description: Retrieve an organisation by its ID and return it as a JSON object. Supports including relations. Non-admin users cannot see chat tokens. responses: '200': description: Organisation retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Studio Name hours_by_day: type: number example: 8.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/file-status/": post: summary: Create file status description: Create a new file status with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Approved color: type: string example: "#00FF00" responses: '201': description: File status created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Approved color: type: string example: "#00FF00" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/file-status/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Approved", "color": "#00FF00" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/file-status/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Approved", "color": "#00FF00" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get file statuses description: Retrieve all file statuses. Supports filtering via query parameters and pagination. responses: '200': description: File statuses retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/file-status/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/file-status/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/file-status/{instance_id}": put: summary: Update file status description: Update a file status with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Rejected color: type: string example: "#FF0000" responses: '200': description: File status updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Rejected color: type: string example: "#FF0000" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Rejected", "color": "#FF0000" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Rejected", "color": "#FF0000" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete file status description: Delete a file status by its ID. Returns empty response on success. responses: '204': description: File status deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get file status description: Retrieve a file status by its ID and return it as a JSON object. Supports including relations. responses: '200': description: File status retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Approved color: type: string example: "#00FF00" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/softwares": post: summary: Create model description: Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Model Name responses: '201': description: Model created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/softwares" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/softwares" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Model Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get models description: Retrieve all entries for the given model. Supports filtering via query parameters and pagination. responses: '200': description: Models retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/softwares?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/softwares" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/softwares/{instance_id}": put: summary: Update model description: Update a model instance with data provided in the request body. JSON format is expected. Model performs validation automatically when fields are modified. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Model Name responses: '200': description: Model updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Model Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete model description: Delete a model instance by its ID. Returns empty response on success. responses: '204': description: Model deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get software description: Retrieve a software instance by its ID and return it as a JSON object. responses: '200': description: Software retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Maya created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/hardware-items": post: summary: Create hardware item description: Create a new hardware item with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Workstation 01 serial_number: type: string example: SN123456 responses: '201': description: Hardware item created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Workstation 01 serial_number: type: string example: SN123456 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/hardware-items" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Workstation 01", "serial_number": "SN123456" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/hardware-items" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Workstation 01", "serial_number": "SN123456" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get hardware items description: Retrieve all hardware items. Supports filtering via query parameters and pagination. responses: '200': description: Hardware items retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/hardware-items?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/hardware-items" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/hardware-items/{instance_id}": put: summary: Update hardware item description: Update a hardware item with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Workstation 01 serial_number: type: string example: SN123457 responses: '200': description: Hardware item updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Workstation 01 serial_number: type: string example: SN123457 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Workstation 01", "serial_number": "SN123457" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Workstation 01", "serial_number": "SN123457" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete hardware item description: Delete a hardware item by its ID. Returns empty response on success. responses: '204': description: Hardware item deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get hardware item description: Retrieve a hardware item by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Hardware item retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Workstation 01 serial_number: type: string example: SN123456 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/output-files": post: summary: Create model description: Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Model Name responses: '201': description: Model created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/output-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Model Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get models description: Retrieve all entries for the given model. Supports filtering via query parameters and pagination. responses: '200': description: Models retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/output-files?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/output-files/{instance_id}": put: summary: Update model description: Update a model instance with data provided in the request body. JSON format is expected. Model performs validation automatically when fields are modified. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Model Name responses: '200': description: Model updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Model Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete model description: Delete a model instance by its ID. Returns empty response on success. responses: '204': description: Model deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get output file description: Retrieve an output file instance by its ID and return it as a JSON object. responses: '200': description: Output file retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: output_file_v001 entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/output-types": post: summary: Create model description: Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Model Name responses: '201': description: Model created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/output-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Model Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get models description: Retrieve all entries for the given model. Supports filtering via query parameters and pagination. responses: '200': description: Models retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/output-types?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/output-types/{instance_id}": put: summary: Update model description: Update a model instance with data provided in the request body. JSON format is expected. Model performs validation automatically when fields are modified. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Model Name responses: '200': description: Model updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Model Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete model description: Delete a model instance by its ID. Returns empty response on success. responses: '204': description: Model deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get output type description: Retrieve an output type instance by its ID and return it as a JSON object. responses: '200': description: Output type retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Image created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/preview-files": post: summary: Create preview file description: Create a new preview file with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name - task_id properties: name: type: string example: preview_file_v001 task_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer default: 1 example: 1 responses: '201': description: Preview file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: preview_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 1 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "preview_file_v001", "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "revision": 1 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "preview_file_v001", "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "revision": 1 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get preview files description: Retrieve all preview files. Supports filtering via query parameters and pagination. Includes project permission filtering. Vendor users only see assigned tasks. responses: '200': description: Preview files retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/preview-files?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/preview-files/{instance_id}": put: summary: Update preview file description: Update a preview file with data provided in the request body. JSON format is expected. Requires project access. Non-managers must be working on the task. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: updated_preview_file_v001 revision: type: integer example: 2 responses: '200': description: Preview file updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: updated_preview_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 2 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "updated_preview_file_v001", "revision": 2 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "updated_preview_file_v001", "revision": 2 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete preview file description: Delete a preview file by its ID. Returns empty response on success. May require force flag if file has associated data. responses: '204': description: Preview file deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: force required: false schema: type: boolean default: false example: false description: Force deletion even if file has associated data tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get preview file description: Retrieve a preview file by its ID and return it as a JSON object. Supports including relations. Vendors must be working on the task. Artists must have project access. responses: '200': description: Preview file retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: preview_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 1 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/working-files": post: summary: Create working file description: Create a new working file with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name - task_id - entity_id properties: name: type: string example: work_file_v001 task_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer default: 1 example: 1 responses: '201': description: Working file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: work_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 1 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/working-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "work_file_v001", "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25", "revision": 1 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "work_file_v001", "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25", "revision": 1 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get working files description: Retrieve all working files. Supports filtering via query parameters and pagination. Vendor access is blocked. Includes project permission filtering for non-admin users. responses: '200': description: Working files retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/working-files?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/working-files/{instance_id}": put: summary: Update working file description: Update a working file with data provided in the request body. JSON format is expected. Requires task action access. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: updated_work_file_v001 revision: type: integer example: 2 responses: '200': description: Working file updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: updated_work_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 2 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "updated_work_file_v001", "revision": 2 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "updated_work_file_v001", "revision": 2 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete working file description: Delete a working file by its ID. Returns empty response on success. responses: '204': description: Working file deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get working file description: Retrieve a working file instance by its ID and return it as a JSON object. responses: '200': description: Working file retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: work_file_v001 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/attachment-files": post: summary: Create attachment file description: Create a new attachment file with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: attachment.pdf comment_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Attachment file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: attachment.pdf comment_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/attachment-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "attachment.pdf", "comment_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "attachment.pdf", "comment_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get attachment files description: Retrieve all attachment files. Supports filtering via query parameters and pagination. responses: '200': description: Attachment files retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/attachment-files?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/attachment-files/{instance_id}": put: summary: Update attachment file description: Update an attachment file with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: updated_attachment.pdf responses: '200': description: Attachment file updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: updated_attachment.pdf created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "updated_attachment.pdf" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "updated_attachment.pdf" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete attachment file description: Delete an attachment file by its ID. Returns empty response on success. responses: '204': description: Attachment file deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get attachment file description: Retrieve an attachment file by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Attachment file retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: attachment.pdf comment_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/comments": post: summary: Create comment description: Create a new comment with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - object_id - person_id - task_status_id properties: object_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Comment text responses: '201': description: Comment created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Comment text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/comments" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "object_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "c24a6ea4-ce75-4665-a070-57453082c25", "text": "Comment text" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/comments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "object_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "c24a6ea4-ce75-4665-a070-57453082c25", "text": "Comment text" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get comments description: Retrieve all comments. Supports filtering via query parameters and pagination. responses: '200': description: Comments retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/comments?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/comments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/comments/{instance_id}": put: summary: Update comment description: Update a comment with data provided in the request body. JSON format is expected. May update task status if task_status_id is changed. requestBody: required: true content: application/json: schema: type: object properties: text: type: string example: Updated comment text task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 pinned: type: boolean example: true checklist: type: array items: type: object example: - text: Item 1 checked: false responses: '200': description: Comment updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Updated comment text pinned: type: boolean example: true created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "text": "Updated comment text", "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "pinned": true, "checklist": [ { "text": "Item 1", "checked": false } ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "text": "Updated comment text", "task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "pinned": true, "checklist": [ { "text": "Item 1", "checked": false } ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete comment description: Delete a comment by its ID. Returns empty response on success. Updates task status if comment had status change. responses: '204': description: Comment deleted successfully '400': description: Cannot delete comment or integrity error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get comment description: Retrieve a comment by its ID and return it as a JSON object. Supports including relations. Client users can only see their own comments or comments from other clients. responses: '200': description: Comment retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Comment text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations - in: query name: with_previews required: false schema: type: boolean default: false example: true description: Whether to expand preview IDs to full preview objects tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/time-spents/": post: summary: Create time spent description: Create a new time spent record with data provided in the request body. JSON format is expected. Updates task duration automatically. requestBody: required: true content: application/json: schema: type: object required: - task_id - person_id - date - duration properties: task_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-15' duration: type: number example: 8.5 responses: '201': description: Time spent record created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-15' duration: type: number example: 8.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/time-spents/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "date": "2024-01-15", "duration": 8.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/time-spents/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "date": "2024-01-15", "duration": 8.5 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get time spents description: Retrieve all time spent records. Supports filtering via query parameters and pagination. Supports date range filtering with start_date and end_date. responses: '200': description: Time spent records retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations - in: query name: start_date required: false schema: type: string format: date example: '2024-01-01' description: Start date for date range filter - in: query name: end_date required: false schema: type: string format: date example: '2024-01-31' description: End date for date range filter tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/time-spents/?page=1&limit=50&relations=false&start_date=2024-01-01&end_date=2024-01-31" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/time-spents/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false, "start_date": "2024-01-01", "end_date": "2024-01-31" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/time-spents/{instance_id}": put: summary: Update time spent description: Update a time spent record with data provided in the request body. JSON format is expected. Updates task duration automatically. requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2024-01-16' duration: type: number example: 7.5 responses: '200': description: Time spent record updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-16' duration: type: number example: 7.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "date": "2024-01-16", "duration": 7.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "date": "2024-01-16", "duration": 7.5 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete time spent description: Delete a time spent record by its ID. Returns empty response on success. Updates task duration automatically. responses: '204': description: Time spent record deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get time spent description: Retrieve a time spent record by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Time spent record retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-15' duration: type: number example: 8.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/day-offs/": post: summary: Create day off description: Create a new day off with data provided in the request body. JSON format is expected. Deletes overlapping time spent entries. requestBody: required: true content: application/json: schema: type: object required: - date - end_date - person_id properties: date: type: string format: date example: '2024-01-15' end_date: type: string format: date example: '2024-01-20' person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Day off created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-15' end_date: type: string format: date example: '2024-01-20' person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or day off already exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/day-offs/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "date": "2024-01-15", "end_date": "2024-01-20", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/day-offs/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "date": "2024-01-15", "end_date": "2024-01-20", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get day offs description: Retrieve all day offs. Supports filtering via query parameters and pagination. responses: '200': description: Day offs retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/day-offs/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/day-offs/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/day-offs/{instance_id}": put: summary: Update day off description: Update a day off with data provided in the request body. JSON format is expected. Deletes overlapping time spent entries. requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date example: '2024-01-16' end_date: type: string format: date example: '2024-01-21' responses: '200': description: Day off updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-16' end_date: type: string format: date example: '2024-01-21' person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or day off already exists parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "date": "2024-01-16", "end_date": "2024-01-21" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "date": "2024-01-16", "end_date": "2024-01-21" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete day off description: Delete a day off by its ID. Returns empty response on success. responses: '204': description: Day off deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get day off description: Retrieve a day off by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Day off retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-01-15' end_date: type: string format: date example: '2024-01-20' person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/custom-actions/": post: summary: Create custom action description: Create a new custom action with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Custom Action Name url_pattern: type: string example: "/api/actions/{id}" responses: '201': description: Custom action created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Custom Action Name url_pattern: type: string example: "/api/actions/{id}" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/custom-actions/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Custom Action Name", "url_pattern": "/api/actions/{id}" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/custom-actions/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Custom Action Name", "url_pattern": "/api/actions/{id}" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get custom actions description: Retrieve all custom actions. Supports filtering via query parameters and pagination. Vendor access is blocked. responses: '200': description: Custom actions retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/custom-actions/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/custom-actions/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/custom-actions/{instance_id}": put: summary: Update custom action description: Update a custom action with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Custom Action Name url_pattern: type: string example: "/api/actions/{id}" responses: '200': description: Custom action updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Custom Action Name url_pattern: type: string example: "/api/actions/{id}" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Custom Action Name", "url_pattern": "/api/actions/{id}" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Custom Action Name", "url_pattern": "/api/actions/{id}" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete custom action description: Delete a custom action by its ID. Returns empty response on success. responses: '204': description: Custom action deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get custom action description: Retrieve a custom action by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Custom action retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Custom Action Name url_pattern: type: string example: "/api/actions/{id}" created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/status-automations/": post: summary: Create status automation description: Create a new status automation with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - source_task_status_id - target_task_status_id - field_name - field_value properties: source_task_status_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 target_task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 field_name: type: string example: ready_for field_value: type: string example: production responses: '201': description: Status automation created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 source_task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 target_task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 field_name: type: string example: ready_for field_value: type: string example: production created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/status-automations/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "source_task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "target_task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "field_name": "ready_for", "field_value": "production" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/status-automations/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "source_task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "target_task_status_id": "b24a6ea4-ce75-4665-a070-57453082c25", "field_name": "ready_for", "field_value": "production" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get status automations description: Retrieve all status automations. Supports filtering via query parameters and pagination. Vendor access is blocked. responses: '200': description: Status automations retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/status-automations/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/status-automations/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/status-automations/{instance_id}": put: summary: Update status automation description: Update a status automation with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: field_name: type: string example: ready_for field_value: type: string example: approved responses: '200': description: Status automation updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 source_task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 target_task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 field_name: type: string example: ready_for field_value: type: string example: approved created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "field_name": "ready_for", "field_value": "approved" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "field_name": "ready_for", "field_value": "approved" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete status automation description: Delete a status automation by its ID. Returns empty response on success. Cannot delete if automation is used in a project. responses: '204': description: Status automation deleted successfully '400': description: Automation is used in a project or integrity error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get status automation description: Retrieve a status automation by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Status automation retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 source_task_status_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 target_task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 field_name: type: string example: ready_for field_value: type: string example: production created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/": post: summary: Create asset instance description: Create a new asset instance with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - asset_id properties: asset_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Instance Name responses: '201': description: Asset instance created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 asset_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Instance Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/asset-instances/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Instance Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Instance Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get asset instances description: Retrieve all asset instances. Supports filtering via query parameters and pagination. responses: '200': description: Asset instances retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{instance_id}": put: summary: Update asset instance description: Update an asset instance with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Instance Name responses: '200': description: Asset instance updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 asset_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Instance Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Instance Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Instance Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete asset instance description: Delete an asset instance by its ID. Returns empty response on success. responses: '204': description: Asset instance deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get asset instance description: Retrieve an asset instance by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Asset instance retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 asset_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Instance Name number: type: integer example: 1 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/": post: summary: Create playlist description: Create a new playlist with data provided in the request body. JSON format is expected. Requires supervisor access to the project. requestBody: required: true content: application/json: schema: type: object required: - name - project_id properties: name: type: string example: Playlist Name project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Playlist created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Playlist Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/playlists/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Playlist Name", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "b24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "c24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Playlist Name", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "b24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "c24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get playlists description: Retrieve all playlists. Supports filtering via query parameters and pagination. responses: '200': description: Playlists retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/{instance_id}": put: summary: Update playlist description: Update a playlist with data provided in the request body. JSON format is expected. Requires project access. Vendor access is blocked. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Playlist Name shots: type: array items: type: object properties: entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 preview_file_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 example: [] responses: '200': description: Playlist updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Playlist Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 shots: type: array items: type: object example: [] created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Playlist Name", "shots": [] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Playlist Name", "shots": [] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete playlist description: Delete a playlist by its ID. Returns empty response on success. responses: '204': description: Playlist deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get playlist description: Retrieve a playlist by its ID and return it as a JSON object. Supports including relations. Requires project access. Vendor access is blocked. responses: '200': description: Playlist retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Playlist Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 shots: type: array items: type: object example: [] created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/events/": post: summary: Create model description: Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Model Name responses: '201': description: Model created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/events/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Model Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get events description: Retrieve all events. Supports filtering via query parameters and pagination. Limited to 1000 results. responses: '200': description: Events retrieved successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Event Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/events/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/events/{instance_id}": put: summary: Update event description: Update an event with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Event Name responses: '200': description: Event updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Event Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Event Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Event Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete event description: Delete an event by its ID. Returns empty response on success. responses: '204': description: Event deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get event description: Retrieve an event by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Event retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Event Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/notifications/": post: summary: Create notification description: Create a new notification with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - person_id - comment_id properties: person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 read: type: boolean default: false example: false responses: '201': description: Notification created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 read: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/notifications/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment_id": "b24a6ea4-ce75-4665-a070-57453082c25", "read": false }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/notifications/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment_id": "b24a6ea4-ce75-4665-a070-57453082c25", "read": false } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get notifications description: Retrieve all notifications. Supports filtering via query parameters and pagination. responses: '200': description: Notifications retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/notifications/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/notifications/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/notifications/{instance_id}": put: summary: Update notification description: Update a notification with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: read: type: boolean example: true responses: '200': description: Notification updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 read: type: boolean example: true created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "read": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "read": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete notification description: Delete a notification by its ID. Returns empty response on success. responses: '204': description: Notification deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get notification description: Retrieve a notification by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Notification retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 read: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/search-filters/": post: summary: Create search filter description: Create a new search filter with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name - person_id - search_filter_group_id properties: name: type: string example: My Filter person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 search_filter_group_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 list_type: type: string example: assets responses: '201': description: Search filter created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: My Filter person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 search_filter_group_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 list_type: type: string example: assets created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/search-filters/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "My Filter", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "search_filter_group_id": "b24a6ea4-ce75-4665-a070-57453082c25", "list_type": "assets" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filters/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "My Filter", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "search_filter_group_id": "b24a6ea4-ce75-4665-a070-57453082c25", "list_type": "assets" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get search filters description: Retrieve all search filters. Supports filtering via query parameters and pagination. responses: '200': description: Search filters retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/search-filters/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filters/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/search-filters/{instance_id}": put: summary: Update search filter description: Update a search filter with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Filter Name list_type: type: string example: shots responses: '200': description: Search filter updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Filter Name person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 search_filter_group_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 list_type: type: string example: shots created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Filter Name", "list_type": "shots" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Filter Name", "list_type": "shots" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete search filter description: Delete a search filter by its ID. Returns empty response on success. responses: '204': description: Search filter deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get search filter description: Retrieve a search filter by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Search filter retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: My Filter person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 search_filter_group_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 list_type: type: string example: assets created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/search-filter-groups/": post: summary: Create search filter group description: Create a new search filter group with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name - person_id properties: name: type: string example: My Filter Group person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Search filter group created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: My Filter Group person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/search-filter-groups/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "My Filter Group", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filter-groups/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "My Filter Group", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get search filter groups description: Retrieve all search filter groups. Supports filtering via query parameters and pagination. responses: '200': description: Search filter groups retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/search-filter-groups/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filter-groups/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/search-filter-groups/{instance_id}": put: summary: Update search filter group description: Update a search filter group with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Filter Group Name responses: '200': description: Search filter group updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Filter Group Name person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Filter Group Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Filter Group Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete search filter group description: Delete a search filter group by its ID. Returns empty response on success. responses: '204': description: Search filter group deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get search filter group description: Retrieve a search filter group by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Search filter group retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: My Filter Group person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/schedule-items/": post: summary: Create schedule item description: Create a new schedule item with data provided in the request body. JSON format is expected. Similar schedule items cannot exist with same project, task type, and object. requestBody: required: true content: application/json: schema: type: object required: - project_id - task_type_id - object_id properties: project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 man_days: type: number example: 10.5 responses: '201': description: Schedule item created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 man_days: type: number example: 10.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or similar schedule item exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/schedule-items/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "object_id": "c24a6ea4-ce75-4665-a070-57453082c25", "man_days": 10.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/schedule-items/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b24a6ea4-ce75-4665-a070-57453082c25", "object_id": "c24a6ea4-ce75-4665-a070-57453082c25", "man_days": 10.5 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get schedule items description: Retrieve all schedule items. Supports filtering via query parameters and pagination. responses: '200': description: Schedule items retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/schedule-items/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/schedule-items/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/schedule-items/{instance_id}": put: summary: Update schedule item description: Update a schedule item with data provided in the request body. JSON format is expected. Requires supervisor access to project and task type. requestBody: required: true content: application/json: schema: type: object properties: man_days: type: number example: 12.0 responses: '200': description: Schedule item updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 man_days: type: number example: 12.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "man_days": 12 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "man_days": 12 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete schedule item description: Delete a schedule item by its ID. Returns empty response on success. responses: '204': description: Schedule item deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get schedule item description: Retrieve a schedule item by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Schedule item retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 man_days: type: number example: 10.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/news/": post: summary: Create news description: Create a new news entry with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - title - project_id properties: title: type: string example: Project Update project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 content: type: string example: News content text responses: '201': description: News entry created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 title: type: string example: Project Update project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 content: type: string example: News content text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/news/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "title": "Project Update", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "content": "News content text" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/news/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "title": "Project Update", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "content": "News content text" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get news description: Retrieve all news entries. Supports filtering via query parameters and pagination. responses: '200': description: News entries retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/news/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/news/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/news/{instance_id}": put: summary: Update news description: Update a news entry with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: title: type: string example: Updated Project Update content: type: string example: Updated news content text responses: '200': description: News entry updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 title: type: string example: Updated Project Update project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 content: type: string example: Updated news content text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "title": "Updated Project Update", "content": "Updated news content text" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "title": "Updated Project Update", "content": "Updated news content text" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete news description: Delete a news entry by its ID. Returns empty response on success. responses: '204': description: News entry deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get news description: Retrieve a news entry by its ID and return it as a JSON object. Supports including relations. responses: '200': description: News entry retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 title: type: string example: Project Update project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 content: type: string example: News content text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/milestones/": post: summary: Create milestone description: Create a new milestone with data provided in the request body. JSON format is expected. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object required: - name - project_id - date properties: name: type: string example: Milestone Name project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-03-31' responses: '201': description: Milestone created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Milestone Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-03-31' created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/milestones/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Milestone Name", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "date": "2024-03-31" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/milestones/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Milestone Name", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "date": "2024-03-31" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get milestones description: Retrieve all milestones. Supports filtering via query parameters and pagination. responses: '200': description: Milestones retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/milestones/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/milestones/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/milestones/{instance_id}": put: summary: Update milestone description: Update a milestone with data provided in the request body. JSON format is expected. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Milestone Name date: type: string format: date example: '2024-04-30' responses: '200': description: Milestone updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Milestone Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-04-30' created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Milestone Name", "date": "2024-04-30" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Milestone Name", "date": "2024-04-30" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete milestone description: Delete a milestone by its ID. Returns empty response on success. responses: '204': description: Milestone deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get milestone description: Retrieve a milestone by its ID and return it as a JSON object. Supports including relations. Vendor access is blocked. Requires project access. responses: '200': description: Milestone retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Milestone Name project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2024-03-31' created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/metadata-descriptors/": post: summary: Create metadata descriptor description: Create a new metadata descriptor with data provided in the request body. JSON format is expected. Validates data_type. requestBody: required: true content: application/json: schema: type: object required: - name - field_name - data_type - project_id properties: name: type: string example: Custom Field field_name: type: string example: custom_field data_type: type: string example: text project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_type: type: string example: Asset responses: '201': description: Metadata descriptor created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Custom Field field_name: type: string example: custom_field data_type: type: string example: text project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type: type: string example: Asset created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or invalid data_type tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/metadata-descriptors/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Custom Field", "field_name": "custom_field", "data_type": "text", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_type": "Asset" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/metadata-descriptors/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Custom Field", "field_name": "custom_field", "data_type": "text", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_type": "Asset" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get metadata descriptors description: Retrieve all metadata descriptors. Supports filtering via query parameters and pagination. Vendor access is blocked. Includes project permission filtering for non-admin users. responses: '200': description: Metadata descriptors retrieved successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Custom Field field_name: type: string example: custom_field data_type: type: string example: text project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/metadata-descriptors/?page=1&limit=50&relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/metadata-descriptors/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/metadata-descriptors/{instance_id}": put: summary: Update metadata descriptor description: Update a metadata descriptor with data provided in the request body. JSON format is expected. Validates data_type. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Custom Field data_type: type: string example: number responses: '200': description: Metadata descriptor updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Custom Field field_name: type: string example: custom_field data_type: type: string example: number project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or invalid data_type parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Custom Field", "data_type": "number" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Custom Field", "data_type": "number" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete metadata descriptor description: Delete a metadata descriptor by its ID. Returns empty response on success. responses: '204': description: Metadata descriptor deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get metadata descriptor description: Retrieve a metadata descriptor by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Metadata descriptor retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Custom Field field_name: type: string example: custom_field data_type: type: string example: text project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type: type: string example: Asset created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/subscriptions/": post: summary: Create subscription description: Create a new subscription with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - person_id - entity_id properties: person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Subscription created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/subscriptions/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/subscriptions/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "b24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get subscriptions description: Retrieve all subscriptions. Supports filtering via query parameters and pagination. responses: '200': description: Subscriptions retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/subscriptions/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/subscriptions/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/subscriptions/{instance_id}": put: summary: Update subscription description: Update a subscription with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Subscription updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete subscription description: Delete a subscription by its ID. Returns empty response on success. responses: '204': description: Subscription deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get subscription description: Retrieve a subscription by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Subscription retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entity-links/": post: summary: Create entity link description: Create a new entity link with data provided in the request body. JSON format is expected. Links entities together in casting relationships. requestBody: required: true content: application/json: schema: type: object required: - entity_in_id - entity_out_id properties: entity_in_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 nb_occurences: type: integer default: 1 example: 1 label: type: string example: fixed responses: '201': description: Entity link created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_occurences: type: integer example: 1 label: type: string example: fixed created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entity-links/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "entity_in_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_out_id": "b24a6ea4-ce75-4665-a070-57453082c25", "nb_occurences": 1, "label": "fixed" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-links/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "entity_in_id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_out_id": "b24a6ea4-ce75-4665-a070-57453082c25", "nb_occurences": 1, "label": "fixed" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity links description: Retrieve all entity links. Supports filtering via query parameters and pagination. responses: '200': description: Entity links retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entity-links/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-links/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entity-links/{instance_id}": put: summary: Update entity link description: Update an entity link with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: nb_occurences: type: integer example: 2 label: type: string example: updated responses: '200': description: Entity link updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_occurences: type: integer example: 2 label: type: string example: updated created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "nb_occurences": 2, "label": "updated" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "nb_occurences": 2, "label": "updated" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete entity link description: Delete an entity link by its ID. Returns empty response on success. responses: '204': description: Entity link deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get entity link description: Retrieve an entity link by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Entity link retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_occurences: type: integer example: 1 label: type: string example: fixed created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/chats/": post: summary: Create chat description: Create a new chat with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - object_id - object_type properties: object_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_type: type: string example: Asset name: type: string example: Chat Name responses: '201': description: Chat created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 object_type: type: string example: Asset name: type: string example: Chat Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/chats/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "object_id": "a24a6ea4-ce75-4665-a070-57453082c25", "object_type": "Asset", "name": "Chat Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chats/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "object_id": "a24a6ea4-ce75-4665-a070-57453082c25", "object_type": "Asset", "name": "Chat Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chats description: Retrieve all chats. Supports filtering via query parameters and pagination. responses: '200': description: Chats retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/chats/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chats/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/chats/{instance_id}": put: summary: Update chat description: Update a chat with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Chat Name responses: '200': description: Chat updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 object_type: type: string example: Asset name: type: string example: Updated Chat Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Chat Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Chat Name" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete chat description: Delete a chat by its ID. Returns empty response on success. responses: '204': description: Chat deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chat description: Retrieve a chat by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Chat retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 object_type: type: string example: Asset name: type: string example: Chat Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/chat-messages/": post: summary: Create chat message description: Create a new chat message with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - chat_id - person_id properties: chat_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Message text responses: '201': description: Chat message created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 chat_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Message text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/chat-messages/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "chat_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "text": "Message text" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chat-messages/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "chat_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "b24a6ea4-ce75-4665-a070-57453082c25", "text": "Message text" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chat messages description: Retrieve all chat messages. Supports filtering via query parameters and pagination. responses: '200': description: Chat messages retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/chat-messages/?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chat-messages/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/chat-messages/{instance_id}": put: summary: Update chat message description: Update a chat message with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: text: type: string example: Updated message text responses: '200': description: Chat message updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 chat_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Updated message text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "text": "Updated message text" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "text": "Updated message text" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete chat message description: Delete a chat message by its ID. Returns empty response on success. responses: '204': description: Chat message deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get chat message description: Retrieve a chat message by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Chat message retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 chat_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Message text created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/preview-background-files": post: summary: Create preview background file description: Create a new preview background file with data provided in the request body. JSON format is expected. Names must be unique. If is_default is true, resets other defaults. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: background_file_name is_default: type: boolean default: false example: false responses: '201': description: Preview background file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: background_file_name is_default: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or name already exists tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/preview-background-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "background_file_name", "is_default": false }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-background-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "background_file_name", "is_default": false } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get preview background files description: Retrieve all preview background files. Supports filtering via query parameters and pagination. responses: '200': description: Preview background files retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/preview-background-files?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-background-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/preview-background-files/{instance_id}": put: summary: Update preview background file description: Update a preview background file with data provided in the request body. JSON format is expected. Names must be unique. If is_default is set to true, resets other defaults. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: updated_background_file_name is_default: type: boolean example: true responses: '200': description: Preview background file updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: updated_background_file_name is_default: type: boolean example: true created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or name already exists parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "updated_background_file_name", "is_default": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "updated_background_file_name", "is_default": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete preview background file description: Delete a preview background file by its ID. Returns empty response on success. responses: '204': description: Preview background file deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get preview background file description: Retrieve a preview background file by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Preview background file retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: background_file_name is_default: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/studios": post: summary: Create studio description: Create a new studio with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Studio Name hours_by_day: type: number example: 8.0 responses: '201': description: Studio created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Studio Name hours_by_day: type: number example: 8.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/studios" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Studio Name", "hours_by_day": 8 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/studios" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Studio Name", "hours_by_day": 8 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get studios description: Retrieve all studios. Supports filtering via query parameters and pagination. responses: '200': description: Studios retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/studios?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/studios" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/studios/{instance_id}": put: summary: Update studio description: Update a studio with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Studio Name hours_by_day: type: number example: 7.5 responses: '200': description: Studio updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Studio Name hours_by_day: type: number example: 7.5 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Studio Name", "hours_by_day": 7.5 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Studio Name", "hours_by_day": 7.5 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete studio description: Delete a studio by its ID. Returns empty response on success. responses: '204': description: Studio deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get studio description: Retrieve a studio by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Studio retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Studio Name hours_by_day: type: number example: 8.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/salary-scales": post: summary: Create model description: Create a new model instance with data provided in the request body. JSON format is expected. The model performs validation automatically when instantiated. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Model Name responses: '201': description: Model created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Model Name created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/salary-scales" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Model Name" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/salary-scales" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Model Name" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get salary scales description: Retrieve all salary scale entries. Automatically creates missing combinations of department, position, and seniority. responses: '200': description: Salary scales retrieved successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 position: type: string example: artist seniority: type: string example: junior rate: type: number example: 50.0 '400': description: Query error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/salary-scales" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/salary-scales" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/salary-scales/{instance_id}": put: summary: Update salary scale description: Update a salary scale with data provided in the request body. JSON format is expected. Department ID cannot be changed. requestBody: required: true content: application/json: schema: type: object properties: rate: type: number example: 55.0 responses: '200': description: Salary scale updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 position: type: string example: artist seniority: type: string example: junior rate: type: number example: 55.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "rate": 55 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "rate": 55 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete salary scale description: Delete a salary scale by its ID. Returns empty response on success. responses: '204': description: Salary scale deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get salary scale description: Retrieve a salary scale by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Salary scale retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 position: type: string example: artist seniority: type: string example: junior rate: type: number example: 50.0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/plugins/{instance_id}": put: summary: Update plugin description: Update a plugin with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Plugin Name active: type: boolean example: true responses: '200': description: Plugin updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Plugin Name active: type: boolean example: true created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Plugin Name", "active": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Plugin Name", "active": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete plugin description: Delete a plugin by its ID. Returns empty response on success. responses: '204': description: Plugin deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get plugin description: Retrieve a plugin by its ID and return it as a JSON object. Supports including relations. responses: '200': description: Plugin retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Plugin Name active: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/plugins": post: summary: Create plugin description: Create a new plugin with data provided in the request body. JSON format is expected. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string example: Plugin Name active: type: boolean default: false example: false responses: '201': description: Plugin created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Plugin Name active: type: boolean example: false created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/plugins" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Plugin Name", "active": false }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/plugins" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Plugin Name", "active": false } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get plugins description: Retrieve all plugins. Supports filtering via query parameters and pagination. responses: '200': description: Plugins retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/plugins?page=1&limit=50&relations=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/plugins" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/production-schedule-versions": post: summary: Create production schedule version description: Create a new production schedule version with data provided in the request body. JSON format is expected. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object required: - name - project_id properties: name: type: string example: Schedule Version 1 project_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Production schedule version created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Schedule Version 1 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or validation error tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/production-schedule-versions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Schedule Version 1", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Schedule Version 1", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production schedule versions description: Retrieve all production schedule versions. Supports filtering via query parameters and pagination. Vendor and client access is blocked. Requires project access or admin permissions. responses: '200': description: Production schedule versions retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations - in: query name: project_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter by project ID tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/production-schedule-versions?page=1&limit=50&relations=false&project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false, "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/production-schedule-versions/{instance_id}": put: summary: Update production schedule version description: Update a production schedule version with data provided in the request body. JSON format is expected. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object properties: name: type: string example: Updated Schedule Version 1 responses: '200': description: Production schedule version updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Updated Schedule Version 1 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Schedule Version 1" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Schedule Version 1" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete production schedule version description: Delete a production schedule version by its ID. Returns empty response on success. responses: '204': description: Production schedule version deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production schedule version description: Retrieve a production schedule version by its ID and return it as a JSON object. Supports including relations. Vendor and client access is blocked. Requires project access. responses: '200': description: Production schedule version retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Schedule Version 1 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/production-schedule-version-task-links/{instance_id}": put: summary: Update production schedule version task link description: Update a production schedule version task link with data provided in the request body. JSON format is expected. Protected fields cannot be changed. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Task link updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 production_schedule_version_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' '400': description: Invalid data format or validation error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{}' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = {} response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete production schedule version task link description: Delete a production schedule version task link by its ID. Returns empty response on success. Requires manager access to the project. responses: '204': description: Task link deleted successfully '400': description: Integrity error or cannot delete parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production schedule version task link description: Retrieve a production schedule version task link by its ID and return it as a JSON object. Supports including relations. Vendor and client access is blocked. Requires project access. responses: '200': description: Task link retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 production_schedule_version_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid ID format or query error parameters: - in: path name: instance_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: relations required: false schema: type: boolean default: true example: true description: Whether to include relations tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/production-schedule-version-task-links": post: summary: Create production schedule version task link description: Create a link between a production schedule version and a task. JSON format is expected. Task and schedule version must be in the same project. Requires manager access to the project. requestBody: required: true content: application/json: schema: type: object required: - production_schedule_version_id - task_id properties: production_schedule_version_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Task link created successfully content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 production_schedule_version_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid data format or task and schedule version not in same project tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/production-schedule-version-task-links" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "production_schedule_version_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_id": "b24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-version-task-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "production_schedule_version_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_id": "b24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production schedule version task links description: Retrieve all production schedule version task links. Supports filtering via query parameters and pagination. Vendor and client access is blocked. Requires project access or admin permissions. responses: '200': description: Task links retrieved successfully content: application/json: schema: oneOf: - type: array items: type: object - type: object properties: data: type: array items: type: object example: [] total: type: integer example: 100 nb_pages: type: integer example: 2 limit: type: integer example: 50 offset: type: integer example: 0 page: type: integer example: 1 '400': description: Invalid filter format or query error parameters: - in: query name: page required: false schema: type: integer example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer example: 50 description: Number of results per page - in: query name: relations required: false schema: type: boolean default: false example: false description: Whether to include relations - in: query name: project_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter by project ID tags: - Crud x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/production-schedule-version-task-links?page=1&limit=50&relations=false&project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-version-task-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "limit": 50, "relations": false, "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/software-licenses": get: summary: Get all department software licenses description: Retrieve all software licenses organized by department. Returns a dictionary where each department contains its associated software licenses. responses: '200': description: Department software licenses successfully retrieved content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid description: Software license unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Software license name example: Maya short_name: type: string description: Software license short name example: MAYA file_extension: type: string description: Default file extension for the software license example: ".ma" department_id: type: string format: uuid description: Department identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments/software-licenses" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/software-licenses" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/{department_id}/software-licenses": post: summary: Add software license to department description: Associate a software license with a specific department. This allows the department to use the specified software in budget forecasting. requestBody: required: true content: application/json: schema: type: object required: - software_id properties: software_id: type: string format: uuid description: Software identifier to add to department example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Software license successfully added to department content: application/json: schema: type: object properties: id: type: string format: uuid description: Software license department link unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 department_id: type: string format: uuid description: Department identifier example: a24a6ea4-ce75-4665-a070-57453082c25 software_id: type: string format: uuid description: Software license identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "software_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "software_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/{department_id}/software-licenses/{software_id}": delete: summary: Remove software license from department description: Remove a software license from a specific department. This disassociates the software license from the department. responses: '204': description: Software license successfully removed from department parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department - in: path name: software_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the software license to remove tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get department software licenses description: Retrieve all software items that are associated with a specific department. responses: '200': description: Department software licenses successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Software license unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Software license name example: Maya short_name: type: string description: Software license short name example: MAYA file_extension: type: string description: Default file extension for the software license example: ".ma" department_id: type: string format: uuid description: Department identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/{software_id}" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/{software_id}" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/hardware-items": get: summary: Get all department hardware items description: Retrieve all hardware items organized by department. Returns a dictionary where each department contains its associated hardware items. responses: '200': description: Department hardware items successfully retrieved content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid description: Hardware item unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Hardware item name example: Workstation description: type: string description: Hardware item description example: High-performance workstation department_id: type: string format: uuid description: Department identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments/hardware-items" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/hardware-items" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/{department_id}/hardware-items": post: summary: Add hardware item to department description: Associate a hardware item with a specific department. This allows the department to use the specified hardware in budget forecasting. requestBody: required: true content: application/json: schema: type: object required: - hardware_item_id properties: hardware_item_id: type: string format: uuid description: Hardware item identifier to add to department example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Hardware item successfully added to department content: application/json: schema: type: object properties: id: type: string format: uuid description: Hardware department link unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 department_id: type: string format: uuid description: Department identifier example: a24a6ea4-ce75-4665-a070-57453082c25 hardware_item_id: type: string format: uuid description: Hardware item identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' '400': description: Hardware item ID matches no hardware item parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "hardware_item_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "hardware_item_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/departments/{department_id}/hardware-items/{hardware_item_id}": delete: summary: Remove hardware item from department description: Remove a hardware item from a specific department. This disassociates the hardware from the department. responses: '204': description: Hardware item successfully removed from department parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department - in: path name: hardware_item_id required: true type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Unique identifier of the hardware item to remove tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get department hardware items description: Retrieve all hardware items that are associated with a specific department. responses: '200': description: Department hardware items successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Hardware item unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Hardware item name example: Workstation description: type: string description: Hardware item description example: High-performance workstation department_id: type: string format: uuid description: Department identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: department_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the department tags: - Departments x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/{hardware_item_id}" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/{hardware_item_id}" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/news": get: summary: Get entity news description: Retrieve all news entries that are linked to a specific entity. responses: '200': description: List of entity news successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: News unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 change: type: boolean description: Whether this news represents a change example: true author_id: type: string format: uuid description: Author person identifier example: b35b7fb5-df86-5776-b181-68564193d36 comment_id: type: string format: uuid description: Comment identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_id: type: string format: uuid description: Task identifier example: d57d9hd7-fh08-7998-d403-80786315f58 preview_file_id: type: string format: uuid description: Preview file identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Entities x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/news" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/news" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/preview-files": get: summary: Get entity preview files description: Retrieve all preview files that are linked to a specific entity. This includes images, videos, and other preview media associated with the entity. responses: '200': description: List of entity preview files successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Preview file name example: preview_001.jpg path: type: string description: File path example: "/previews/entity/preview_001.jpg" revision: type: integer description: File revision number example: 1 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' entity_id: type: string format: uuid description: Entity identifier example: b35b7fb5-df86-5776-b181-68564193d36 task_id: type: string format: uuid description: Task identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Entities x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/time-spents": get: summary: Get entity time spent description: Retrieve all time spent entries that are linked to a specific entity. responses: '200': description: List of entity time spent entries successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 duration: type: number format: float description: Time duration in hours example: 2.5 date: type: string format: date description: Date when time was spent example: '2023-12-07' created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' person_id: type: string format: uuid description: Person identifier who spent the time example: b35b7fb5-df86-5776-b181-68564193d36 entity_id: type: string format: uuid description: Entity identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Entities x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/entities-linked/with-tasks": get: summary: Get linked entities description: Retrieve all entities that are linked to a specific entity along with their associated tasks. This includes related entities, dependencies, and hierarchical relationships. responses: '200': description: List of linked entities successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Entity name example: Character Model entity_type_id: type: string format: uuid description: Entity type identifier example: b35b7fb5-df86-5776-b181-68564193d36 project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parent_id: type: string format: uuid description: Parent entity identifier example: d57d9hd7-fh08-7998-d403-80786315f58 tasks: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Task name example: Modeling Task task_type_id: type: string format: uuid description: Task type identifier example: f79f1jf9-hj20-9010-f625-02998537h80 parameters: - in: path name: entity_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the entity tags: - Entities x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/entities-linked/with-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/entities-linked/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/projects/{project_id}/assets.csv": get: summary: " Export assets csv" description: " " responses: '200': description: Assets exported as CSV successfully content: text/csv: schema: type: string example: Project,Type,Name,Description,Time Spent Project A,Character,Asset1,Description,10.50 parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/projects/{project_id}/shots.csv": get: summary: " Export shots csv" description: " " responses: '200': description: Shots exported as CSV successfully content: text/csv: schema: type: string example: Project,Episode,Sequence,Name,Description,Time Spent,Frames,Frame In,Frame Out,FPS Project A,EP01,SQ01,SH010,Description,5.25,120,1001,1120,24 parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/projects/{project_id}/casting.csv": get: summary: " Export casting csv" description: " " responses: '200': description: Casting exported as CSV successfully content: text/csv: schema: type: string example: Parent,Name,Asset Type,Asset,Occurences,Label Sequence1,SH010,Character,Asset1,1,fixed parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: episode_id required: false schema: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 description: Episode ID to filter casting links - in: query name: is_shot_casting required: false schema: type: boolean default: false example: false description: Whether to export shot casting only tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting.csv?episode_id=b24a6ea4-ce75-4665-a070-57453082c25&is_shot_casting=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "episode_id": "b24a6ea4-ce75-4665-a070-57453082c25", "is_shot_casting": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/projects/{project_id}/edits.csv": get: summary: " Export edits csv" description: " " responses: '200': description: Edits exported as CSV successfully content: text/csv: schema: type: string example: Project,Episode,Name,Description,Time Spent Project A,EP01,Edit_001,Description,8.75 parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/playlists/{playlist_id}": get: summary: " Export playlist csv" description: " " responses: '200': description: Playlist exported as CSV successfully content: text/csv: schema: type: string example: Entity name,Nb Frames,Task Type,Retake count,Revision,Task Status,Last comment author,Last comment date,Last comment SH010,120,Animation,2,10,WIP,John Doe,2024-01-15,Good work parameters: - in: path name: playlist_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/playlists/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/playlists/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/persons.csv": get: summary: " Export persons csv" description: " " responses: '200': description: Persons exported as CSV successfully content: text/csv: schema: type: string example: Last Name,First Name,Email,Phone,Role,Contract Type,Active Doe,John,john.doe@example.com,+1234567890,user,freelance,yes tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/persons.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/persons.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/projects.csv": get: summary: " Export projects csv" description: " " responses: '200': description: Projects exported as CSV successfully content: text/csv: schema: type: string example: Name,Status Project A,Active Project B,Open tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/projects.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/projects.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/tasks.csv": get: summary: " Export tasks csv" description: " " responses: '200': description: Tasks exported as CSV successfully content: text/csv: schema: type: string example: Project,Task Type,Episode,Sequence,Entity Type,Entity,Assigner,Assignees,Duration,Estimation,Start date,Due date,WIP date,Validation date,Task Status Project A,Animation,EP01,SQ01,Shot,SH010,John Doe,Jane Doe,480,600,2024-01-01,2024-01-15,2024-01-05,2024-01-20,WIP tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/tasks.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/tasks.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/time-spents.csv": get: summary: " Export time spents csv" description: " " responses: '200': description: Time spents exported as CSV successfully content: text/csv: schema: type: string example: Project,Person,Entity Type Name,Entity,Task Type,Date,Time spent Project A,John Doe,Shot,SH010,Animation,2024-01-15,480 tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/time-spents.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/time-spents.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/export/csv/task-types.csv": get: summary: " Export task types csv" description: " " responses: '200': description: Task types exported as CSV successfully content: text/csv: schema: type: string example: Department,Name Animation,Animation Modeling,Modeling tags: - Export produces: - text/csv x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/export/csv/task-types.csv" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/export/csv/task-types.csv" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/events/last": get: summary: Get events description: Retrieve last events with filtering support. Filters can be specified in the query string to narrow down results by date range, project, or other criteria. responses: '200': description: List of events successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Event unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Event name example: user_login data: type: object description: Event data content example: user_id: b35b7fb5-df86-5776-b181-68564193d36 project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Event timestamp example: '2023-01-01T12:00:00Z' user_id: type: string format: uuid description: User identifier who triggered the event example: d57d9hd7-fh08-7998-d403-80786315f58 parameters: - in: query name: after type: string format: date example: '2022-07-12' description: Filter events after this date - in: query name: before type: string format: date example: '2022-07-12' description: Filter events before this date - in: query name: only_files type: boolean default: false description: Return only file-related events example: false - in: query name: cursor_event_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: ID of the last event from previous page for cursor-based pagination - in: query name: limit type: integer default: 100 example: 100 description: Maximum number of events to return - in: query name: project_id type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter events by specific project - in: query name: name type: string example: user_login description: Filter events by event name tags: - Events x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/events/last?after=2022-07-12&before=2022-07-12&only_files=false&cursor_event_id=a24a6ea4-ce75-4665-a070-57453082c25&limit=100&project_id=a24a6ea4-ce75-4665-a070-57453082c25&name=user_login" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/last" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "after": "2022-07-12", "before": "2022-07-12", "only_files": false, "cursor_event_id": "a24a6ea4-ce75-4665-a070-57453082c25", "limit": 100, "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "user_login" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/events/login-logs/last": get: summary: Get login logs description: Retrieve all login logs with filtering support. Filters can be specified in the query string to narrow down results by date range and limit. responses: '200': description: List of login logs successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Login log unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 user_id: type: string format: uuid description: User identifier example: b35b7fb5-df86-5776-b181-68564193d36 ip_address: type: string description: IP address of the login example: 192.168.1.100 user_agent: type: string description: User agent string example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) success: type: boolean description: Whether the login was successful example: true created_at: type: string format: date-time description: Login timestamp example: '2023-01-01T12:00:00Z' parameters: - in: query name: before type: string format: date-time example: '2022-07-12T00:00:00' description: Filter logs before this date and time - in: query name: limit type: integer example: 100 description: Maximum number of login logs to return tags: - Events x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/events/login-logs/last?before=2022-07-12T00%3A00%3A00&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/events/login-logs/last" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "before": "2022-07-12T00:00:00", "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/files/{file_id}": get: summary: Get file information description: Retrieve information about a file that could be either a working file or an output file. Returns detailed file metadata and properties. responses: '200': description: File information retrieved successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: File unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: File name example: main path: type: string description: File path example: "/project/asset/working/main_v001.blend" revision: type: integer description: File revision example: 1 updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' task_id: type: string format: uuid description: Task identifier (for working files) example: c46c8gc6-eg97-6887-c292-79675204e47 entity_id: type: string format: uuid description: Entity identifier (for output files) example: d57d9hd7-fh08-7998-d403-80786315f58 parameters: - in: path name: file_id required: true schema: type: string format: uuid description: File unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/working-files": get: summary: Get task working files description: Retrieve all working file revisions for a given task. Returns complete list of working files with their revisions. responses: '200': description: All working file revisions for given task content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Working file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Working file name example: main revision: type: integer description: Working file revision example: 1 updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' task_id: type: string format: uuid description: Task identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/working-files/new": post: summary: Create new working file description: Create a new working file for a task. Working files are versioned files used by artists to produce output files. Each file requires a comment and generates a path based on file tree template. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Working file name example: main mode: type: string description: Working file mode default: working example: working description: type: string description: Working file description example: Main character model comment: type: string description: Working file comment example: Updated lighting and materials person_id: type: string format: uuid description: Person identifier example: a24a6ea4-ce75-4665-a070-57453082c25 software_id: type: string format: uuid description: Software identifier example: a24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer description: Working file revision example: 1 sep: type: string description: Path separator default: "/" example: "/" responses: '201': description: New working file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Working file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Working file name example: main path: type: string description: Working file path example: "/project/asset/working/main_v001.blend" revision: type: integer description: Working file revision example: 1 task_id: type: string format: uuid description: Task identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/new" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "working", "description": "Main character model", "comment": "Updated lighting and materials", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "software_id": "a24a6ea4-ce75-4665-a070-57453082c25", "revision": 1, "sep": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/new" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "working", "description": "Main character model", "comment": "Updated lighting and materials", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "software_id": "a24a6ea4-ce75-4665-a070-57453082c25", "revision": 1, "sep": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/working-files/last-revisions": get: summary: Get last working files description: Retrieve the last working file revisions for each file name for a given task. Returns the most recent version of each working file. responses: '200': description: Last working file revisions for each file name content: application/json: schema: type: object additionalProperties: type: object properties: id: type: string format: uuid description: Working file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Working file name example: main revision: type: integer description: Working file revision example: 3 updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/last-revisions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/last-revisions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/working-file-path": post: summary: Generate working file path description: Generate a working file path from file tree template based on task parameters. Revision can be computed automatically if not provided. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: File name default: main example: main mode: type: string description: File mode default: working example: working software_id: type: string format: uuid description: Software identifier example: a24a6ea4-ce75-4665-a070-57453082c25 comment: type: string description: File comment example: Updated lighting revision: type: integer description: File revision number example: 1 separator: type: string description: Path separator default: "/" example: "/" responses: '200': description: Working file path generated successfully content: application/json: schema: type: object properties: path: type: string description: Generated file path example: "/project/asset/working/main_v001.blend" name: type: string description: Generated file name example: main_v001.blend '400': description: Malformed file tree parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-file-path" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "working", "software_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Updated lighting", "revision": 1, "separator": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-file-path" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "working", "software_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Updated lighting", "revision": 1, "separator": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/new": post: summary: Create new instance output file description: Create a new output file linked to an asset instance for a specific shot. Output files track the source working file and require output type and task type for categorization. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: Output file name default: main example: main mode: type: string description: Output file mode default: output example: output output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: b35b7fb5-df86-5776-b181-68564193d36 person_id: type: string format: uuid description: Person identifier example: a24a6ea4-ce75-4665-a070-57453082c25 working_file_id: type: string format: uuid description: Source working file identifier example: a24a6ea4-ce75-4665-a070-57453082c25 file_status_id: type: string format: uuid description: File status identifier example: a24a6ea4-ce75-4665-a070-57453082c25 is_sequence: type: boolean description: Whether file is a sequence default: false example: false comment: type: string description: Output file comment example: Final render extension: type: string description: File extension example: ".mp4" representation: type: string description: File representation example: mp4 revision: type: integer description: File revision number example: 1 nb_elements: type: integer description: Number of elements default: 1 example: 1 sep: type: string description: Path separator default: "/" example: "/" responses: '201': description: New output file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Output file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Output file name example: main path: type: string description: Output file path example: "/project/asset/instance/output/main_v001.mp4" revision: type: integer description: Output file revision example: 1 asset_instance_id: type: string format: uuid description: Asset instance identifier example: c46c8gc6-eg97-6887-c292-79675204e47 temporal_entity_id: type: string format: uuid description: Temporal entity identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/new" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "working_file_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "is_sequence": false, "comment": "Final render", "extension": ".mp4", "representation": "mp4", "revision": 1, "nb_elements": 1, "sep": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/new" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "working_file_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "is_sequence": false, "comment": "Final render", "extension": ".mp4", "representation": "mp4", "revision": 1, "nb_elements": 1, "sep": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/next-revision": post: summary: Get next instance output file revision description: Get the next revision number for an output file based on asset instance, output type, task type, and name. Used for automatic revision numbering. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: File name default: main example: main output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '200': description: Next revision number for the instance output file content: application/json: schema: type: object properties: next_revision: type: integer description: Next available revision number example: 2 parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/next-revision" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/next-revision" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-files/last-revisions": get: summary: Get last instance output files description: Retrieve the last revisions of output files for a given instance grouped by output type and file name. Returns the most recent version of each output file. responses: '200': description: Last revisions of output files grouped by output type and file name content: application/json: schema: type: object additionalProperties: type: object properties: id: type: string format: uuid description: Output file unique identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/instance/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: output_type_id required: false schema: type: string format: uuid description: Filter by output type example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type example: d57d9hd7-fh08-7998-d403-80786315f58 - in: query name: file_status_id required: false schema: type: string format: uuid description: Filter by file status example: e68e0ie8-gi19-8009-e514-91897426g69 - in: query name: representation required: false schema: type: string description: Filter by representation example: cache - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/last-revisions?output_type_id=c46c8gc6-eg97-6887-c292-79675204e47&task_type_id=d57d9hd7-fh08-7998-d403-80786315f58&file_status_id=e68e0ie8-gi19-8009-e514-91897426g69&representation=cache&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/last-revisions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "output_type_id": "c46c8gc6-eg97-6887-c292-79675204e47", "task_type_id": "d57d9hd7-fh08-7998-d403-80786315f58", "file_status_id": "e68e0ie8-gi19-8009-e514-91897426g69", "representation": "cache", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-types": get: summary: Get instance output types description: Retrieve all types of output files generated for a given asset instance and temporal entity. Returns list of output types available for the instance. responses: '200': description: All types of output files generated for the instance content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Output type name example: Render short_name: type: string description: Output type short name example: RENDER created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-types/{output_type_id}/output-files": get: summary: Get instance output type files description: Retrieve all output files for a given asset instance, temporal entity, and output type. Optionally filter by representation. responses: '200': description: All output files for the asset instance and output type content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output file unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/instance/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' asset_instance_id: type: string format: uuid description: Asset instance identifier example: e68e0ie8-gi19-8009-e514-91897426g69 temporal_entity_id: type: string format: uuid description: Temporal entity identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: path name: output_type_id required: true schema: type: string format: uuid description: Output type unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: representation required: false schema: type: string description: Filter by representation example: mp4 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types/c46c8gc6-eg97-6887-c292-79675204e47/output-files?representation=mp4" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types/c46c8gc6-eg97-6887-c292-79675204e47/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "representation": "mp4" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/entities/{temporal_entity_id}/output-file-path": post: summary: Generate instance output file path description: Generate an output file path from file tree template based on asset instance parameters. Revision can be computed automatically if not provided. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: File name default: main example: main mode: type: string description: File mode default: output example: output output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: b35b7fb5-df86-5776-b181-68564193d36 extension: type: string description: File extension example: ".mp4" representation: type: string description: File representation example: mp4 revision: type: integer description: File revision number example: 1 separator: type: string description: Path separator default: "/" example: "/" responses: '200': description: Output file path generated successfully content: application/json: schema: type: object properties: folder_path: type: string description: Generated folder path example: "/project/asset/instance/output" file_name: type: string description: Generated file name example: main_v001.mp4 parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: temporal_entity_id required: true schema: type: string format: uuid description: Temporal entity unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-file-path" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "extension": ".mp4", "representation": "mp4", "revision": 1, "separator": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-file-path" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "extension": ".mp4", "representation": "mp4", "revision": 1, "separator": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/working-files": get: summary: Get entity working files description: Retrieve all working files for a given entity with optional filtering by task and name. Returns complete list of working files with their revisions. responses: '200': description: All working files for the entity content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Working file unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Working file name example: main revision: type: integer description: Working file revision example: 1 path: type: string description: Working file path example: "/project/asset/working/main_v001.blend" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' task_id: type: string format: uuid description: Task identifier example: d57d9hd7-fh08-7998-d403-80786315f58 entity_id: type: string format: uuid description: Entity identifier example: e68e0ie8-gi19-8009-e514-91897426g69 parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: task_id required: false schema: type: string format: uuid description: Filter by task example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/working-files?task_id=b35b7fb5-df86-5776-b181-68564193d36&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/working-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "task_id": "b35b7fb5-df86-5776-b181-68564193d36", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-files/new": post: summary: Create new entity output file description: Create a new output file linked to a specific entity. Output files are created when artists are satisfied with their working files. They track the source working file and require output type and task type for categorization. An output type is required for better categorization (textures, caches, ...). A task type can be set too to give the department related to the output file. The revision is automatically set. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: Output file name example: main mode: type: string description: Output file mode default: output example: output output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: a24a6ea4-ce75-4665-a070-57453082c25 working_file_id: type: string format: uuid description: Source working file identifier example: a24a6ea4-ce75-4665-a070-57453082c25 file_status_id: type: string format: uuid description: File status identifier example: a24a6ea4-ce75-4665-a070-57453082c25 comment: type: string description: Output file comment example: Final render extension: type: string description: File extension example: ".mp4" representation: type: string description: File representation example: mp4 revision: type: integer description: File revision number example: 1 nb_elements: type: integer description: Number of elements default: 1 example: 1 sep: type: string description: Path separator default: "/" example: "/" responses: '201': description: New output file created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Output file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Output file name example: main path: type: string description: Output file path example: "/project/asset/output/main_v001.mp4" revision: type: integer description: Output file revision example: 1 entity_id: type: string format: uuid description: Entity identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/new" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "working_file_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Final render", "extension": ".mp4", "representation": "mp4", "revision": 1, "nb_elements": 1, "sep": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/new" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "working_file_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Final render", "extension": ".mp4", "representation": "mp4", "revision": 1, "nb_elements": 1, "sep": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-files/next-revision": post: summary: Get next entity output file revision description: Get the next revision number for an output file based on entity, output type, task type, and name. Used for automatic revision numbering. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: File name default: main example: main output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '200': description: Next revision number for the output file content: application/json: schema: type: object properties: next_revision: type: integer description: Next available revision number example: 3 parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/next-revision" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/next-revision" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-files/last-revisions": get: summary: Get last entity output files description: Retrieve the last revisions of output files for a given entity grouped by output type and file name. Returns the most recent version of each output file. responses: '200': description: Last revisions of output files grouped by output type and file name content: application/json: schema: type: object additionalProperties: type: object properties: id: type: string format: uuid description: Output file unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 2 path: type: string description: Output file path example: "/project/asset/output/main_v002.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: output_type_id required: false schema: type: string format: uuid description: Filter by output type example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: representation required: false schema: type: string description: Filter by representation example: mp4 - in: query name: file_status_id required: false schema: type: string format: uuid description: Filter by file status example: d57d9hd7-fh08-7998-d403-80786315f58 - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/last-revisions?output_type_id=b35b7fb5-df86-5776-b181-68564193d36&task_type_id=c46c8gc6-eg97-6887-c292-79675204e47&representation=mp4&file_status_id=d57d9hd7-fh08-7998-d403-80786315f58&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/last-revisions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "output_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47", "representation": "mp4", "file_status_id": "d57d9hd7-fh08-7998-d403-80786315f58", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-types": get: summary: Get entity output types description: Retrieve all types of output files generated for a given entity. Returns list of output types available for the entity. responses: '200': description: All types of output files generated for the entity content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Output type name example: Cache short_name: type: string description: Output type short name example: CACHE created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-types/{output_type_id}/output-files": get: summary: Get entity output type files description: Retrieve all output files for a given entity and output type. Optionally filter by representation. responses: '200': description: All output files for the entity and output type content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output file unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' entity_id: type: string format: uuid description: Entity identifier example: d57d9hd7-fh08-7998-d403-80786315f58 parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: output_type_id required: true schema: type: string format: uuid description: Output type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: representation required: false schema: type: string description: Filter by representation example: mp4 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types/b35b7fb5-df86-5776-b181-68564193d36/output-files?representation=mp4" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types/b35b7fb5-df86-5776-b181-68564193d36/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "representation": "mp4" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-files": get: summary: Get entity output files description: Retrieve all output files for a given entity with optional filtering by output type, task type, representation, file status, and name. responses: '200': description: All output files for the entity content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output file unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' entity_id: type: string format: uuid description: Entity identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: output_type_id required: false schema: type: string format: uuid description: Filter by output type example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: file_status_id required: false schema: type: string format: uuid description: Filter by file status example: d57d9hd7-fh08-7998-d403-80786315f58 - in: query name: representation required: false schema: type: string description: Filter by representation example: cache - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files?output_type_id=b35b7fb5-df86-5776-b181-68564193d36&task_type_id=c46c8gc6-eg97-6887-c292-79675204e47&file_status_id=d57d9hd7-fh08-7998-d403-80786315f58&representation=cache&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "output_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47", "file_status_id": "d57d9hd7-fh08-7998-d403-80786315f58", "representation": "cache", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/output-files": get: summary: Get project output files description: Retrieve all output files for a given project with optional filtering by output type, task type, representation, file status, and name. responses: '200': description: All output files for the project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output file unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' project_id: type: string format: uuid description: Project identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: output_type_id required: false schema: type: string format: uuid description: Filter by output type example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: file_status_id required: false schema: type: string format: uuid description: Filter by file status example: d57d9hd7-fh08-7998-d403-80786315f58 - in: query name: representation required: false schema: type: string description: Filter by representation example: cache - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/output-files?output_type_id=b35b7fb5-df86-5776-b181-68564193d36&task_type_id=c46c8gc6-eg97-6887-c292-79675204e47&file_status_id=d57d9hd7-fh08-7998-d403-80786315f58&representation=cache&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "output_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "task_type_id": "c46c8gc6-eg97-6887-c292-79675204e47", "file_status_id": "d57d9hd7-fh08-7998-d403-80786315f58", "representation": "cache", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/asset-instances/{asset_instance_id}/output-files": get: summary: Get instance output files description: Retrieve all output files for a given asset instance and temporal entity with optional filtering by output type, task type, representation, file status, and name. responses: '200': description: All output files for the asset instance and temporal entity content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Output file unique identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 name: type: string description: Output file name example: main revision: type: integer description: Output file revision example: 1 path: type: string description: Output file path example: "/project/asset/instance/output/main_v001.mp4" updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' asset_instance_id: type: string format: uuid description: Asset instance identifier example: a24a6ea4-ce75-4665-a070-57453082c25 temporal_entity_id: type: string format: uuid description: Temporal entity identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: asset_instance_id required: true schema: type: string format: uuid description: Asset instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: temporal_entity_id required: false schema: type: string format: uuid description: Filter by temporal entity example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: output_type_id required: false schema: type: string format: uuid description: Filter by output type example: c46c8gc6-eg97-6887-c292-79675204e47 - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type example: d57d9hd7-fh08-7998-d403-80786315f58 - in: query name: file_status_id required: false schema: type: string format: uuid description: Filter by file status example: e68e0ie8-gi19-8009-e514-91897426g69 - in: query name: representation required: false schema: type: string description: Filter by representation example: cache - in: query name: name required: false schema: type: string description: Filter by file name example: main tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/output-files?temporal_entity_id=b35b7fb5-df86-5776-b181-68564193d36&output_type_id=c46c8gc6-eg97-6887-c292-79675204e47&task_type_id=d57d9hd7-fh08-7998-d403-80786315f58&file_status_id=e68e0ie8-gi19-8009-e514-91897426g69&representation=cache&name=main" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/output-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "temporal_entity_id": "b35b7fb5-df86-5776-b181-68564193d36", "output_type_id": "c46c8gc6-eg97-6887-c292-79675204e47", "task_type_id": "d57d9hd7-fh08-7998-d403-80786315f58", "file_status_id": "e68e0ie8-gi19-8009-e514-91897426g69", "representation": "cache", "name": "main" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/output-file-path": post: summary: Generate entity output file path description: Generate an output file path from file tree template based on entity parameters. Revision can be computed automatically if not provided. requestBody: required: true content: application/json: schema: type: object required: - output_type_id - task_type_id properties: name: type: string description: File name default: main example: main mode: type: string description: File mode default: output example: output output_type_id: type: string format: uuid description: Output type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type identifier example: a24a6ea4-ce75-4665-a070-57453082c25 extension: type: string description: File extension example: ".mp4" representation: type: string description: File representation example: mp4 revision: type: integer description: File revision number example: 1 separator: type: string description: Path separator default: "/" example: "/" responses: '200': description: Output file path generated successfully content: application/json: schema: type: object properties: folder_path: type: string description: Generated folder path example: "/project/asset/output" file_name: type: string description: Generated file name example: main_v001.mp4 '400': description: Malformed file tree parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-file-path" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "extension": ".mp4", "representation": "mp4", "revision": 1, "separator": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-file-path" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "main", "mode": "output", "output_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "extension": ".mp4", "representation": "mp4", "revision": 1, "separator": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/guess_from_path": post: summary: Guess file tree template description: Get list of possible project file tree templates matching a file path and data ids corresponding to template tokens. requestBody: required: true content: application/json: schema: type: object required: - project_id - file_path properties: project_id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 file_path: type: string description: File path to analyze example: "/project/asset/working/main_v001.blend" sep: type: string description: Path separator default: "/" example: "/" responses: '200': description: List of possible project file tree templates matching the file path content: application/json: schema: type: object properties: matches: type: array items: type: object properties: template: type: string description: Template name example: default confidence: type: number description: Confidence score example: 0.95 data: type: object description: Extracted data from path properties: project_id: type: string format: uuid description: Project identifier example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid description: Entity identifier example: b35b7fb5-df86-5776-b181-68564193d36 '400': description: Invalid project ID or file path tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/entities/guess_from_path" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_path": "/project/asset/working/main_v001.blend", "sep": "/" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/guess_from_path" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "file_path": "/project/asset/working/main_v001.blend", "sep": "/" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/working-files/{working_file_id}/file": post: summary: Store working file description: Store a working file in the file storage system. Uploads the file content and associates it with the working file record. requestBody: required: true content: multipart/form-data: schema: type: object required: - file properties: file: type: string format: binary description: Working file to upload example: file content responses: '201': description: Working file stored successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Working file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Working file name example: main path: type: string description: Working file path example: "/project/asset/working/main_v001.blend" revision: type: integer description: Working file revision example: 1 task_id: type: string format: uuid description: Task identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: working_file_id required: true schema: type: string format: uuid description: Working file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Download working file description: Download a working file from storage. Returns the file content with appropriate headers for caching and attachment. responses: '200': description: Working file downloaded successfully content: image/png: schema: type: string format: binary description: PNG image file example: binary data image/jpg: schema: type: string format: binary description: JPEG image file example: binary data image/gif: schema: type: string format: binary description: GIF image file example: binary data application/octet-stream: schema: type: string format: binary description: Binary file content example: binary data parameters: - in: path name: working_file_id required: true schema: type: string format: uuid description: Working file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/set-file-tree": post: summary: Set project file tree description: Define a template file to use for a given project. Template files are located on the server side and each template has a name for selection. requestBody: required: true content: application/json: schema: type: object required: - tree_name properties: tree_name: type: string description: Name of the file tree template example: default responses: '200': description: File tree template set successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Project name example: My Project file_tree: type: object description: File tree template configuration example: template: default updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/set-file-tree" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "tree_name": "default" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/set-file-tree" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "tree_name": "default" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/working-files/{working_file_id}/comment": put: summary: Update working file comment description: Update the comment on a specific working file. Comments provide context about changes made to the working file. requestBody: required: true content: application/json: schema: type: object required: - comment properties: comment: type: string description: Working file comment example: Updated lighting and materials responses: '200': description: Working file comment updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Working file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 comment: type: string description: Updated comment example: Updated lighting and materials updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: working_file_id required: true schema: type: string format: uuid description: Working file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/comment" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "comment": "Updated lighting and materials" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/comment" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "comment": "Updated lighting and materials" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/working-files/{working_file_id}/modified": put: summary: Update working file modification date description: Update the modification date of a working file to the current timestamp. Used to track when the file was last modified. responses: '200': description: Working file modification date updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Working file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 updated_at: type: string format: date-time description: Updated modification timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: working_file_id required: true schema: type: string format: uuid description: Working file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Files x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/modified" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/modified" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/persons": post: summary: Import shotgun persons description: Import Shotgun persons (users). Send a list of Shotgun person entries in the JSON body. Returns created or updated persons with department associations. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the person example: 12345 firstname: type: string description: First name example: John lastname: type: string description: Last name example: Doe email: type: string format: email description: Email address example: john.doe@example.com login: type: string description: Desktop login example: jdoe sg_status_list: type: string description: Status list example: act permission_rule_set: type: object description: Permission rule set properties: name: type: string example: Manager department: type: object description: Department information properties: name: type: string example: Animation example: - id: 12345 firstname: John lastname: Doe email: john.doe@example.com login: jdoe sg_status_list: act permission_rule_set: name: Manager department: name: Animation responses: '200': description: Persons imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string description: First name example: John last_name: type: string description: Last name example: Doe email: type: string format: email description: Email address example: john.doe@example.com role: type: string description: User role example: manager created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/persons" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "firstname": "John", "lastname": "Doe", "email": "john.doe@example.com", "login": "jdoe", "sg_status_list": "act", "permission_rule_set": { "name": "Manager" }, "department": { "name": "Animation" } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/persons" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "firstname": "John", "lastname": "Doe", "email": "john.doe@example.com", "login": "jdoe", "sg_status_list": "act", "permission_rule_set": { "name": "Manager" }, "department": { "name": "Animation" } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/projects": post: summary: Import shotgun projects description: Import Shotgun projects. Send a list of Shotgun project entries in the JSON body. Returns created or updated projects with custom fields preserved. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the project example: 12345 name: type: string description: Project name example: My Project sg_status: type: string description: Project status example: Active example: - id: 12345 name: My Project sg_status: Active responses: '200': description: Projects imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project data: type: object description: Custom project data example: {} created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/projects" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "name": "My Project", "sg_status": "Active" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/projects" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "name": "My Project", "sg_status": "Active" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/episodes": post: summary: Import shotgun episodes description: Import Shotgun episodes. Send a list of Shotgun episode entries in the JSON body. Returns created or updated episodes. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the episode example: 12345 code: type: string description: Episode code example: EP01 description: type: string description: Episode description example: First episode project: type: object description: Project information properties: name: type: string example: My Project example: - id: 12345 code: EP01 description: First episode project: name: My Project responses: '200': description: Episodes imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Episode unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Episode name example: EP01 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/episodes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "EP01", "description": "First episode", "project": { "name": "My Project" } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "EP01", "description": "First episode", "project": { "name": "My Project" } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/sequences": post: summary: Import shotgun sequences description: Import Shotgun sequences. Send a list of Shotgun sequence entries in the JSON body. Returns created or updated sequences linked to episodes. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the sequence example: 12345 code: type: string description: Sequence code example: SQ01 description: type: string description: Sequence description example: Main sequence project: type: object description: Project information properties: name: type: string example: My Project episode: type: object description: Episode information properties: id: type: integer example: 11111 example: - id: 12345 code: SQ01 description: Main sequence project: name: My Project episode: id: 11111 responses: '200': description: Sequences imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Sequence name example: SQ01 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/sequences" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "SQ01", "description": "Main sequence", "project": { "name": "My Project" }, "episode": { "id": 11111 } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "SQ01", "description": "Main sequence", "project": { "name": "My Project" }, "episode": { "id": 11111 } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/shots": post: summary: Import shotgun shots description: Import Shotgun shots. Send a list of Shotgun shot entries in the JSON body. Returns created or updated shots with frame ranges, custom fields, and asset links. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the shot example: 12345 code: type: string description: Shot code example: SH010 sg_cut_in: type: integer description: Cut in frame example: 1001 sg_cut_duration: type: integer description: Cut duration in frames example: 50 project: type: object description: Project information properties: name: type: string example: My Project sg_sequence: type: object description: Sequence information properties: id: type: integer example: 11111 sg_scene: type: object description: Scene information properties: id: type: integer example: 22222 assets: type: array description: Linked assets items: type: object properties: id: type: integer example: 33333 example: - id: 12345 code: SH010 sg_cut_in: 1001 sg_cut_duration: 50 project: name: My Project sg_sequence: id: 11111 sg_scene: id: 22222 assets: - id: 33333 responses: '200': description: Shots imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Shot unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Shot name example: SH010 data: type: object description: Shot data with frame ranges and custom fields example: frame_in: 1001 frame_out: 1051 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "SH010", "sg_cut_in": 1001, "sg_cut_duration": 50, "project": { "name": "My Project" }, "sg_sequence": { "id": 11111 }, "sg_scene": { "id": 22222 }, "assets": [ { "id": 33333 } ] } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "SH010", "sg_cut_in": 1001, "sg_cut_duration": 50, "project": { "name": "My Project" }, "sg_sequence": { "id": 11111 }, "sg_scene": { "id": 22222 }, "assets": [ { "id": 33333 } ] } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/scenes": post: summary: Import shotgun scenes description: Import Shotgun scenes. Send a list of Shotgun scene entries in the JSON body. Returns created or updated scenes linked to sequences. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the scene example: 12345 code: type: string description: Scene code example: SC01 project: type: object description: Project information properties: name: type: string example: My Project example: - id: 12345 code: SC01 project: name: My Project responses: '200': description: Scenes imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Scene unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Scene name example: SC01 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/scenes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "SC01", "project": { "name": "My Project" } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/scenes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "SC01", "project": { "name": "My Project" } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/assets": post: summary: Import shotgun assets description: Import Shotgun assets. Send a list of Shotgun asset entries in the JSON body. Returns created or updated assets with parent-child relationships. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the asset example: 12345 code: type: string description: Asset code example: Asset01 description: type: string description: Asset description example: Main character asset sg_asset_type: type: string description: Asset type name example: Character project: type: object description: Project information properties: id: type: integer example: 11111 parents: type: array description: Parent assets items: type: object properties: id: type: integer example: 22222 example: - id: 12345 code: Asset01 description: Main character asset sg_asset_type: Character project: id: 11111 parents: - id: 22222 responses: '200': description: Assets imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Asset name example: Asset01 description: type: string description: Asset description example: Main character asset created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/assets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "Asset01", "description": "Main character asset", "sg_asset_type": "Character", "project": { "id": 11111 }, "parents": [ { "id": 22222 } ] } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "Asset01", "description": "Main character asset", "sg_asset_type": "Character", "project": { "id": 11111 }, "parents": [ { "id": 22222 } ] } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/steps": post: summary: Import shotgun steps description: Import Shotgun steps (task types). Send a list of Shotgun step entries in the JSON body. Returns created or updated task types with departments. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the step example: 12345 code: type: string description: Step code (used to extract department) example: Animation Modeling short_name: type: string description: Step short name example: mod color: type: string description: Color in RGB format example: '255,128,0' entity_type: type: string description: Entity type this step applies to example: Asset example: - id: 12345 code: Animation Modeling short_name: mod color: '255,128,0' entity_type: Asset responses: '200': description: Task types imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Task type name example: Animation Modeling short_name: type: string description: Task type short name example: mod color: type: string description: Task type color in hex format example: "#FF8000" for_entity: type: string description: Entity type example: Asset created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/steps" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "Animation Modeling", "short_name": "mod", "color": "255,128,0", "entity_type": "Asset" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/steps" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "Animation Modeling", "short_name": "mod", "color": "255,128,0", "entity_type": "Asset" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/status": post: summary: Import shotgun task statuses description: Import Shotgun task statuses. Send a list of Shotgun status entries in the JSON body. Returns created or updated task statuses with colors. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the status example: 12345 name: type: string description: Status name example: In Progress code: type: string description: Status short code example: IP bg_color: type: string description: Background color in RGB format example: '255,128,0' example: - id: 12345 name: In Progress code: IP bg_color: '255,128,0' responses: '200': description: Task statuses imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task status unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Status name example: In Progress short_name: type: string description: Status short code example: IP color: type: string description: Status color in hex format example: "#FF8000" created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "name": "In Progress", "code": "IP", "bg_color": "255,128,0" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "name": "In Progress", "code": "IP", "bg_color": "255,128,0" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/tasks": post: summary: Import shotgun tasks description: Import Shotgun tasks. Send a list of Shotgun task entries in the JSON body. Only tasks with steps and projects are imported. Returns created or updated tasks with assignees. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the task example: 12345 cached_display_name: type: string description: Task display name example: Modeling for Asset start_date: type: string format: date description: Start date example: '2024-01-15' due_date: type: string format: date description: Due date example: '2024-02-15' sg_sort_order: type: integer description: Sort order example: 1 duration: type: integer description: Duration in days example: 30 step: type: object description: Step (task type) information properties: id: type: integer example: 11111 project: type: object description: Project information properties: id: type: integer example: 22222 entity: type: object description: Entity information properties: id: type: integer example: 33333 type: type: string example: Asset sg_status_list: type: string description: Status short name example: IP created_by: type: object description: Creator information properties: id: type: integer example: 44444 task_assignees: type: array description: Task assignees items: type: object properties: id: type: integer example: 55555 example: - id: 12345 cached_display_name: Modeling for Asset start_date: '2024-01-15' due_date: '2024-02-15' sg_sort_order: 1 duration: 30 step: id: 11111 project: id: 22222 entity: id: 33333 type: Asset sg_status_list: IP created_by: id: 44444 task_assignees: - id: 55555 responses: '200': description: Tasks imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Task name example: Modeling for Asset start_date: type: string format: date description: Start date example: '2024-01-15' due_date: type: string format: date description: Due date example: '2024-02-15' created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "cached_display_name": "Modeling for Asset", "start_date": "2024-01-15", "due_date": "2024-02-15", "sg_sort_order": 1, "duration": 30, "step": { "id": 11111 }, "project": { "id": 22222 }, "entity": { "id": 33333, "type": "Asset" }, "sg_status_list": "IP", "created_by": { "id": 44444 }, "task_assignees": [ { "id": 55555 } ] } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "cached_display_name": "Modeling for Asset", "start_date": "2024-01-15", "due_date": "2024-02-15", "sg_sort_order": 1, "duration": 30, "step": { "id": 11111 }, "project": { "id": 22222 }, "entity": { "id": 33333, "type": "Asset" }, "sg_status_list": "IP", "created_by": { "id": 44444 }, "task_assignees": [ { "id": 55555 } ] } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/versions": post: summary: Import shotgun versions description: Import Shotgun versions (preview files). Send a list of Shotgun version entries in the JSON body. Only versions linked to tasks are imported. Returns created or updated preview files. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the version example: 12345 code: type: string description: Version code example: v001 description: type: string description: Version description example: First version sg_task: type: object description: Task information properties: id: type: integer example: 11111 user: type: object description: User information properties: id: type: integer example: 22222 sg_uploaded_movie: type: object description: Uploaded movie information properties: url: type: string example: https://example.com/movie.mp4 name: type: string example: movie.mp4 example: - id: 12345 code: v001 description: First version sg_task: id: 11111 user: id: 22222 sg_uploaded_movie: url: https://example.com/movie.mp4 name: movie.mp4 responses: '200': description: Versions imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Preview file name example: v001 description: type: string description: Preview file description example: First version source: type: string description: Source of the preview example: Shotgun created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/versions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "code": "v001", "description": "First version", "sg_task": { "id": 11111 }, "user": { "id": 22222 }, "sg_uploaded_movie": { "url": "https://example.com/movie.mp4", "name": "movie.mp4" } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/versions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "code": "v001", "description": "First version", "sg_task": { "id": 11111 }, "user": { "id": 22222 }, "sg_uploaded_movie": { "url": "https://example.com/movie.mp4", "name": "movie.mp4" } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/notes": post: summary: Import shotgun notes description: Import Shotgun notes (comments) linked to tasks. Send a list of Shotgun note entries in the JSON body. Only notes linked to tasks are imported. Returns created or updated comments. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the note example: 12345 content: type: string description: Note content example: This is a comment tasks: type: array description: Linked tasks items: type: object properties: id: type: integer example: 67890 user: type: object description: User who created the note properties: id: type: integer example: 11111 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' example: - id: 12345 content: This is a comment tasks: - id: 67890 user: id: 11111 created_at: '2024-01-15T10:30:00Z' responses: '200': description: Notes imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Comment unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 text: type: string description: Comment text example: This is a comment created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/notes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "content": "This is a comment", "tasks": [ { "id": 67890 } ], "user": { "id": 11111 }, "created_at": "2024-01-15T10:30:00Z" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/notes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "content": "This is a comment", "tasks": [ { "id": 67890 } ], "user": { "id": 11111 }, "created_at": "2024-01-15T10:30:00Z" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/errors": post: summary: Create shotgun import error description: Create a new Shotgun import error record. The error event data should be provided in the JSON body. requestBody: required: true content: application/json: schema: type: object description: Error event data properties: error: type: string description: Error message example: Failed to import asset details: type: object description: Additional error details example: shotgun_id: 12345 reason: Missing field example: error: Failed to import asset details: shotgun_id: 12345 reason: Missing required field responses: '201': description: Import error created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Import error unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 source: type: string description: Source of the import error example: shotgun event_data: type: object description: Error event data example: error: Failed to import asset created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' '400': description: Invalid request body tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/errors" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "error": "Failed to import asset", "details": { "shotgun_id": 12345, "reason": "Missing required field" } }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/errors" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "error": "Failed to import asset", "details": { "shotgun_id": 12345, "reason": "Missing required field" } } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get shotgun import errors description: Get all Shotgun import errors from the database. Returns a list of data import errors with source "shotgun". responses: '200': description: List of import errors retrieved successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Import error unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 source: type: string description: Source of the import error example: shotgun event_data: type: object description: Error event data example: error: Import failed created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' '400': description: Invalid request tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/import/shotgun/errors" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/errors" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/projectconnections": post: summary: Import shotgun project connections description: Import Shotgun project-user connections. Send a list of Shotgun project connection entries in the JSON body. Returns projects with team members added. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: integer description: Shotgun ID of the connection example: 12345 project: type: object description: Project information properties: id: type: integer example: 11111 user: type: object description: User information properties: id: type: integer example: 22222 example: - id: 12345 project: id: 11111 user: id: 22222 responses: '200': description: Project connections imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project team: type: array description: Team member IDs items: type: string format: uuid example: - b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or data format error tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/projectconnections" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": 12345, "project": { "id": 11111 }, "user": { "id": 22222 } } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/projectconnections" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": 12345, "project": { "id": 11111 }, "user": { "id": 22222 } } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/errors/{error_id}": delete: summary: Delete shotgun import error description: Delete a Shotgun import error by its unique identifier. Returns success confirmation when the error is deleted. responses: '204': description: Import error deleted successfully content: application/json: schema: type: object properties: deletion_success: type: boolean description: Whether deletion was successful example: true '400': description: Invalid error ID format parameters: - in: path name: error_id required: true schema: type: string format: uuid description: Import error unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/import/shotgun/errors/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/errors/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/project": post: summary: Remove shotgun project description: Remove a Shotgun project from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the project to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed project, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/project" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/project" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/person": post: summary: Remove shotgun person description: Remove a Shotgun person (user) from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the person to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed person, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/person" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/person" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/shot": post: summary: Remove shotgun shot description: Remove a Shotgun shot from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the shot to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed shot, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/shot" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/shot" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/scene": post: summary: Remove shotgun scene description: Remove a Shotgun scene from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the scene to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed scene, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/scene" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/scene" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/episode": post: summary: Remove shotgun episode description: Remove a Shotgun episode from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the episode to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed episode, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/episode" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/episode" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/sequence": post: summary: Remove shotgun sequence description: Remove a Shotgun sequence from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the sequence to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed sequence, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/sequence" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/sequence" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/asset": post: summary: Remove shotgun asset description: Remove a Shotgun asset from the database. Provide the Shotgun entry ID in the JSON body. If the asset has working files linked to tasks, it will be cancelled instead of deleted. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the asset to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed asset, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/asset" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/asset" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/projectconnection": post: summary: Remove shotgun project connection description: Remove a Shotgun project-user connection from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the connection to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed connection, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/projectconnection" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/projectconnection" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/step": post: summary: Remove shotgun step description: Remove a Shotgun step (task type) from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the step to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed step, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/step" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/step" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/status": post: summary: Remove shotgun task status description: Remove a Shotgun task status from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the task status to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed task status, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/task": post: summary: Remove shotgun task description: Remove a Shotgun task from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the task to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed task, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/task" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/task" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/note": post: summary: Remove shotgun note description: Remove a Shotgun note (comment) from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the note to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed note, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/note" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/note" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/shotgun/remove/version": post: summary: Remove shotgun version description: Remove a Shotgun version (preview file) from the database. Provide the Shotgun entry ID in the JSON body. requestBody: required: true content: application/json: schema: type: object required: - id properties: id: type: integer description: Shotgun ID of the version to remove example: 12345 example: id: 12345 responses: '200': description: Removal result returned content: application/json: schema: type: object properties: success: type: boolean description: Whether the removal was successful example: true removed_instance_id: type: string format: uuid description: ID of the removed version, if found example: a24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid request body or instance not found tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/shotgun/remove/version" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "id": 12345 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/shotgun/remove/version" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "id": 12345 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/persons": post: summary: Import persons csv description: Import persons from a CSV file. Creates or updates persons based on CSV rows. Supports role, contract type, and active status updates. responses: '201': description: Persons imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string example: John last_name: type: string example: Doe email: type: string format: email example: john.doe@example.com phone: type: string example: 1234567890 active: type: boolean example: true '400': description: Invalid CSV format or missing required columns parameters: - in: query name: update required: false schema: type: boolean default: false example: false description: Whether to update existing persons - in: formData name: file type: file required: true description: CSV file with person data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/persons?update=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/persons" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "update": false } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/assets": post: summary: Import assets csv description: Import project assets from a CSV file. Creates or updates assets based on CSV rows. Supports metadata descriptors and task status updates. responses: '201': description: Assets imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Character A project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: Main character asset '400': description: Invalid CSV format or missing required columns parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: update required: false schema: type: boolean default: false example: false description: Whether to update existing assets - in: formData name: file type: file required: true description: CSV file with asset data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets?update=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "update": false } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/shots": post: summary: Import shots csv description: Import project shots from a CSV file. Creates or updates shots based on CSV rows. Supports sequences, episodes, and task status updates. responses: '201': description: Shots imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 120 description: type: string example: Shot description '400': description: Invalid CSV format or missing required columns parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: update required: false schema: type: boolean default: false example: false description: Whether to update existing shots - in: formData name: file type: file required: true description: CSV file with shot data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots?update=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "update": false } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/edits": post: summary: Import edits csv description: Import project edits from a CSV file. Creates or updates edits based on CSV rows. Supports metadata descriptors and task status updates. responses: '201': description: Edits imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Edit_001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: Edit description '400': description: Invalid CSV format or missing required columns parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: update required: false schema: type: boolean default: false example: false description: Whether to update existing edits - in: formData name: file type: file required: true description: CSV file with edit data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits?update=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "update": false } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/casting": post: summary: Import casting csv description: Import project casting links from a CSV file. Links assets to shots, sequences, or episodes based on CSV rows. responses: '201': description: Casting links imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_occurences: type: integer example: 1 label: type: string example: fixed '400': description: Invalid CSV format or missing required columns parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: update required: false schema: type: boolean default: false example: false description: Whether to update existing casting links - in: formData name: file type: file required: true description: CSV file with casting link data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting?update=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "update": false } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/task-types/{task_type_id}/estimations": post: summary: Import task type estimations csv description: Import task type estimations from a CSV file. Updates estimations, dates, and other task properties for assets or shots based on CSV rows. responses: '201': description: Task estimations imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Asset Modeling estimation: type: integer example: 480 start_date: type: string format: date example: '2024-01-15' due_date: type: string format: date example: '2024-01-25' '400': description: Invalid CSV format or entity not found parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file type: file required: true description: CSV file with task estimation data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b24a6ea4-ce75-4665-a070-57453082c25/estimations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b24a6ea4-ce75-4665-a070-57453082c25/estimations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/csv/projects/{project_id}/episodes/{episode_id}/task-types/{task_type_id}/estimations": post: summary: Import episode task type estimations csv description: Import task type estimations from a CSV file for a specific episode. Updates estimations, dates, and other task properties for assets or shots based on CSV rows. responses: '201': description: Task estimations imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Asset Modeling estimation: type: integer example: 480 start_date: type: string format: date example: '2024-01-15' due_date: type: string format: date example: '2024-01-25' '400': description: Invalid CSV format or entity not found parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 - in: path name: episode_id required: true schema: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file type: file required: true description: CSV file with task estimation data tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/c24a6ea4-ce75-4665-a070-57453082c25/task-types/b24a6ea4-ce75-4665-a070-57453082c25/estimations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/c24a6ea4-ce75-4665-a070-57453082c25/task-types/b24a6ea4-ce75-4665-a070-57453082c25/estimations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/otio/projects/{project_id}": post: summary: Import otio EDL description: Import an OTIO file to set frame_in, frame_out, and nb_frames for shots. Supports any OpenTimelineIO adapter format like EDL or OTIO. Uses naming convention to match shots. responses: '201': description: Shots imported successfully content: application/json: schema: type: object properties: updated_shots: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 120 data: type: object properties: frame_in: type: integer example: 1001 frame_out: type: integer example: 1120 created_shots: type: array items: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH020 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 96 data: type: object properties: frame_in: type: integer example: 2001 frame_out: type: integer example: 2096 '400': description: Invalid file format or parsing error parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: naming_convention required: false schema: type: string default: "${project_name}_${sequence_name}-${shot_name}" example: "${project_name}_${sequence_name}-${shot_name}" description: Template for matching shot names from the file - in: query name: match_case required: false schema: type: boolean default: true example: true description: Whether to match shot names case-sensitively - in: formData name: file type: file required: true description: OTIO file to import (EDL, OTIO, etc.) tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25?naming_convention=%24%7Bproject_name%7D_%24%7Bsequence_name%7D-%24%7Bshot_name%7D&match_case=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "naming_convention": "${project_name}_${sequence_name}-${shot_name}", "match_case": true } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/otio/projects/{project_id}/episodes/{episode_id}": post: summary: Import episode otio description: Import an OTIO file to set frame_in, frame_out, and nb_frames for shots in an episode. Supports any OpenTimelineIO adapter format like EDL or OTIO. Uses naming convention with episode name to match shots. responses: '201': description: Shots imported successfully content: application/json: schema: type: object properties: updated_shots: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 120 data: type: object properties: frame_in: type: integer example: 1001 frame_out: type: integer example: 1120 created_shots: type: array items: type: object properties: id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH020 project_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 96 data: type: object properties: frame_in: type: integer example: 2001 frame_out: type: integer example: 2096 '400': description: Invalid file format or parsing error parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: episode_id required: true schema: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 - in: query name: naming_convention required: false schema: type: string default: "${project_name}_${episode_name}-${sequence_name}-${shot_name}" example: "${project_name}_${episode_name}-${sequence_name}-${shot_name}" description: Template for matching shot names from the file - in: query name: match_case required: false schema: type: boolean default: true example: true description: Whether to match shot names case-sensitively - in: formData name: file type: file required: true description: OTIO file to import (EDL, OTIO, etc.) tags: - Import consumes: - multipart/form-data x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/b24a6ea4-ce75-4665-a070-57453082c25?naming_convention=%24%7Bproject_name%7D_%24%7Bepisode_name%7D-%24%7Bsequence_name%7D-%24%7Bshot_name%7D&match_case=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/b24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "naming_convention": "${project_name}_${episode_name}-${sequence_name}-${shot_name}", "match_case": true } payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/kitsu/comments": post: summary: Import kitsu comments description: Import Kitsu comments. Send a list of Kitsu comment entries in the JSON body. Returns created or updated comments linked to tasks. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Kitsu ID of the comment example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid description: Task ID the comment is linked to example: b24a6ea4-ce75-4665-a070-57453082c25 text: type: string description: Comment text example: This is a comment person_id: type: string format: uuid description: Person who created the comment example: c24a6ea4-ce75-4665-a070-57453082c25 example: - id: a24a6ea4-ce75-4665-a070-57453082c25 object_id: b24a6ea4-ce75-4665-a070-57453082c25 text: This is a comment person_id: c24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Comments imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Comment unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 text: type: string description: Comment text example: This is a comment created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or missing required fields tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/kitsu/comments" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "object_id": "b24a6ea4-ce75-4665-a070-57453082c25", "text": "This is a comment", "person_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/kitsu/comments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "object_id": "b24a6ea4-ce75-4665-a070-57453082c25", "text": "This is a comment", "person_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/kitsu/entities": post: summary: Import kitsu entities description: Import Kitsu entities (assets, shots, sequences, etc.). Send a list of Kitsu entity entries in the JSON body. Returns created or updated entities. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Kitsu ID of the entity example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Entity name example: Asset01 project_id: type: string format: uuid description: Project ID example: b24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid description: Entity type ID example: c24a6ea4-ce75-4665-a070-57453082c25 example: - id: a24a6ea4-ce75-4665-a070-57453082c25 name: Asset01 project_id: b24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: c24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Entities imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Entity name example: Asset01 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or missing required fields tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/kitsu/entities" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Asset01", "project_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_type_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/kitsu/entities" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Asset01", "project_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_type_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/kitsu/entity-links": post: summary: Import kitsu entity links description: Import Kitsu entity links (casting links). Send a list of Kitsu entity link entries in the JSON body. Returns created or updated entity links. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Kitsu ID of the entity link example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid description: Source entity ID example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid description: Target entity ID example: c24a6ea4-ce75-4665-a070-57453082c25 example: - id: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: c24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Entity links imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Entity link unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 entity_in_id: type: string format: uuid description: Source entity ID example: b24a6ea4-ce75-4665-a070-57453082c25 entity_out_id: type: string format: uuid description: Target entity ID example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or missing required fields tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/kitsu/entity-links" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_in_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_out_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/kitsu/entity-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "entity_in_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_out_id": "c24a6ea4-ce75-4665-a070-57453082c25" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/kitsu/projects": post: summary: Import kitsu projects description: Import Kitsu projects. Send a list of Kitsu project entries in the JSON body. Returns created or updated projects. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Kitsu ID of the project example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project production_type: type: string description: Production type example: tvshow example: - id: a24a6ea4-ce75-4665-a070-57453082c25 name: My Project production_type: tvshow responses: '200': description: Projects imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or missing required fields tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/kitsu/projects" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "My Project", "production_type": "tvshow" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/kitsu/projects" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "My Project", "production_type": "tvshow" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/import/kitsu/tasks": post: summary: Import kitsu tasks description: Import Kitsu tasks. Send a list of Kitsu task entries in the JSON body. Returns created or updated tasks. requestBody: required: true content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Kitsu ID of the task example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Task name example: Modeling project_id: type: string format: uuid description: Project ID example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid description: Entity ID the task is linked to example: c24a6ea4-ce75-4665-a070-57453082c25 task_type_id: type: string format: uuid description: Task type ID example: d24a6ea4-ce75-4665-a070-57453082c25 example: - id: a24a6ea4-ce75-4665-a070-57453082c25 name: Modeling project_id: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: c24a6ea4-ce75-4665-a070-57453082c25 task_type_id: d24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Tasks imported successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Task name example: Modeling created_at: type: string format: date-time description: Creation timestamp example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time description: Update timestamp example: '2024-01-15T11:00:00Z' '400': description: Invalid request body or missing required fields tags: - Import x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/import/kitsu/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Modeling", "project_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "d24a6ea4-ce75-4665-a070-57453082c25" } ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/import/kitsu/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ { "id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Modeling", "project_id": "b24a6ea4-ce75-4665-a070-57453082c25", "entity_id": "c24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "d24a6ea4-ce75-4665-a070-57453082c25" } ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/": get: summary: Get API name and version responses: '200': description: API name and version content: application/json: schema: type: object properties: api: type: string example: Zou version: type: string example: 0.20.0 tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/status": get: summary: Get status of the API services description: " " responses: '200': description: Status of the API services content: application/json: schema: type: object properties: name: type: string example: Zou version: type: string example: 0.20.0 database-up: type: boolean example: true key-value-store-up: type: boolean example: true event-stream-up: type: boolean example: true job-queue-up: type: boolean example: true indexer-up: type: boolean example: true tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/status/influx": get: summary: Get status of the API services for InfluxDB description: Get status of the database, key value store, event stream, job queue, indexer as a JSON object. responses: '200': description: Status of database, key value, event stream, job queue and time content: application/json: schema: type: object properties: database-up: type: integer example: 1 key-value-store-up: type: integer example: 1 event-stream-up: type: integer example: 1 job-queue-up: type: integer example: 1 indexer-up: type: integer example: 1 time: type: number format: float example: 1701948600.123 tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/status/influx" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/status/influx" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/status/resources": get: summary: Get resource usage stats description: Get CPU usage for each core, memory repartition and number of jobs in the job queue. responses: '200': description: CPU, memory and jobs stats content: application/json: schema: type: object properties: date: type: string format: date-time example: '2023-12-07T10:30:00.000Z' cpu: type: object properties: percent: type: array items: type: number example: - 25.5 - 30.2 - 28.1 loadavg: type: object properties: last 1 min: type: number example: 0.75 last 5 min: type: number example: 0.82 last 10 min: type: number example: 0.78 memory: type: object properties: total: type: integer example: 8589934592 used: type: integer example: 4294967296 available: type: integer example: 4294967296 percent: type: number example: 50.0 jobs: type: object properties: running_jobs: type: integer example: 3 tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/status/resources" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/status/resources" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/status.txt": get: summary: Get status of the API services as text description: Get status of the database, key value store, event stream, job queue, the indexer as a text. responses: '200': description: API name, version and status as txt content: text/plain: schema: type: string example: |- name: Zou version: 0.20.0 database-up: up event-stream-up: up key-value-store-up: up job-queue-up: up indexer-up: up tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/status.txt" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/status.txt" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/status/test-event": get: summary: Generate a test event description: Generate a `main:test` event to test the event stream with the Python client or similar. responses: '200': description: Success flag content: application/json: schema: type: object properties: success: type: boolean example: true tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/status/test-event" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/status/test-event" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/stats": get: summary: Get usage stats description: Get the amount of projects, assets, shots, tasks, and persons. responses: '200': description: Main stats content: application/json: schema: type: object properties: projects: type: integer example: 15 assets: type: integer example: 1250 shots: type: integer example: 890 tasks: type: integer example: 5670 persons: type: integer example: 45 tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/stats" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/stats" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/config": get: summary: Get the configuration of the Kitsu instance description: The configuration includes self-hosted status, Crisp token, indexer configuration, SAML status, and dark theme status. responses: '200': description: Configuration object content: application/json: schema: type: object properties: is_self_hosted: type: boolean example: true crisp_token: type: string example: abc123def456 dark_theme_by_default: type: boolean example: false indexer_configured: type: boolean example: true saml_enabled: type: boolean example: false saml_idp_name: type: string example: My Company SSO default_locale: type: string example: en_US default_timezone: type: string example: UTC sentry: type: object properties: dsn: type: string example: https://example@sentry.io/123456 sampleRate: type: number example: 0.1 tags: - Index x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/config" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/config" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/news": get: summary: Get open projects news description: Returns the latest news and activity feed from all projects the user has access to. responses: '200': description: News feed successfully retrieved content: application/json: schema: type: object properties: data: type: array items: type: object description: Array of news items stats: type: object description: News statistics total: type: integer description: Total number of news items parameters: - in: query name: project_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by specific project - in: query name: before required: false schema: type: string format: date example: '2022-07-12' description: Filter news before this date - in: query name: after required: false schema: type: string format: date example: '2022-07-12' description: Filter news after this date - in: query name: page required: false schema: type: integer default: 1 example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer default: 50 example: 50 description: Number of news items per page - in: query name: person_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by specific team member - in: query name: task_type_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by task type - in: query name: task_status_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by task status - in: query name: episode_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by specific episode - in: query name: only_preview required: false schema: type: boolean default: false example: false description: Show only news related to preview uploads tags: - News x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/news?project_id=a24a6ea4-ce75-4665-a070-57453082c25&before=2022-07-12&after=2022-07-12&page=1&limit=50&person_id=a24a6ea4-ce75-4665-a070-57453082c25&task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&task_status_id=a24a6ea4-ce75-4665-a070-57453082c25&episode_id=a24a6ea4-ce75-4665-a070-57453082c25&only_preview=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/news" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "before": "2022-07-12", "after": "2022-07-12", "page": 1, "limit": 50, "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25", "only_preview": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/news": get: summary: Get project latest news description: Get the 50 latest news object (activity feed) for a project responses: '200': description: All news related to given project content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid description: Unique news item identifier title: type: string description: News item title content: type: string created_at: type: string format: date-time author_id: type: string format: uuid stats: type: object properties: total: type: integer '404': description: Project not found parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: query name: before required: false schema: type: string format: date example: '2022-07-12' description: Filter news before this date - in: query name: after required: false schema: type: string format: date example: '2022-07-12' description: Filter news after this date - in: query name: page required: false schema: type: integer default: 1 example: 1 description: Page number for pagination - in: query name: limit required: false schema: type: integer default: 50 example: 50 description: Number of news items per page - in: query name: person_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by specific team member - in: query name: task_type_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by task type - in: query name: task_status_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by task status - in: query name: episode_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter news by specific episode - in: query name: only_preview required: false schema: type: boolean default: false example: false description: Show only news related to preview uploads tags: - News x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news?before=2022-07-12&after=2022-07-12&page=1&limit=50&person_id=a24a6ea4-ce75-4665-a070-57453082c25&task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&task_status_id=a24a6ea4-ce75-4665-a070-57453082c25&episode_id=a24a6ea4-ce75-4665-a070-57453082c25&only_preview=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "before": "2022-07-12", "after": "2022-07-12", "page": 1, "limit": 50, "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25", "only_preview": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/news/{news_id}": get: summary: Get news item description: Retrieves detailed information about a specific news item from a givenproject. responses: '200': description: News item successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Unique news item identifier title: type: string description: News item title content: type: string description: News item content created_at: type: string format: date-time description: Creation timestamp author_id: type: string format: uuid description: Author's user ID project_id: type: string format: uuid description: Project identifier '404': description: News item or project not found parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project - in: path name: news_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the news item tags: - News x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/desktop-login-logs": post: summary: Create desktop login log description: Add a new log entry for desktop logins for a person. requestBody: required: true content: application/json: schema: type: object required: - date properties: date: type: string format: date description: Login date example: '2022-07-12' responses: '201': description: Desktop login log entry created content: application/json: schema: type: object properties: id: type: string format: uuid description: Log entry unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date-time description: Login date and time example: '2022-07-12T10:30:00Z' '400': description: Invalid date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "date": "2022-07-12" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "date": "2022-07-12" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get desktop login logs description: Retrieve desktop login logs for a person. Desktop login logs can only be created by current user. responses: '200': description: Desktop login logs for the person content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Log entry unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date-time description: Login date and time example: '2022-07-12T10:30:00Z' parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/presence-logs/{month_date}": get: summary: Get presence logs description: Return a CSV file containing the presence logs based on a daily basis for the given month. responses: '200': description: CSV file containing the presence logs based on daily basis content: text/csv: schema: type: string format: binary '400': description: Invalid date format parameters: - in: path name: month_date required: true schema: type: string format: date description: Month in YYYY-MM format example: 2022-07 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/presence-logs/2022-07" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/presence-logs/2022-07" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents": get: summary: Get time spents description: Get all time spents for the given person. Optionally can accept date range parameters. responses: '200': description: All time spents for the given person content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 duration: type: number format: float description: Time spent duration in hours example: 8.5 date: type: string format: date description: Date of time spent entry example: '2022-07-12' '400': description: Invalid date range parameters parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: start_date required: false schema: type: string format: date description: Start date for date range filter example: '2022-07-01' - in: query name: end_date required: false schema: type: string format: date description: End date for date range filter example: '2022-07-31' tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents?start_date=2022-07-01&end_date=2022-07-31" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "start_date": "2022-07-01", "end_date": "2022-07-31" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/{date}": get: summary: Get time spents for date description: Get time spents for given person and specific date. responses: '200': description: Time spents for given person and date content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 duration: type: number format: float description: Time spent duration in hours example: 8.5 date: type: string format: date description: Date of time spent entry example: '2022-07-12' '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date description: Date to get time spents for example: '2022-07-12' tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/day-offs/{date}": get: summary: Get day off description: Get day off object for given person and date. responses: '200': description: Day off object for given person and date content: application/json: schema: type: object properties: id: type: string format: uuid description: Day off unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date description: Day off date example: '2022-07-12' type: type: string description: Day off type example: vacation '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date description: Date to get day off for example: '2022-07-12' tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/2022-07-12" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/2022-07-12" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/year/{year}": get: summary: Get year time spents description: Get aggregated time spents for given person and year. responses: '200': description: Aggregated time spents for given person and year content: application/json: schema: type: object properties: total_duration: type: number format: float description: Total duration in hours example: 2080.5 year: type: integer description: Year example: 2022 '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get aggregated time spents for example: 2022 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/year/2022" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/year/2022" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/month/{year}/{month}": get: summary: Get month time spents description: Get aggregated time spents for given person and month. responses: '200': description: Aggregated time spents for given person and month content: application/json: schema: type: object properties: total_duration: type: number format: float description: Total duration in hours example: 173.5 year: type: integer description: Year example: 2022 month: type: integer description: Month example: 7 '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get aggregated time spents for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get aggregated time spents for example: 7 minimum: 1 maximum: 12 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/2022/7" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/month/all/{year}/{month}": get: summary: Get all month time spents description: Get all time spents for a given person and month. responses: '200': description: All time spents for the given person and month content: application/json: schema: type: array items: type: object parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get time spents for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get time spents for example: 7 minimum: 1 maximum: 12 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/all/2022/7" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/all/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/week/{year}/{week}": get: summary: Get week time spents description: Get aggregated time spents for given person and week. responses: '200': description: Aggregated time spents for given person and week content: application/json: schema: type: object properties: total_duration: type: number format: float description: Total duration in hours example: 40.0 year: type: integer description: Year example: 2022 week: type: integer description: Week number example: 35 '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get aggregated time spents for example: 2022 - in: path name: week required: true schema: type: integer description: Week number to get aggregated time spents for example: 35 minimum: 1 maximum: 52 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/week/2022/35" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/week/2022/35" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/time-spents/day/{year}/{month}/{day}": get: summary: Get day time spents description: Get aggregated time spents for given person and day. responses: '200': description: Aggregated time spents for given person and day content: application/json: schema: type: object properties: total_duration: type: number format: float description: Total duration in hours example: 8.5 year: type: integer description: Year example: 2022 month: type: integer description: Month example: 7 day: type: integer description: Day example: 12 '400': description: Wrong date format parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get aggregated time spents for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get aggregated time spents for example: 7 minimum: 1 maximum: 12 - in: path name: day required: true schema: type: integer description: Day to get aggregated time spents for example: 12 minimum: 1 maximum: 31 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/day/2022/7/12" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/day/2022/7/12" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/quota-shots/month/{year}/{month}": get: summary: Get month quota shots description: Get ended shots used for quota calculation of this month. responses: '200': description: Ended shots used for quota calculation of this month content: application/json: schema: type: array items: type: object '400': description: Wrong date format or invalid count mode parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get quota shots for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get quota shots for example: 7 minimum: 1 maximum: 12 - in: query name: count_mode required: false schema: type: string enum: - weighted - weighteddone - feedback - done description: Count mode for quota calculation example: weighted tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/month/2022/7?count_mode=weighted" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/month/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "count_mode": "weighted" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/quota-shots/week/{year}/{week}": get: summary: Get week quota shots description: Get ended shots used for quota calculation of this week. responses: '200': description: Ended shots used for quota calculation of this week content: application/json: schema: type: array items: type: object '400': description: Wrong date format or invalid count mode parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get quota shots for example: 2022 - in: path name: week required: true schema: type: integer description: Week number to get quota shots for example: 35 minimum: 1 maximum: 52 - in: query name: count_mode required: false schema: type: string enum: - weighted - weighteddone - feedback - done description: Count mode for quota calculation example: weighted tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/week/2022/35?count_mode=weighted" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/week/2022/35" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "count_mode": "weighted" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/quota-shots/day/{year}/{month}/{day}": get: summary: Get day quota shots description: Get ended shots used for quota calculation of this day. responses: '200': description: Ended shots used for quota calculation of this day content: application/json: schema: type: array items: type: object '400': description: Wrong date format or invalid count mode parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get quota shots for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get quota shots for example: 7 minimum: 1 maximum: 12 - in: path name: day required: true schema: type: integer description: Day to get quota shots for example: 12 minimum: 1 maximum: 31 - in: query name: count_mode required: false schema: type: string enum: - weighted - weighteddone - feedback - done description: Count mode for quota calculation example: weighted tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/day/2022/7/12?count_mode=weighted" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/day/2022/7/12" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "count_mode": "weighted" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/time-spents/year-table/": get: summary: Get time spent years table description: Return a table giving time spent by user and by month for all years. responses: '200': description: Table giving time spent by user and by month for all years content: application/json: schema: type: object tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/time-spents/year-table/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/time-spents/year-table/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/time-spents/month-table/{year}": get: summary: Get time spent months table description: Return a table giving time spent by user and by month for given year. responses: '200': description: Table giving time spent by user and by month for given year content: application/json: schema: type: object parameters: - in: path name: year required: true schema: type: integer description: Year to get time spent table for example: 2022 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/time-spents/month-table/2022" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/time-spents/month-table/2022" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/time-spents/week-table/{year}": get: summary: Get time spent weeks table description: Return a table giving time spent by user and by week for given year. responses: '200': description: Table giving time spent by user and by week for given year content: application/json: schema: type: object parameters: - in: path name: year required: true schema: type: integer description: Year to get time spent table for example: 2022 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/time-spents/week-table/2022" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/time-spents/week-table/2022" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/time-spents/day-table/{year}/{month}": get: summary: Get time spent month table description: Return a table giving time spent by user and by day for given year and month. responses: '200': description: Table giving time spent by user and by day for given year and month content: application/json: schema: type: object parameters: - in: path name: year required: true schema: type: integer description: Year to get time spent table for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get time spent table for example: 7 minimum: 1 maximum: 12 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/time-spents/day-table/2022/7" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/time-spents/day-table/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/day-offs/{year}/{month}": get: summary: Get day offs for month description: Return all day off recorded for given month. Admins get all day offs, regular users get only their own. responses: '200': description: All day off recorded for given month content: application/json: schema: type: array items: type: object parameters: - in: path name: year required: true schema: type: integer description: Year to get day offs for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get day offs for example: 7 minimum: 1 maximum: 12 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/day-offs/2022/7" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/day-offs/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/day-offs/week/{year}/{week}": get: summary: Get person week day offs description: Return all day off recorded for given week and person. responses: '200': description: All day off recorded for given week and person content: application/json: schema: type: array items: type: object parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get day offs for example: 2022 - in: path name: week required: true schema: type: integer description: Week number to get day offs for example: 35 minimum: 1 maximum: 52 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/week/2022/35" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/week/2022/35" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/day-offs/month/{year}/{month}": get: summary: Get person month day offs description: Return all day off recorded for given month and person. responses: '200': description: All day off recorded for given month and person content: application/json: schema: type: array items: type: object parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get day offs for example: 2022 - in: path name: month required: true schema: type: integer description: Month to get day offs for example: 7 minimum: 1 maximum: 12 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/month/2022/7" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/month/2022/7" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/day-offs/year/{year}": get: summary: Get person year day offs description: Return all day off recorded for given year and person. responses: '200': description: All day off recorded for given year and person content: application/json: schema: type: array items: type: object parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: year required: true schema: type: integer description: Year to get day offs for example: 2022 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/year/2022" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/year/2022" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/day-offs": get: summary: Get person day offs description: Return all day offs recorded for given person. responses: '200': description: All day off recorded for given person content: application/json: schema: type: array items: type: object parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/invite": get: summary: Invite person description: Sends an email to given person to invite him or her to connect to Kitsu. responses: '200': description: Email sent successfully content: application/json: schema: type: object properties: success: type: boolean description: Success flag example: true message: type: string description: Success message example: Email sent parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/invite" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/invite" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/departments/add": post: summary: Add person to department description: Add a user to given department. requestBody: required: true content: application/json: schema: type: object required: - department_id properties: department_id: type: string format: uuid description: Department unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: User added to given department content: application/json: schema: type: object properties: id: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid description: Department unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 '400': description: Invalid department ID parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/add" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "department_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/add" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "department_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/departments/{department_id}": delete: summary: Remove person from department description: Remove a user from given department. responses: '204': description: User removed from given department parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: department_id required: true schema: type: string format: uuid description: Department unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/change-password": post: summary: Change person password description: Allow admin to change password for given user. An admin can't change other admins password. The new password requires a confirmation to ensure that the admin didn't make a mistake by typing the new password. requestBody: required: true content: application/json: schema: type: object required: - password - password_2 properties: password: type: string format: password description: New password example: newSecurePassword123 password_2: type: string format: password description: Password confirmation example: newSecurePassword123 responses: '200': description: Password changed successfully content: application/json: schema: type: object properties: success: type: boolean description: Success flag example: true '400': description: Invalid password or inactive user content: application/json: schema: type: object properties: error: type: boolean description: Error flag example: true message: type: string description: Error message example: Password is too short. parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/change-password" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "password": "newSecurePassword123", "password_2": "newSecurePassword123" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/change-password" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "password": "newSecurePassword123", "password_2": "newSecurePassword123" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/disable-two-factor-authentication": delete: summary: Disable two factor authentication description: Allow admin to disable two factor authentication for given user. An admin can't disable two factor authentication for other admins. responses: '200': description: Two factor authentication disabled successfully content: application/json: schema: type: object properties: success: type: boolean description: Success flag example: true '400': description: Inactive user or two factor authentication not enabled content: application/json: schema: type: object properties: error: type: boolean description: Error flag example: true message: type: string description: Error message example: User is unactive. parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/disable-two-factor-authentication" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/disable-two-factor-authentication" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/clear-avatar": delete: summary: Clear person avatar description: Set has_avatar flag to False for current user and remove its avatar file. responses: '204': description: Avatar file deleted parameters: - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Persons x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/clear-avatar" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/clear-avatar" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/playlists": get: summary: Get project playlists description: Retrieve all playlists related to given project. Result is paginated and can be sorted. responses: '200': description: All playlists related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Playlist name example: Review Playlist project_id: type: string format: uuid description: Project unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: page required: false schema: type: integer description: Page number for pagination example: 1 - in: query name: sort_by required: false schema: type: string description: Field to sort by example: updated_at - in: query name: task_type_id required: false schema: type: string format: uuid description: Task type unique identifier to filter by example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists?page=1&sort_by=updated_at&task_type_id=b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "sort_by": "updated_at", "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/playlists/all": get: summary: Get all project playlists description: Retrieve all playlists related to given project. It's mainly used for synchronisation purpose. responses: '200': description: All playlists related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Playlist name example: Review Playlist project_id: type: string format: uuid description: Project unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/all" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/{episode_id}/playlists": get: summary: Get episode playlists description: Retrieve all playlists related to given episode. The full list is returned because the number of playlists in an episode is not that big. responses: '200': description: All playlists related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Playlist name example: Review Playlist episode_id: type: string format: uuid description: Episode unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: episode_id required: true schema: type: string format: uuid description: Episode unique identifier or special value (main, all) example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/playlists" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/playlists" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/playlists/{playlist_id}": get: summary: Get playlist description: Retrieve a specific playlist by ID with preview file revisions. responses: '200': description: Playlist details with preview file revisions content: application/json: schema: type: object properties: id: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Playlist name example: Review Playlist project_id: type: string format: uuid description: Project unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 shots: type: array description: List of shots with preview file revisions items: type: object example: - id: uuid preview_file_id: uuid parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/entities/{entity_id}/preview-files": get: summary: Get entity previews description: Retrieve all previews related to a given entity. It sends them as a dict. Keys are related task type ids and values are arrays of preview for this task type. responses: '200': description: All previews related to given entity grouped by task type content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Preview file name example: preview_v001.png parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/{playlist_id}/jobs/{build_job_id}": delete: summary: Delete build job description: Remove given build job related to given playlist. responses: '204': description: Build job removed successfully parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: build_job_id required: true schema: type: string format: uuid description: Build job unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get build job description: Retrieve build job related to given playlist. responses: '200': description: Build job related to given playlist content: application/json: schema: type: object properties: id: type: string format: uuid description: Build job unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 status: type: string description: Build job status example: succeeded created_at: type: string format: date-time description: Build job creation timestamp example: '2022-07-12T10:30:00Z' parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: build_job_id required: true schema: type: string format: uuid description: Build job unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/build-jobs": get: summary: Get project build jobs description: Retrieve all build jobs related to given project. It's mainly used for synchronisation purpose. responses: '200': description: All build jobs related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Build job unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 status: type: string description: Build job status example: succeeded created_at: type: string format: date-time description: Build job creation timestamp example: '2022-07-12T10:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/build-jobs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/build-jobs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/{playlist_id}/build/mp4": get: summary: Build playlist movie description: Build given playlist as MP4 movie. Starts a build job that processes the playlist shots into a video file. responses: '200': description: Build job created for playlist movie content: application/json: schema: type: object properties: id: type: string format: uuid description: Build job unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 status: type: string description: Build job status example: pending created_at: type: string format: date-time description: Build job creation timestamp example: '2022-07-12T10:30:00Z' parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: full required: false schema: type: boolean description: Whether to build full quality movie example: true tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/build/mp4?full=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/build/mp4" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "full": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/{playlist_id}/jobs/{build_job_id}/build/mp4": get: summary: Download playlist build description: Download given playlist build as MP4 file. responses: '200': description: Playlist build downloaded as MP4 file content: video/mp4: schema: type: string format: binary '400': description: Build not finished, need to retry later content: application/json: schema: type: object properties: error: type: boolean description: Error flag example: true message: type: string description: Error message example: Build is not finished parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: build_job_id required: true schema: type: string format: uuid description: Build job unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36/build/mp4" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36/build/mp4" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/{playlist_id}/download/zip": get: summary: Download playlist zip description: Download given playlist as ZIP file containing all preview files. responses: '200': description: Playlist downloaded as ZIP file content: application/zip: schema: type: string format: binary parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/download/zip" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/download/zip" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/playlists/temp": post: summary: Generate temp playlist description: Generate a temporary playlist from task IDs. It's mainly used for synchronisation purpose. requestBody: required: true content: application/json: schema: type: object required: - task_ids properties: task_ids: type: array items: type: string format: uuid description: List of task unique identifiers example: - a24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Temporary playlist generated content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Preview file name example: preview_v001.png '400': description: Invalid task IDs parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: sort required: false schema: type: boolean description: Whether to sort the playlist example: true tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/temp?sort=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/temp" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = { "sort": true } payload = { "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/playlists/{playlist_id}/add-entity": post: summary: Add entity to playlist description: Atomically add a single entity to the given playlist. requestBody: required: true content: application/json: schema: type: object required: - entity_id properties: entity_id: type: string format: uuid description: Entity unique identifier to add to playlist preview_file_id: type: string format: uuid nullable: true description: Optional preview file identifier associated to the entity responses: '200': description: Updated playlist content: application/json: schema: type: object parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier tags: - Playlists "/data/playlists/{playlist_id}/notify-clients": post: summary: Notify clients playlist ready description: Notify clients that given playlist is ready for review. requestBody: required: false content: application/json: schema: type: object properties: studio_id: type: string format: uuid description: Studio unique identifier to notify example: b35b7fb5-df86-5776-b181-68564193d36 department_id: type: string format: uuid description: Department unique identifier to notify example: c46c8gc6-eg97-6887-c292-79675204e47 responses: '200': description: Clients notified successfully content: application/json: schema: type: object properties: status: type: string description: Notification status example: success parameters: - in: path name: playlist_id required: true schema: type: string format: uuid description: Playlist unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Playlists x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/notify-clients" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "studio_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/notify-clients" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "studio_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/open": get: summary: Get open projects description: Return the list of projects currently running. Most of the time, past projects are not needed. responses: '200': description: All running projects content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project project_status_id: type: string format: uuid description: Project status unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: query name: name required: false schema: type: string description: Filter projects by name example: My Project tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/open?name=My%20Project" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/open" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "name": "My Project" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/all": get: summary: Get all projects description: Return all projects listed in database. Ensure that user has at least the manager level before that. responses: '200': description: All projects listed in database content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project project_status_id: type: string format: uuid description: Project status unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 parameters: - in: query name: name required: false schema: type: string description: Filter projects by name example: My Project tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/all?name=My%20Project" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "name": "My Project" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/team": post: summary: Add person to production team description: Add a person to a production team. requestBody: required: true content: application/json: schema: type: object required: - person_id properties: person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Person added to the production team content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production team description: Return the people listed in a production team. responses: '200': description: People listed in a production team content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string description: Person first name example: John last_name: type: string description: Person last name example: Doe email: type: string description: Person email address example: john.doe@example.com parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/task-types": get: summary: Get production task types description: Retrieve task types linked to the production. responses: '200': description: Task types linked to the production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/task-types/{task_type_id}/time-spents": get: summary: Get production task type time spents description: Retrieve time spents for a task type in the production. responses: '200': description: All time spents for given task type and project content: application/json: schema: type: dict items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 duration: type: number format: float description: Time spent duration in hours example: 8.5 date: type: string format: date description: Date of time spent entry example: '2022-07-15' '400': description: Invalid date range parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: start_date required: false schema: type: string format: date description: Start date for filtering time spents example: '2022-07-01' - in: query name: end_date required: false schema: type: string format: date description: End date for filtering time spents example: '2022-07-31' tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/time-spents?start_date=2022-07-01&end_date=2022-07-31" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "start_date": "2022-07-01", "end_date": "2022-07-31" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/day-offs": get: summary: Get production day offs description: Retrieve all day offs for a production. responses: '200': description: All day offs for given project content: application/json: schema: type: dict items: type: object properties: id: type: string format: uuid description: Day off unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 description: type: string description: Day off description example: Vacation date: type: string format: date description: Day off start date example: '2022-07-15' end_date: type: string format: date description: Day off end date example: '2022-07-22' '400': description: Invalid date range parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: start_date required: false schema: type: string format: date description: Start date for filtering day offs example: '2022-07-01' - in: query name: end_date required: false schema: type: string format: date description: End date for filtering day offs example: '2022-07-31' tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/day-offs?start_date=2022-07-01&end_date=2022-07-31" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/day-offs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "start_date": "2022-07-01", "end_date": "2022-07-31" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/team/{person_id}": delete: summary: Remove person from production team description: Remove people listed in a production team. responses: '204': description: Person removed from production team parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: person_id required: true schema: type: string format: uuid description: Person unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/asset-types": post: summary: Add asset type to production description: Add an asset type linked to a production. requestBody: required: true content: application/json: schema: type: object required: - asset_type_id properties: asset_type_id: type: string format: uuid description: Asset type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Asset type added to production content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "asset_type_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "asset_type_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/asset-types/{asset_type_id}": delete: summary: Remove asset type from production description: Remove an asset type from a production. responses: '204': description: Asset type removed from production parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: asset_type_id required: true schema: type: string format: uuid description: Asset type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/task-types": post: summary: Add task type to production description: Add a task type linked to a production. requestBody: required: true content: application/json: schema: type: object required: - task_type_id properties: task_type_id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 priority: type: string description: Task type priority example: None responses: '201': description: Task type added to production content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "priority": "None" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36", "priority": "None" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/task-types/{task_type_id}": delete: summary: Remove task type from production description: Remove a task type from a production. responses: '204': description: Task type removed from production parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/task-status": post: summary: Add task status to production description: Add a task status linked to a production. requestBody: required: true content: application/json: schema: type: object required: - task_status_id properties: task_status_id: type: string format: uuid description: Task status unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Task status added to production content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_status_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_status_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production task statuses description: Return task statuses linked to a production. responses: '200': description: Task statuses linked to production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/task-status/{task_status_id}": delete: summary: Remove task status from production description: Remove a task status from a production. responses: '204': description: Task status removed from production parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_status_id required: true schema: type: string format: uuid description: Task status unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/status-automations": post: summary: Add status automation to production description: Add a status automation linked to a production. requestBody: required: true content: application/json: schema: type: object required: - status_automation_id properties: status_automation_id: type: string format: uuid description: Status automation unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Status automation added to production content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "status_automation_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "status_automation_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production status automations description: Get status automations linked to a production. responses: '200': description: Status automations linked to production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/status-automations/{status_automation_id}": delete: summary: Remove status automation from production description: Remove a status automation from a production. responses: '204': description: Status automation removed from production parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: status_automation_id required: true schema: type: string format: uuid description: Status automation unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/preview-background-files/{preview_background_file_id}": delete: summary: Remove preview background file from production description: Remove a preview background file from a production. responses: '204': description: Preview background file removed from production parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: preview_background_file_id required: true schema: type: string format: uuid description: Preview background file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/settings/preview-background-files": post: summary: Add preview background file to production description: Add a preview background file linked to a production. requestBody: required: true content: application/json: schema: type: object required: - preview_background_file_id properties: preview_background_file_id: type: string format: uuid description: Preview background file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Preview background file added to production content: application/json: schema: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "preview_background_file_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "preview_background_file_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production preview background files description: Return preview background files linked to a production. responses: '200': description: Preview background files linked to production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/metadata-descriptors": post: summary: Create metadata descriptor description: Create a new metadata descriptor. It serves to describe extra fields listed in the data attribute of entities. requestBody: required: true content: application/json: schema: type: object required: - name - data_type properties: entity_type: type: string description: Entity type for the metadata descriptor enum: - Asset - Shot - Edit - Episode - Sequence default: Asset example: Asset name: type: string description: Name of the metadata descriptor example: Custom Field data_type: type: string description: Type of data (string, number, boolean, etc.) example: string for_client: type: string description: Whether the descriptor is for client default: 'False' example: 'True' choices: type: array description: List of choices for the descriptor items: type: string example: - option1 - option2 departments: type: array description: List of departments for the descriptor items: type: string example: - department1 - department2 responses: '201': description: Metadata descriptor created content: application/json: schema: type: object properties: id: type: string format: uuid description: Metadata descriptor unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Metadata descriptor name example: Custom Field data_type: type: string description: Metadata descriptor data type example: string '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "entity_type": "Asset", "name": "Custom Field", "data_type": "string", "for_client": "True", "choices": [ "option1", "option2" ], "departments": [ "department1", "department2" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "entity_type": "Asset", "name": "Custom Field", "data_type": "string", "for_client": "True", "choices": [ "option1", "option2" ], "departments": [ "department1", "department2" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get metadata descriptors description: Get all metadata descriptors. It serves to describe extra fields listed in the data attribute of entities. responses: '200': description: All metadata descriptors content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/metadata-descriptors/{descriptor_id}": put: summary: Update metadata descriptor description: Update a metadata descriptor. Descriptors serve to describe extra fields listed in the data attribute of entities. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name of the metadata descriptor example: Custom Field for_client: type: string description: Whether the descriptor is for client default: 'False' example: 'True' choices: type: array description: List of choices for the descriptor items: type: string example: - option1 - option2 departments: type: array description: List of departments for the descriptor items: type: string example: - department1 - department2 responses: '200': description: Metadata descriptor updated content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: descriptor_id required: true schema: type: string format: uuid description: Metadata descriptor unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Custom Field", "for_client": "True", "choices": [ "option1", "option2" ], "departments": [ "department1", "department2" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Custom Field", "for_client": "True", "choices": [ "option1", "option2" ], "departments": [ "department1", "department2" ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete metadata descriptor description: Delete a metadata descriptor. Descriptors serve to describe extra fields listed in the data attribute of entities. responses: '204': description: Metadata descriptor deleted parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: descriptor_id required: true schema: type: string format: uuid description: Metadata descriptor unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get metadata descriptor description: Get a metadata descriptor. Descriptors serve to describe extra fields listed in the data attribute of entities. responses: '200': description: Metadata descriptor content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: descriptor_id required: true schema: type: string format: uuid description: Metadata descriptor unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/metadata-descriptors/reorder": post: summary: Reorder metadata descriptors description: Reorder metadata descriptors for a specific entity type and project. Descriptors are reordered based on the list of descriptor IDs provided in the request body. Position is set according to the order in the list. requestBody: required: true content: application/json: schema: type: object required: - entity_type - descriptor_ids properties: entity_type: type: string description: Entity type for the metadata descriptors enum: - Asset - Shot - Edit - Episode - Sequence example: Asset descriptor_ids: type: array description: List of metadata descriptor IDs in the desired order items: type: string format: uuid example: - b35b7fb5-df86-5776-b181-68564193d36 - c46c8gc6-eg97-6887-c292-79675204e47 responses: '200': description: Metadata descriptors reordered successfully content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Metadata descriptor unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Metadata descriptor name example: Custom Field position: type: integer description: Position of the descriptor example: 1 entity_type: type: string description: Entity type example: Asset '400': description: Invalid parameters or descriptor not found parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/reorder" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "entity_type": "Asset", "descriptor_ids": [ "b35b7fb5-df86-5776-b181-68564193d36", "c46c8gc6-eg97-6887-c292-79675204e47" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/reorder" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "entity_type": "Asset", "descriptor_ids": [ "b35b7fb5-df86-5776-b181-68564193d36", "c46c8gc6-eg97-6887-c292-79675204e47" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/milestones": get: summary: Get production milestones description: Retrieve milestones for given production. responses: '200': description: All milestones of given production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/milestones" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/milestones" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/schedule-items": get: summary: Get production schedule items description: Retrieve schedule items for given production. responses: '200': description: All schedule items of given production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/schedule-items/task-types": get: summary: Get production task type schedule items description: Retrieve task type schedule items for given production. responses: '200': description: All task types schedule items of given production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/schedule-items/{task_type_id}/asset-types": get: summary: Get asset types schedule items description: Retrieve asset types schedule items for given task type. responses: '200': description: All asset types schedule items for given task type content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/asset-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/schedule-items/{task_type_id}/episodes": get: summary: Get episodes schedule items description: Retrieve episodes schedule items for given task type. responses: '200': description: All episodes schedule items for given task type content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/episodes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/schedule-items/{task_type_id}/sequences": get: summary: Get sequences schedule items description: Retrieve sequences schedule items for given task type. responses: '200': description: All sequences schedule items for given task type content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/sequences" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/time-spents": get: summary: Get production time spents description: Retrieve time spents for given production. responses: '200': description: All time spents of given production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/budgets": post: summary: Create budget description: Create a budget for given production. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Budget name example: New Budget currency: type: string description: Budget currency code default: USD example: USD responses: '201': description: Budget created content: application/json: schema: type: object properties: id: type: string format: uuid description: Budget unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Budget name example: New Budget currency: type: string description: Budget currency code example: USD '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "New Budget", "currency": "USD" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "New Budget", "currency": "USD" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get production budgets description: Retrieve budgets for given production. responses: '200': description: All budgets of given production content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/budgets/{budget_id}": put: summary: Update budget description: Update a budget for given production. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Budget name example: New Budget currency: type: string description: Budget currency code example: USD responses: '200': description: Budget updated content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "New Budget", "currency": "USD" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "New Budget", "currency": "USD" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete budget description: Delete a budget for given production. responses: '204': description: Budget deleted parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get budget description: Retrieve a budget for given production. responses: '200': description: Budget retrieved content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/budgets/{budget_id}/entries": post: summary: Create budget entry description: Create a budget entry for given production and budget. requestBody: required: true content: application/json: schema: type: object required: - department_id properties: department_id: type: string format: uuid description: Department unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 person_id: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 start_date: type: string format: date description: Budget entry start date example: '2025-01-01' months_duration: type: integer description: Budget entry duration in months example: 12 daily_salary: type: number format: float description: Daily salary amount example: 100.0 position: type: string description: Position name example: Artist seniority: type: string description: Seniority level example: Mid responses: '201': description: Budget entry created content: application/json: schema: type: object properties: id: type: string format: uuid description: Budget entry unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid description: Department unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 '400': description: Invalid parameters parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "department_id": "c46c8gc6-eg97-6887-c292-79675204e47", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "start_date": "2025-01-01", "months_duration": 12, "daily_salary": 100, "position": "Artist", "seniority": "Mid" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "department_id": "c46c8gc6-eg97-6887-c292-79675204e47", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "start_date": "2025-01-01", "months_duration": 12, "daily_salary": 100, "position": "Artist", "seniority": "Mid" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get budget entries description: Retrieve budget entries for given production. responses: '200': description: All budget entries of given production and budget content: application/json: schema: type: array items: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/budgets/{budget_id}/entries/{entry_id}": put: summary: Update budget entry description: Update a budget entry for given production and budget. requestBody: required: true content: application/json: schema: type: object properties: department_id: type: string format: uuid description: Department unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 person_id: type: string format: uuid description: Person unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 start_date: type: string format: date description: Budget entry start date example: '2025-01-01' months_duration: type: integer description: Budget entry duration in months example: 12 daily_salary: type: number format: float description: Daily salary amount example: 100.0 position: type: string description: Position name example: Artist seniority: type: string description: Seniority level example: Mid exceptions: type: object description: Map of amount exceptions. Key is the date and value is the amount example: '2025-01-01': 1000 '2025-02-01': 2000 responses: '200': description: Budget entry updated content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: path name: entry_id required: true schema: type: string format: uuid description: Budget entry unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "department_id": "c46c8gc6-eg97-6887-c292-79675204e47", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "start_date": "2025-01-01", "months_duration": 12, "daily_salary": 100, "position": "Artist", "seniority": "Mid", "exceptions": { "2025-01-01": 1000, "2025-02-01": 2000 } }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "department_id": "c46c8gc6-eg97-6887-c292-79675204e47", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "start_date": "2025-01-01", "months_duration": 12, "daily_salary": 100, "position": "Artist", "seniority": "Mid", "exceptions": { "2025-01-01": 1000, "2025-02-01": 2000 } } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete budget entry description: Delete a budget entry for given production and budget. responses: '204': description: Budget entry deleted parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: path name: entry_id required: true schema: type: string format: uuid description: Budget entry unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get budget entry description: Retrieve a budget entry for given production and budget. responses: '200': description: Budget entry retrieved content: application/json: schema: type: object parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: budget_id required: true schema: type: string format: uuid description: Budget unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 - in: path name: entry_id required: true schema: type: string format: uuid description: Budget entry unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/budgets/time-spents": get: summary: Get production month time spents description: Get aggregated time spents by month for given project. responses: '200': description: Aggregated time spents for given project and month content: application/json: schema: type: object '400': description: Wrong ID format parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/time-spents" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/production-schedule-versions/{production_schedule_version_id}/task-links": get: summary: Get production schedule version task links description: Get task links for given production schedule version. responses: '200': description: Task links for given production schedule version content: application/json: schema: type: array items: type: object '400': description: Wrong ID format parameters: - in: path name: production_schedule_version_id required: true schema: type: string format: uuid description: Production schedule version unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: task_type_id required: false schema: type: string format: uuid description: Task type unique identifier for filtering example: b35b7fb5-df86-5776-b181-68564193d36 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/task-links?task_type_id=b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/task-links" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "task_type_id": "b35b7fb5-df86-5776-b181-68564193d36" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/production-schedule-versions/{production_schedule_version_id}/set-task-links-from-production": post: summary: Set task links from tasks description: Set task links for given production schedule version from tasks. responses: '200': description: Task links created content: application/json: schema: type: object '400': description: Wrong ID format parameters: - in: path name: production_schedule_version_id required: true schema: type: string format: uuid description: Production schedule version unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/production-schedule-versions/{production_schedule_version_id}/set-task-links-from-production-schedule-version": post: summary: Set task links from production schedule version description: Set task links for given production schedule version from another production schedule version. requestBody: required: true content: application/json: schema: type: object required: - production_schedule_version_id properties: production_schedule_version_id: type: string format: uuid description: Source production schedule version unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '200': description: Task links created content: application/json: schema: type: object '400': description: Wrong ID format parameters: - in: path name: production_schedule_version_id required: true schema: type: string format: uuid description: Production schedule version unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production-schedule-version" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "production_schedule_version_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production-schedule-version" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "production_schedule_version_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/production-schedule-versions/{production_schedule_version_id}/apply-to-production": post: summary: Apply production schedule version description: Apply production schedule version to production. responses: '200': description: Production schedule version applied content: application/json: schema: type: object '400': description: Wrong ID format parameters: - in: path name: production_schedule_version_id required: true schema: type: string format: uuid description: Production schedule version unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Projects x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/apply-to-production" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/apply-to-production" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots": get: summary: Get all shots description: Get all shots across projects with optional filters. Use sequence_id, project_id, or parent_id to filter. responses: '200': description: All shot entries content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH020 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: query name: sequence_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: parent_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots?sequence_id=a24a6ea4-ce75-4665-a070-57453082c25&project_id=a24a6ea4-ce75-4665-a070-57453082c25&parent_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "parent_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/all": get: summary: Get shots description: Get shots with optional filters. Use query params like project_id, sequence_id or parent_id to filter results. responses: '200': description: All shot entries content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: query name: sequence_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: parent_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/all?sequence_id=a24a6ea4-ce75-4665-a070-57453082c25&project_id=a24a6ea4-ce75-4665-a070-57453082c25&parent_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "parent_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/with-tasks": get: summary: Get shots and tasks description: Get shots and their related tasks. Optionally filter by project. responses: '200': description: All shots content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 tasks: type: array items: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}": put: summary: Update shot description: Update a shot by id. Only mutable fields are allowed. Send a JSON body with the fields to change. requestBody: required: true content: application/json: schema: type: object description: Data to update on the shot properties: name: type: string example: SH010 new name description: type: string example: Update description for the shot nb_frames: type: integer example: 24 data: type: object example: camera: camA cut_in: 1001 responses: '200': description: Shot updated content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 120 data: type: object example: camera: camA cut_in: 1001 '400': description: Invalid body or unsupported fields parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "SH010 new name", "description": "Update description for the shot", "nb_frames": 24, "data": { "camera": "camA", "cut_in": 1001 } }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "SH010 new name", "description": "Update description for the shot", "nb_frames": 24, "data": { "camera": "camA", "cut_in": 1001 } } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete shot description: Delete a shot by id. Requires manager access or ownership of the shot. responses: '204': description: Shot deleted parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get shot description: Get a shot by id. Returns full shot data. Use this to fetch a single shot with all fields needed by the UI. responses: '200': description: Shot found and returned content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 120 data: type: object example: camera: camA cut_in: 1001 parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/assets": get: summary: Get shot assets description: Get assets linked to a shot. Returns the breakdown casting for the shot. responses: '200': description: All assets for given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Character A entity_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/assets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/task-types": get: summary: Get shot task types description: Get task types for a shot. responses: '200': description: All task types related to given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/tasks": get: summary: Get shot tasks description: Get tasks for a shot. Optionally include relations using query params. responses: '200': description: All tasks related to given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/preview-files": get: summary: Get shot previews description: Return previews for a shot as a dict keyed by task type id. Each value is an array of previews for that task type. responses: '200': description: All previews related to given shot content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 3 file_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 example: a24a6ea4-ce75-4665-a070-57453082c25: - id: b24a6ea4-ce75-4665-a070-57453082c25 revision: 3 file_id: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/shots/{shot_id}/versions": get: summary: Get shot versions description: Get data versions of a shot. Use this to inspect version history. responses: '200': description: Data versions of given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' parameters: - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/versions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/versions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/all": get: summary: Get scenes description: Get scenes with optional filters. Use project_id to filter by project. responses: '200': description: All scene entries content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/all?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/with-tasks": get: summary: Get scenes and tasks description: Get scenes and their related tasks. Optionally filter by project. responses: '200': description: All scenes content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 tasks: type: array items: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Layout parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}": delete: summary: Delete scene description: Delete a scene by id. Requires manager access or ownership. responses: '204': description: Scene deleted parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get scene description: Get a scene by id. Returns full scene data needed by clients. responses: '200': description: Scene found and returned content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/tasks": get: summary: Get scene tasks description: Get tasks for a scene. responses: '200': description: All tasks related to given scene content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 Layout task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/task-types": get: summary: Get scene task types description: Get task types for a scene. responses: '200': description: All task types related to given scene content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/shots": post: summary: Link shot to scene description: Link a shot to a scene as its source. requestBody: required: true content: application/json: schema: type: object required: - shot_id properties: shot_id: type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Scene marked as source of shot content: application/json: schema: type: object properties: scene_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 shot_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "shot_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "shot_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get scene shots description: Get shots that come from a scene. responses: '200': description: All shots that come from given scene content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/scenes/{scene_id}/shots/{shot_id}": delete: summary: Delete given shot from given scene. responses: '204': description: Given shot deleted from given scene parameters: - in: path name: scene_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: shot_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes": get: summary: Get episodes description: Get episodes with optional filters. Use project_id to filter by project. responses: '200': description: All episode entries content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: A short description of the episode status: type: string example: running parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/with-tasks": get: summary: Get episodes and tasks description: Get episodes and their related tasks. Optionally filter by project. responses: '200': description: All episodes content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 tasks: type: array items: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 Layout parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}": delete: summary: Delete episode description: Delete an episode by id. Requires manager access or ownership. responses: '204': description: Episode deleted parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get episode description: Get an episode by id. needs. responses: '200': description: Episode found and returned content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: A short description of the episode status: type: string example: running parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/shots": get: summary: Get episode shots description: Get shots for an episode. Supports including relations via query params. responses: '200': description: All shots related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/sequences": get: summary: Get episode sequences description: Get sequences for an episode. You can add query filters if needed. responses: '200': description: All sequence entries for given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/sequences?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/tasks": get: summary: Get episode tasks responses: '200': description: All tasks related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 Layout task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/task-types": get: summary: Get episode task types responses: '200': description: All task types related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/shot-tasks": get: summary: Get episode shot tasks description: Get shot tasks for an episode. Restricted for vendor permissions. responses: '200': description: All shot tasks related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 Layout task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/asset-tasks": get: summary: Get episode asset tasks description: Get asset tasks for an episode. Restricted for vendor permissions. responses: '200': description: All assets tasks related to given episode content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Character Modeling task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/asset-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/asset-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences": get: summary: Get sequences description: Get sequences with optional filters. Use episode_id to filter by episode. responses: '200': description: All sequence entries content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: query name: episode_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences?episode_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/with-tasks": get: summary: Get sequences and tasks description: Get sequences and their related tasks. Optionally filter by project. responses: '200': description: All sequences content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 tasks: type: array items: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ010 Editing parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}": delete: summary: Delete sequence description: Delete a sequence by id. Requires manager access or ownership. responses: '204': description: Sequence deleted parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get sequence description: Get a sequence by id. responses: '200': description: Sequence found and returned content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}/shots": get: summary: Get sequence shots description: Get shots for a sequence. Supports filtering using query params. responses: '200': description: All shot entries for given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}/scenes": get: summary: Get sequence scenes description: Get scenes that belong to a sequence. responses: '200': description: All scenes related to given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}/tasks": get: summary: Get sequence tasks description: Get tasks for a sequence. Optionally include relations using query params. responses: '200': description: All tasks related to given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}/task-types": get: summary: Get sequence task types description: Get task types for a sequence. responses: '200': description: All task types related to given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/sequences/{sequence_id}/shot-tasks": get: summary: Get sequence shot tasks description: Get shot tasks for a sequence. Restricted for vendor permissions. responses: '200': description: All shot tasks related to given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: sequence_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/shots": post: summary: Create project shot description: Create a shot in a project. Provide name and optional fields like description, sequence_id and nb_frames. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string required: true example: SH010 description: type: string required: false example: A short description of the shot sequence_id: type: string format: uuid required: false example: a24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer required: false example: 24 responses: '201': description: Shot created content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 sequence_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 24 description: type: string example: A short description of the shot parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "SH010", "description": "A short description of the shot", "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25", "nb_frames": 24 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "SH010", "description": "A short description of the shot", "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25", "nb_frames": 24 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project shots description: Get shots for a project. May limit to assigned shots for vendor users. responses: '200': description: All shots related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/scenes": post: summary: Create project scene description: Create a new scene in a project. Provide a name and the related sequence id. requestBody: required: true content: application/json: schema: type: object required: - name - sequence_id properties: name: type: string required: true example: Name of scene sequence_id: type: string format: uuid required: true example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Scene created for given project content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Name of scene", "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Name of scene", "sequence_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project scenes description: Get all scenes for a project. responses: '200': description: All scenes related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SC001 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 parent_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/sequences": post: summary: Create project sequence description: Create a sequence in a project. Provide name and optional episode_id. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string required: true example: SQ01 episode_id: type: string format: uuid required: false example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Sequence created content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: A sequence description parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "SQ01", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "SQ01", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project sequences description: Get sequences for a project. May limit to assigned items for vendor users. responses: '200': description: All sequences related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SQ01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 episode_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes": post: summary: Create project episode description: Create an episode in a project. Provide name and description. Status is optional. requestBody: required: true content: application/json: schema: type: object required: - name - description properties: name: type: string required: true example: EP01 description: type: string required: true example: A short description of the episode status: type: string required: false example: running responses: '201': description: Episode created content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: A short description of the episode status: type: string example: running parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "EP01", "description": "A short description of the episode", "status": "running" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "EP01", "description": "A short description of the episode", "status": "running" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project episodes description: Get episodes for a project. May limit to assigned items for vendor users. responses: '200': description: All episodes related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 description: type: string example: A short description of the episode status: type: string example: running parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/stats": get: summary: Get episode stats description: Return number of tasks by status, task type and episode for the project. responses: '200': description: Number of tasks by status, task types and episodes for given project content: application/json: schema: type: object additionalProperties: type: object additionalProperties: type: object additionalProperties: type: object properties: count: type: integer example: 120 frames: type: integer example: 1440 drawings: type: integer example: 360 example: episodeId1: taskTypeId1: taskStatusId1: count: 50 frames: 600 drawings: 150 taskStatusId2: count: 70 frames: 840 drawings: 210 all: all: taskStatusId1: count: 200 frames: 2400 drawings: 600 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/stats" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/stats" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/episodes/retake-stats": get: summary: Get episode retake stats description: Return retake and done counts by task type and episode. Includes evolution data and max retake count. responses: '200': description: Number of tasks by status, task types and episodes for given project content: application/json: schema: type: object additionalProperties: type: object properties: max_retake_count: type: integer example: 4 evolution: type: object additionalProperties: type: object properties: retake: type: object properties: count: type: integer example: 80 frames: type: integer example: 7900 drawings: type: integer example: 8000 done: type: object properties: count: type: integer example: 117 frames: type: integer example: 3900 drawings: type: integer example: 8000 done: type: object properties: count: type: integer example: 197 frames: type: integer example: 16090 drawings: type: integer example: 16090 retake: type: object properties: count: type: integer example: 0 frames: type: integer example: 0 drawings: type: integer example: 0 other: type: object properties: count: type: integer example: 5 frames: type: integer example: 185 drawings: type: integer example: 185 example: episodeId1: max_retake_count: 4 evolution: '1': retake: count: 80 frames: 7900 drawings: 8000 done: count: 117 frames: 3900 drawings: 8000 done: count: 197 frames: 16090 drawings: 16090 retake: count: 0 frames: 0 drawings: 0 other: count: 5 frames: 185 drawings: 185 all: all: max_retake_count: 4 done: count: 500 frames: 50000 drawings: 50000 retake: count: 100 frames: 10000 drawings: 10000 other: count: 10 frames: 1000 drawings: 1000 parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/retake-stats" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/retake-stats" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/quotas/{task_type_id}": get: summary: Get project quotas description: Get quotas statistics for a project and task type. Supports weighted and raw modes with optional feedback filtering. responses: '200': description: Quotas statistics for shots content: application/json: schema: type: object additionalProperties: type: object properties: count: type: integer example: 42 frames: type: integer example: 1200 '400': description: Invalid count_mode or parameter parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: count_mode required: true type: string enum: - weighted - weigtheddone - feedback - done example: weighted - in: query name: studio_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/a24a6ea4-ce75-4665-a070-57453082c25?count_mode=weighted&studio_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "count_mode": "weighted", "studio_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/quotas/persons/{person_id}": get: summary: Get project person quotas description: Get quotas statistics for a person in a project. Supports weighted and raw modes with optional feedback filtering. responses: '200': description: Quotas statistics for shots content: application/json: schema: type: object additionalProperties: type: object properties: count: type: integer example: 15 frames: type: integer example: 360 '400': description: Invalid count_mode or parameter parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: person_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: count_mode required: true type: string enum: - weighted - weigtheddone - feedback - done example: weighted - in: query name: studio_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/persons/a24a6ea4-ce75-4665-a070-57453082c25?count_mode=weighted&studio_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "count_mode": "weighted", "studio_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/set-shot-nb-frames": post: summary: Set shots frames description: Set number of frames on shots based on latest preview files for a task type. Optionally scope by episode via query param. requestBody: required: true content: application/json: schema: type: object required: - shots properties: shots: type: array required: true items: type: object properties: shot_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 nb_frames: type: integer example: 24 responses: '200': description: Frames set for given shots content: application/json: schema: type: object properties: updated: type: integer example: 12 '400': description: Invalid ids or parameters tags: - Shots x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/{project_id}/task-types/{task_type_id}/set-shot-nb-frames" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "shots": [ { "shot_id": "a24a6ea4-ce75-4665-a070-57453082c25", "nb_frames": 24 } ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/{project_id}/task-types/{task_type_id}/set-shot-nb-frames" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "shots": [ { "shot_id": "a24a6ea4-ce75-4665-a070-57453082c25", "nb_frames": 24 } ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/open-tasks": get: summary: Get open tasks description: Return tasks for open projects with optional filters and pagination. Includes statistics. responses: '200': description: List of tasks with pagination and statistics content: application/json: schema: type: object properties: data: type: array items: type: object description: List of tasks stats: type: object properties: total: type: integer description: Total number of tasks total_duration: type: integer description: Total duration of tasks in minutes total_estimation: type: integer description: Total estimation of tasks in minutes status: type: object description: Number of tasks per status limit: type: integer description: Number of tasks per page page: type: integer description: Page number is_more: type: boolean description: True if there are more tasks to retrieve '400': description: Bad request parameters: - in: query name: project_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter tasks on given project ID - in: query name: task_status_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter tasks on given task status ID - in: query name: task_type_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter tasks on given task type ID - in: query name: person_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter tasks on given person ID - in: query name: start_date required: false schema: type: string format: date example: '2022-07-12' description: Filter tasks posterior to given start date - in: query name: due_date required: false schema: type: string format: date example: '2022-07-12' description: Filter tasks anterior to given due date - in: query name: priority required: false schema: type: integer example: 3 description: Filter tasks on given priority - in: query name: page required: false schema: type: integer default: 1 example: 1 description: Page number - in: query name: limit required: false schema: type: integer default: 100 example: 100 description: Number of tasks per page tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/open-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25&task_status_id=a24a6ea4-ce75-4665-a070-57453082c25&task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&person_id=a24a6ea4-ce75-4665-a070-57453082c25&start_date=2022-07-12&due_date=2022-07-12&priority=3&page=1&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/open-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "start_date": "2022-07-12", "due_date": "2022-07-12", "priority": 3, "page": 1, "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/open-tasks/stats": get: summary: Get open tasks stats description: Return totals and aggregates by status and task type per project for open projects. responses: '200': description: A dict by project with results for each task type and status pair content: application/json: schema: type: object additionalProperties: type: object properties: total: type: integer done: type: integer estimation: type: integer duration: type: integer '400': description: Bad request tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/open-tasks/stats" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/open-tasks/stats" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments": get: summary: Get task comments description: Return comments linked to a task. responses: '200': description: Comments linked to task content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: This task is progressing well created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/comments/{comment_id}": delete: summary: Delete comment description: Delete a comment by id for a task. responses: '204': description: Comment deleted parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: comment_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get comment description: Get a comment by id for a task. responses: '200': description: Comment found and returned content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: Review completed successfully created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: comment_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/previews": get: summary: Get task previews description: Return previews linked to a task. responses: '200': description: Previews linked to task content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 1 comment_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/previews" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/previews" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/tasks/{task_id}/full": get: summary: Get task full description: Return a task with many information. Includes full details for assignees, task type, and task status. responses: '200': description: Task with full information content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: object properties: id: type: string format: uuid example: f24a6ea4-ce75-4665-a070-57453082c25 first_name: type: string example: John last_name: type: string example: Doe task_type: type: object properties: id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Animation task_status: type: object properties: id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: In Progress parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/full" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/full" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/tasks": get: summary: Get person open tasks description: List tasks assigned to a person where the status is not done. responses: '200': description: Tasks assigned to user that are not done content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/related-tasks/{task_type_id}": get: summary: Get person tasks for type description: For all entities assigned to the person, return tasks for the given task type. responses: '200': description: All tasks for the given task type content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Asset Modeling task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/related-tasks/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/related-tasks/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/{person_id}/done-tasks": get: summary: Get person done tasks description: Return tasks assigned to the person that are done. Only tasks in open projects are returned. responses: '200': description: Tasks assigned to user that are done content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: EP01 Layout task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/done-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/done-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/entities/{entity_id}/task-types/{task_type_id}/tasks": get: summary: Get tasks for entity and type description: Return tasks related to the entity (asset, episode, sequence, shot, or scene) for a task type. responses: '200': description: Tasks related to the entity and task type content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: entity_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/comments": get: summary: Get project comments description: Retrieve comments for tasks related to a project. Useful for sync. responses: '200': description: All comments to tasks related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 object_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 text: type: string example: This task looks good created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: limit type: integer default: 100 example: 100 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/comments?limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/comments" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/notifications": get: summary: Get project notifications description: Retrieve notifications for tasks related to a project. Useful for sync. responses: '200': description: All notifications to tasks related to given project content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 notification_type: type: string example: assignment created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' limit: type: integer example: 100 page: type: integer example: 1 is_more: type: boolean example: true parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/notifications" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/notifications" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/preview-files": get: summary: Get project preview files description: Retrieve all preview files that are linked to a specific project. This includes images, videos, and other preview media associated with the project. responses: '200': description: Preview files related to given project content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 1 person_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' limit: type: integer example: 100 page: type: integer example: 1 is_more: type: boolean example: true parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/subscriptions": get: summary: Get project subscriptions description: Retrieve all subscriptions to tasks related to a project. Useful for sync. responses: '200': description: All subcriptions to tasks related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/subscriptions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/subscriptions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/tasks": get: summary: Get project tasks description: Retrieve tasks related to a project. Useful for sync. responses: '200': description: All tasks related to given project content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 limit: type: integer example: 100 page: type: integer example: 1 is_more: type: boolean example: true parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: page required: false type: integer example: 1 - in: query name: task_type_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: episode_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks?page=1&task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&episode_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "page": 1, "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "episode_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/persons/task-dates": get: summary: Get persons tasks dates description: For each active person, return the first start date of all tasks assigned to them and the last end date. Useful for schedule planning. responses: '200': description: First start date and last end date for tasks per person content: application/json: schema: type: array items: type: object properties: person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 first_start_date: type: string format: date example: '2024-01-15' last_end_date: type: string format: date example: '2024-03-21' parameters: - in: query name: project_id required: false schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter by project ID tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/persons/task-dates?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/persons/task-dates" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/delete-tasks": delete: summary: Delete tasks for type description: Delete all tasks for a task type in a project. Useful when tasks were created by mistake at project start. responses: '204': description: All tasks for given task type and project deleted parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/delete-tasks": post: summary: Delete tasks batch description: Delete tasks given by id list. Useful for batch deletions. responses: '200': description: Tasks matching id list given in parameter deleted content: application/json: schema: type: array items: type: string format: uuid example: - a24a6ea4-ce75-4665-a070-57453082c25 parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/assign": put: summary: Assign task to person requestBody: required: true content: application/json: schema: type: object required: - person_id properties: person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Task assigned to person content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 '400': description: Assignee does not exist parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/assign" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/assign" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/clear-assignation": put: summary: Clear task assignations requestBody: required: true content: application/json: schema: type: object required: - task_ids properties: task_ids: type: array items: type: string format: uuid example: - a24a6ea4-ce75-4665-a070-57453082c25 - b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Assignations removed content: application/json: schema: type: array items: type: string format: uuid example: - a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/tasks/clear-assignation" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b24a6ea4-ce75-4665-a070-57453082c25" ], "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/clear-assignation" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b24a6ea4-ce75-4665-a070-57453082c25" ], "person_id": "a24a6ea4-ce75-4665-a070-57453082c25" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/persons/{person_id}/assign": put: summary: Assign tasks to person description: Assign a list of tasks to a person. Unknown task ids are ignored. requestBody: required: true content: application/json: schema: type: object required: - task_ids properties: task_ids: type: array items: type: string format: uuid example: - a24a6ea4-ce75-4665-a070-57453082c25 - b24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Tasks assigned to person content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 '400': description: Assignee does not exist parameters: - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/assign" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b24a6ea4-ce75-4665-a070-57453082c25" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/assign" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "task_ids": [ "a24a6ea4-ce75-4665-a070-57453082c25", "b24a6ea4-ce75-4665-a070-57453082c25" ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/time-spents/{date}": get: summary: Get task time spent for date responses: '200': description: Time spent on the task for the date content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2022-07-12' duration: type: number example: 120 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date example: '2022-07-12' tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/time-spents": get: summary: Get task time spent responses: '200': description: Time spent on the task content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2022-07-12' duration: type: number example: 120 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}": post: summary: Set time spent requestBody: required: true content: application/json: schema: type: object properties: duration: type: number example: 120 responses: '201': description: Time spent set for the person on the task and day content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2022-07-12' duration: type: number example: 120 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid parameters parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date example: '2022-07-12' - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "duration": 120 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "duration": 120 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete time spent responses: '201': description: Time spent removed for the person on the task content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2022-07-12' duration: type: number example: 0 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid parameters parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date example: '2022-07-12' - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/time-spents/{date}/persons/{person_id}/add": post: summary: Add time spent requestBody: required: true content: application/json: schema: type: object properties: duration: type: number example: 30 responses: '201': description: Timeframe added to time spent content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 date: type: string format: date example: '2022-07-12' duration: type: number example: 150 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Invalid parameters parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date example: '2022-07-12' - in: path name: person_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25/add" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "duration": 30 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25/add" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "duration": 30 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/comments/{comment_id}/add-preview": post: summary: Add task preview description: Add preview metadata to a task. The preview file is uploaded after. Revision is auto set to last + 1. It can also be set manually. requestBody: required: true content: application/json: schema: type: object properties: revision: type: integer description: Revision number for the preview example: 1 responses: '201': description: Preview metadata added to task content: application/json: schema: type: object properties: id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 3 person_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' '400': description: Bad request parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: comment_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/add-preview" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "revision": 1 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/add-preview" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "revision": 1 } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/comments/{comment_id}/preview-files/{preview_file_id}": post: summary: Add preview to comment description: Add a preview to a comment by uploading a file in multipart form data. requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: Preview file to upload responses: '201': description: Preview added to comment content: application/json: schema: type: object properties: id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 comment_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 revision: type: integer example: 2 person_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 '400': description: Bad request parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: comment_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: preview_file_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete preview from comment description: Delete a preview from a comment. Use force query to delete even if there are dependencies. responses: '204': description: Preview deleted from comment parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: comment_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: preview_file_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: force required: false schema: type: boolean default: false description: Force deletion even if preview has dependencies tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25?force=" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": "" } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/to-review": put: summary: Set task to review description: Create a new preview file entry and set the path from the disk. Optionally change the task status. requestBody: required: true content: application/json: schema: type: object properties: person_id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 comment: type: string example: Please check this version name: type: string example: main revision: type: integer example: 1 change_status: type: boolean example: true responses: '200': description: Task set to review and preview created content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 assignees: type: array items: type: string format: uuid example: - f24a6ea4-ce75-4665-a070-57453082c25 '400': description: Invalid person or parameters parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/to-review" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Please check this version", "name": "main", "revision": 1, "change_status": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/to-review" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "person_id": "a24a6ea4-ce75-4665-a070-57453082c25", "comment": "Please check this version", "name": "main", "revision": 1, "change_status": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/shots/create-tasks": post: summary: Create shot tasks description: Create tasks for shots. Provide a list of shot IDs in the JSON body, or omit for all shots in the project. requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid description: List of shot IDs to create tasks for example: - b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Tasks created for shots content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 Animation task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 '400': description: Bad request parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/shots/create-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ "" ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/shots/create-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ "" ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/assets/create-tasks": post: summary: Create asset tasks description: Create tasks for assets. Provide a list of asset IDs in the JSON body, or omit for all assets in the project. requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid description: List of asset IDs to create tasks for example: - b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Tasks created for assets content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Asset Modeling task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 '400': description: Bad request parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/create-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ "" ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/create-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ "" ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/edits/create-tasks": post: summary: Create edit tasks description: Create tasks for edits. Provide a list of edit IDs in the JSON body, or omit for all edits in the project. requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid description: List of edit IDs to create tasks for example: - b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Tasks created for edits content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Edit Compositing task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 '400': description: Wrong criterions format parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/edits/create-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ "" ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/edits/create-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ "" ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/concepts/create-tasks": post: summary: Create concept tasks description: Create tasks for concepts. Provide a list of concept IDs in the JSON body, or omit for all concepts in the project. requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid description: List of concept IDs to create tasks for example: - b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Tasks created for concepts content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Concept Modeling task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 '400': description: Bad request parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/concepts/create-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ "" ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/concepts/create-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ "" ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/projects/{project_id}/task-types/{task_type_id}/create-tasks/{entity_type}/": post: summary: Create entity tasks description: Create tasks for entities of a given type. Provide entity IDs in the JSON body, or omit for all entities in the project. requestBody: required: true content: application/json: schema: type: array items: type: string format: uuid description: List of entity IDs to create tasks for example: - b24a6ea4-ce75-4665-a070-57453082c25 responses: '201': description: Tasks created for entities content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: Entity Task Name task_type_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 task_status_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 project_id: type: string format: uuid example: e24a6ea4-ce75-4665-a070-57453082c25 '400': description: Bad request parameters: - in: path name: project_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: entity_type required: true schema: type: string example: Asset description: Entity type name (Asset, Sequence, etc.) - in: path name: task_type_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/create-tasks/Asset/" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '[ "" ]' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/create-tasks/Asset/" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = [ "" ] response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/set-main-preview": put: summary: Set main preview from task description: Set the last preview of a task as the main preview of the related entity. responses: '200': description: Preview set as main preview content: application/json: schema: type: object properties: id: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string example: SH010 project_id: type: string format: uuid example: b24a6ea4-ce75-4665-a070-57453082c25 preview_file_id: type: string format: uuid example: c24a6ea4-ce75-4665-a070-57453082c25 entity_type_id: type: string format: uuid example: d24a6ea4-ce75-4665-a070-57453082c25 created_at: type: string format: date-time example: '2024-01-15T10:30:00Z' updated_at: type: string format: date-time example: '2024-01-15T11:00:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Tasks x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/playlists/preview-files/running": get: summary: Get running preview files description: Retrieve all preview files from open productions with states equal to processing or broken. responses: '200': description: All preview files from open productions with processing or broken states content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 status: type: string description: Preview file status example: processing parameters: - in: query name: cursor_preview_file_id required: false type: string format: uuid description: ID of the last preview file from previous page for cursor-based pagination example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: limit required: false type: integer description: Maximum number of preview files to return example: 100 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/playlists/preview-files/running?cursor_preview_file_id=a24a6ea4-ce75-4665-a070-57453082c25&limit=100" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/playlists/preview-files/running" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "cursor_preview_file_id": "a24a6ea4-ce75-4665-a070-57453082c25", "limit": 100 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/preview-files/{instance_id}": post: summary: Create preview file description: Main resource to add a preview. It stores the preview file and generates three picture files (thumbnails) matching preview when it's possible, a square thumbnail, a rectangle thumbnail and a midsize file. responses: '201': description: Preview file added successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 extension: type: string description: File extension example: png file_size: type: integer description: File size in bytes example: 1024000 '400': description: Wrong file format or normalization failed parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Preview file to upload tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/preview-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/{task_id}/batch-comment": post: summary: Add task batch comments description: Creates new comments for given task. Each comment requires a text, a task_status and a person as arguments. Can include preview files and attachments. requestBody: required: true content: multipart/form-data: schema: type: object required: - comments properties: comments: type: string description: JSON string containing array of comments example: '[{"text": "Good work", "task_status_id": "uuid"}]' responses: '201': description: New comments created content: application/json: schema: type: array items: type: object parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/batch-comment" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/batch-comment" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/tasks/batch-comment": post: summary: Add tasks batch comments description: Creates new comments for given tasks. Each comment requires a task_id, text, a task_status and a person as arguments. Can include preview files and attachments. requestBody: required: true content: multipart/form-data: schema: type: object required: - comments properties: comments: type: string description: JSON string containing array of comments example: '[{"task_id": "uuid", "text": "Good work", "task_status_id": "uuid"}]' responses: '201': description: New comments created content: application/json: schema: type: array items: type: object tags: - Comments x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/tasks/batch-comment" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/tasks/batch-comment" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/movies/originals/preview-files/{instance_id}.mp4": get: summary: Get preview movie description: Download a movie preview file. responses: '200': description: Movie preview downloaded content: video/mp4: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/movies/originals/preview-files/{instance_id}/download": get: summary: Download preview movie description: Download a movie preview file as attachment. responses: '200': description: Movie preview downloaded as attachment content: video/mp4: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/movies/low/preview-files/{instance_id}.mp4": get: summary: Get preview lowdef movie description: Download a low definition movie preview file. Falls back to full quality if lowdef version is not available. responses: '200': description: Low definition movie preview downloaded content: video/mp4: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/movies/low/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/movies/low/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/preview-files/{instance_id}.png": get: summary: Get preview thumbnail description: Download a thumbnail for a preview file. responses: '200': description: Preview thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/attachment-files/{attachment_file_id}.png": get: summary: Get attachment thumbnail description: Download the thumbnail representing given attachment file. responses: '200': description: Attachment thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: attachment_file_id required: true schema: type: string format: uuid description: Attachment file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails-square/preview-files/{instance_id}.png": get: summary: Get preview thumbnail description: Download a thumbnail for a preview file. responses: '200': description: Preview thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails-square/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails-square/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/originals/preview-files/{instance_id}.png": get: summary: Get preview thumbnail description: Download a thumbnail for a preview file. responses: '200': description: Preview thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/originals/preview-files/{instance_id}.{extension}": get: summary: Get preview file description: Download a generic file preview by extension. responses: '200': description: Generic file preview downloaded content: application/octet-stream: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: extension required: true schema: type: string description: File extension example: png tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/originals/preview-files/{instance_id}/download": get: summary: Download preview file description: Download a generic file preview as attachment. responses: '200': description: Generic file preview downloaded as attachment content: application/octet-stream: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/previews/preview-files/{instance_id}.png": get: summary: Get preview thumbnail description: Download a thumbnail for a preview file. responses: '200': description: Preview thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/previews/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/previews/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/movies/tiles/preview-files/{instance_id}.png": get: summary: Get preview thumbnail description: Download a thumbnail for a preview file. responses: '200': description: Preview thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/movies/tiles/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/movies/tiles/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/organisations/{instance_id}": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/organisations/{instance_id}.png": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/persons/{instance_id}": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/persons/{instance_id}.png": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/projects/{instance_id}": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/projects/{instance_id}.png": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/preview-background-files/{instance_id}": post: summary: Create preview background file description: Main resource to add a preview background file. It stores the preview background file and generates a rectangle thumbnail. responses: '201': description: Preview background file added successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Preview background file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 extension: type: string description: File extension example: hdr file_size: type: integer description: File size in bytes example: 2048000 '400': description: Wrong file format or error saving file parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview background file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: HDR file to upload tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/thumbnails/preview-background-files/{instance_id}.png": post: summary: Create thumbnail description: Create a thumbnail for given object instance. responses: '201': description: Thumbnail created successfully content: application/json: schema: type: object properties: thumbnail_path: type: string description: URL path to the thumbnail example: "/api/thumbnails/persons/uuid" parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: formData name: file required: true type: file description: Image file to use as thumbnail tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get thumbnail description: Download the thumbnail linked to given object instance. responses: '200': description: Thumbnail downloaded content: image/png: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Object instance unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/pictures/preview-background-files/{instance_id}.{extension}": get: summary: Get preview background file description: Download a preview background file. responses: '200': description: Preview background file downloaded content: image/vnd.radiance: schema: type: string format: binary parameters: - in: path name: instance_id required: true schema: type: string format: uuid description: Preview background file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: extension required: true schema: type: string description: File extension example: hdr tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.hdr" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.hdr" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/preview-files/{preview_file_id}/set-main-preview": put: summary: Set main preview description: Set given preview as main preview of the related entity. This preview will be used to illustrate the entity. responses: '200': description: Preview set as main preview content: application/json: schema: type: object properties: id: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 preview_file_id: type: string format: uuid description: Preview file unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 '400': description: Cannot use frame number on non-movie preview parameters: - in: path name: preview_file_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: frame_number required: false schema: type: integer description: Frame number for movie previews example: 120 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview?frame_number=120" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "frame_number": 120 } payload = None response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/preview-files/{preview_file_id}/extract-frame": get: summary: Extract frame from preview description: Extract a frame from a preview file movie. Frame number can be specified as query parameter, defaults to 0. responses: '200': description: Extracted frame as PNG image content: image/png: schema: type: string format: binary parameters: - in: path name: preview_file_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: frame_number required: false schema: type: integer description: Frame number to extract example: 120 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-frame?frame_number=120" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-frame" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "frame_number": 120 } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/preview-files/{preview_file_id}/update-position": put: summary: Update preview position description: Allow to change orders of previews for a single revision. requestBody: required: false content: application/json: schema: type: object properties: position: type: integer description: New position for the preview example: 2 responses: '200': description: Preview position updated content: application/json: schema: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 position: type: integer description: Preview position example: 2 parameters: - in: path name: preview_file_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-position" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "position": 2 }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-position" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "position": 2 } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/preview-files/{preview_file_id}/update-annotations": put: summary: Update preview annotations description: Allow to modify the annotations stored at the preview level. Modifications are applied via three fields, additions to give all the annotations that need to be added, updates that list annotations that needs to be modified, and deletions to list the IDs of annotations that needs to be removed. requestBody: required: true content: application/json: schema: type: object properties: additions: type: array description: Annotations to add items: type: object example: - type: drawing x: 100 "y": 200 updates: type: array description: Annotations to update items: type: object example: - id: uuid x: 150 "y": 250 deletions: type: array description: Annotation IDs to remove items: type: string format: uuid example: - a24a6ea4-ce75-4665-a070-57453082c25 responses: '200': description: Preview annotations updated content: application/json: schema: type: object properties: id: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 annotations: type: array description: Updated annotations items: type: object parameters: - in: path name: preview_file_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-annotations" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "additions": [ { "type": "drawing", "x": 100, "y": 200 } ], "updates": [ { "id": "uuid", "x": 150, "y": 250 } ], "deletions": [ "a24a6ea4-ce75-4665-a070-57453082c25" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-annotations" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "additions": [ { "type": "drawing", "x": 100, "y": 200 } ], "updates": [ { "id": "uuid", "x": 150, "y": 250 } ], "deletions": [ "a24a6ea4-ce75-4665-a070-57453082c25" ] } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/preview-files/{preview_file_id}/extract-tile": get: summary: Extract tile from preview description: Extract a tile from a preview file movie. responses: '200': description: Extracted tile as PNG image content: image/png: schema: type: string format: binary parameters: - in: path name: preview_file_id required: true schema: type: string format: uuid description: Preview file unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - Previews x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-tile" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-tile" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/context": get: summary: Get context description: Retrieve context information required to properly run a full application connected to the API. Returns user, project, and system configuration data. responses: '200': description: Context information for running a full app connected to the API content: application/json: schema: type: object properties: user: type: object description: Current user information example: id: uuid name: John Doe projects: type: array items: type: object description: Available projects example: - id: uuid name: Project 1 departments: type: array items: type: object description: Available departments example: - id: uuid name: Animation asset_types: type: array items: type: object description: Available asset types example: - id: uuid name: Character task_types: type: array items: type: object description: Available task types example: - id: uuid name: Modeling task_status: type: array items: type: object description: Available task statuses example: - id: uuid name: In Progress custom_actions: type: array items: type: object description: Available custom actions example: - id: uuid name: Custom Action status_automations: type: array items: type: object description: Available status automations example: - id: uuid name: Auto Status studios: type: array items: type: object description: Available studios example: - id: uuid name: Studio Name notification_count: type: integer description: Number of unread notifications example: 5 persons: type: array items: type: object description: Available persons example: - id: uuid name: John Doe project_status: type: array items: type: object description: Available project statuses example: - id: uuid name: Active search_filters: type: array items: type: object description: Available search filters example: - id: uuid name: My Filter search_filter_groups: type: array items: type: object description: Available search filter groups example: - id: uuid name: Filter Group preview_background_files: type: array items: type: object description: Available preview background files example: - id: uuid name: background.jpg tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/context" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/context" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/assets/{asset_id}/tasks": get: summary: Get asset tasks description: Return tasks related to given asset for current user. responses: '200': description: Tasks related to given asset for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Modeling task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_id required: true schema: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/shots/{shot_id}/tasks": get: summary: Get shot tasks description: Retrieve tasks related to a specific shot for the current user. Returns all tasks assigned to the user for the given shot. responses: '200': description: Tasks related to given shot content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Animation task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: shot_id required: true schema: type: string format: uuid description: Shot unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/scenes/{scene_id}/tasks": get: summary: Get scene tasks description: Retrieve tasks related to a specific scene for the current user. responses: '200': description: Tasks related to given scene content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Layout task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: scene_id required: true schema: type: string format: uuid description: Scene unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/sequences/{sequence_id}/tasks": get: summary: Get sequence tasks description: Retrieve tasks related to a specific sequence for the current user. sequence. responses: '200': description: Tasks related to given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Compositing task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/assets/{asset_id}/task-types": get: summary: Get asset task types description: Retrieve task types related to a specific asset for the current user. Returns all task types available for the given asset. responses: '200': description: Task types related to given asset for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Modeling short_name: type: string description: Task type short name example: MOD color: type: string description: Task type color example: "#FF0000" priority: type: integer description: Task type priority example: 1 for_entity: type: string description: Entity type this task type applies to example: Asset created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: asset_id required: true schema: type: string format: uuid description: Asset unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/shots/{shot_id}/task-types": get: summary: Get shot task types description: Retrieve task types related to a specific shot for the current user. Returns all task types available for the given shot. responses: '200': description: Task types related to given shot for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Animation short_name: type: string description: Task type short name example: ANIM color: type: string description: Task type color example: "#00FF00" priority: type: integer description: Task type priority example: 2 for_entity: type: string description: Entity type this task type applies to example: Shot created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: shot_id required: true schema: type: string format: uuid description: Shot unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/scenes/{scene_id}/task-types": get: summary: Get scene task types description: Retrieve task types related to a specific scene for the current user. responses: '200': description: Task types related to given scene for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Layout short_name: type: string description: Task type short name example: LAY color: type: string description: Task type color example: "#0000FF" priority: type: integer description: Task type priority example: 3 for_entity: type: string description: Entity type this task type applies to example: Scene created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: scene_id required: true schema: type: string format: uuid description: Scene unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/sequences/{sequence_id}/task-types": get: summary: Get sequence task types description: Retrieve task types related to a specific sequence for the current user. responses: '200': description: Task types related to given sequence for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Compositing short_name: type: string description: Task type short name example: COMP color: type: string description: Task type color example: "#FFFF00" priority: type: integer description: Task type priority example: 4 for_entity: type: string description: Entity type this task type applies to example: Sequence created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/open": get: summary: Get open projects description: Retrieve open projects for which the current user has at least one task assigned. Optionally filter by project name. responses: '200': description: Open projects with assigned tasks for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Project name example: My Project description: type: string description: Project description example: A sample project status: type: string description: Project status example: Active fps: type: number description: Frames per second example: 24.0 ratio: type: string description: Aspect ratio example: '16:9' resolution: type: string description: Project resolution example: 1920x1080 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: name required: false schema: type: string description: Filter projects by name example: My Project tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/open?name=My%20Project" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/open" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "name": "My Project" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/{project_id}/asset-types": get: summary: Get project asset types description: Retrieve asset types related to a specific project for the current user. responses: '200': description: Asset types related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Asset type name example: Character short_name: type: string description: Asset type short name example: CHAR color: type: string description: Asset type color example: "#FF0000" project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/{project_id}/asset-types/{asset_type_id}/assets": get: summary: Get project assets description: Retrieve assets of a specific type within a project matching the asset type in the given project if the user has access. responses: '200': description: Assets of given type in the specified project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Asset unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Asset name example: Main Character description: type: string description: Asset description example: Main character model for the project asset_type_id: type: string format: uuid description: Asset type identifier example: d57d9hd7-fh08-7998-d403-80786315f58 project_id: type: string format: uuid description: Project identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: asset_type_id required: true schema: type: string format: uuid description: Asset type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/b35b7fb5-df86-5776-b181-68564193d36/assets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/b35b7fb5-df86-5776-b181-68564193d36/assets" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/{project_id}/sequences": get: summary: Get project sequences description: Retrieve sequences related to a specific project for the current user. Returns all sequences in the project if the user has access. responses: '200': description: Sequences related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Sequence unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Sequence name example: SEQ001 description: type: string description: Sequence description example: Main sequence project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 fps: type: number description: Frames per second example: 24.0 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/{project_id}/episodes": get: summary: Get project episodes description: Retrieve episodes related to a specific project for the current user. Returns all episodes in the project if the user has access. responses: '200': description: Episodes related to given project content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Episode unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Episode name example: Episode 01 description: type: string description: Episode description example: First episode project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/sequences/{sequence_id}/shots": get: summary: Get sequence shots description: Retrieve shots related to a specific sequence for the current user. responses: '200': description: Shots related to given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Shot unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Shot name example: SH001 description: type: string description: Shot description example: Main shot sequence_id: type: string format: uuid description: Sequence identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_id: type: string format: uuid description: Project identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/sequences/{sequence_id}/scenes": get: summary: Get sequence scenes description: Retrieve scenes related to a specific sequence for the current user. responses: '200': description: Scenes related to given sequence content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Scene unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Scene name example: SC001 description: type: string description: Scene description example: Main scene sequence_id: type: string format: uuid description: Sequence identifier example: c46c8gc6-eg97-6887-c292-79675204e47 project_id: type: string format: uuid description: Project identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/tasks": get: summary: Get my tasks description: Retrieve ttasks currently assigned to current user and of which status has is_done attribute set to false. responses: '200': description: Unfinished tasks currently assigned to current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Modeling task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/tasks-to-check": get: summary: Get tasks requiring feedback description: Retrieve tasks requiring feedback for departments where the current user is a supervisor. Returns empty list if user is not a supervisor. responses: '200': description: Tasks requiring feedback in current user departments content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Review task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/tasks-to-check" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/tasks-to-check" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/done-tasks": get: summary: Get done tasks description: Retrieve tasks currently assigned to the current user with status marked as done. Returns only tasks from open projects. responses: '200': description: Finished tasks currently assigned to current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Completed Task task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 assigner_id: type: string format: uuid description: Person who assigned the task example: e68e0ie8-gi19-8009-e514-91897426g69 assignees: type: array items: type: string format: uuid description: List of assigned person identifiers example: - f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/done-tasks" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/done-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/filters": post: summary: Create filter description: Create a new filter for the current user limited to open projects only. requestBody: required: true content: application/json: schema: type: object required: - name - query - list_type - project_id properties: name: type: string description: Filter name example: My Custom Filter query: type: string description: Filter query as JSON string example: '{"project_id": "uuid"}' list_type: type: string description: Type of list this filter applies to example: todo entity_type: type: string description: Entity type this filter applies to example: Asset project_id: type: string format: uuid description: Project identifier example: a24a6ea4-ce75-4665-a070-57453082c25 is_shared: type: boolean description: Whether to share this filter with others default: false example: false search_filter_group_id: type: string format: uuid description: Filter group identifier example: b35b7fb5-df86-5776-b181-68564193d36 department_id: type: string format: uuid description: Department identifier example: c46c8gc6-eg97-6887-c292-79675204e47 responses: '201': description: Filter created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Filter unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: Filter name example: My Custom Filter query: type: string description: Filter query JSON example: '{"project_id": "uuid"}' list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: e68e0ie8-gi19-8009-e514-91897426g69 is_shared: type: boolean description: Whether filter is shared example: false created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' '400': description: Bad request tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/user/filters" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "My Custom Filter", "query": "{\"project_id\": \"uuid\"}", "list_type": "todo", "entity_type": "Asset", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "is_shared": false, "search_filter_group_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filters" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "My Custom Filter", "query": "{\"project_id\": \"uuid\"}", "list_type": "todo", "entity_type": "Asset", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "is_shared": false, "search_filter_group_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get filters description: Retrieve filters for the current user limited to open projects only. responses: '200': description: Filters for current user and only for open projects content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Filter unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Filter name example: My Filter query: type: string description: Filter query JSON example: '{"project_id": "uuid"}' list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 is_shared: type: boolean description: Whether filter is shared example: false created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/filters" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filters" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/filters/{filter_id}": put: summary: Update filter description: Update an existing filter if it is owned by the current user. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Filter name example: Updated Filter Name search_query: type: string description: Updated filter query example: '{"status": "active"}' search_filter_group_id: type: string format: uuid description: Filter group identifier example: b35b7fb5-df86-5776-b181-68564193d36 is_shared: type: boolean description: Whether to share this filter example: true project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 department_id: type: string format: uuid description: Department identifier example: d57d9hd7-fh08-7998-d403-80786315f58 responses: '200': description: Filter updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Filter unique identifier example: e68e0ie8-gi19-8009-e514-91897426g69 name: type: string description: Filter name example: Updated Filter Name query: type: string description: Filter query JSON example: '{"status": "active"}' list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 is_shared: type: boolean description: Whether filter is shared example: true created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: filter_id required: true schema: type: string format: uuid description: Filter unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Filter Name", "search_query": "{\"status\": \"active\"}", "search_filter_group_id": "b35b7fb5-df86-5776-b181-68564193d36", "is_shared": true, "project_id": "c46c8gc6-eg97-6887-c292-79675204e47", "department_id": "d57d9hd7-fh08-7998-d403-80786315f58" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Filter Name", "search_query": "{\"status\": \"active\"}", "search_filter_group_id": "b35b7fb5-df86-5776-b181-68564193d36", "is_shared": true, "project_id": "c46c8gc6-eg97-6887-c292-79675204e47", "department_id": "d57d9hd7-fh08-7998-d403-80786315f58" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete filter description: Delete a specific filter if it is owned by the current user. responses: '204': description: Filter deleted successfully parameters: - in: path name: filter_id required: true schema: type: string format: uuid description: Filter unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/filter-groups": post: summary: Create filter group description: Create a new filter group for the current user limited to open projects only. The filter group can be shared with other users. requestBody: required: true content: application/json: schema: type: object required: - name - color - list_type - project_id properties: name: type: string description: Filter group name example: My Filter Group color: type: string description: Filter group color in hex format example: "#FF0000" list_type: type: string description: Type of list this filter group applies to example: todo entity_type: type: string description: Entity type this filter group applies to example: Asset is_shared: type: boolean description: Whether to share this filter group with others default: false example: false project_id: type: string format: uuid description: Project identifier example: a24a6ea4-ce75-4665-a070-57453082c25 department_id: type: string format: uuid description: Department identifier example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Filter group created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Filter group unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Filter group name example: My Filter Group color: type: string description: Filter group color example: "#FF0000" list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: d57d9hd7-fh08-7998-d403-80786315f58 is_shared: type: boolean description: Whether filter group is shared example: false created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' '400': description: Bad request tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/user/filter-groups" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "My Filter Group", "color": "#FF0000", "list_type": "todo", "entity_type": "Asset", "is_shared": false, "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "department_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filter-groups" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "My Filter Group", "color": "#FF0000", "list_type": "todo", "entity_type": "Asset", "is_shared": false, "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "department_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get filter groups description: Retrieve filter groups for the current user limited to open projects only. responses: '200': description: Filter groups for current user and only for open projects content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Filter group unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Filter group name example: My Filter Group color: type: string description: Filter group color example: "#FF0000" list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 is_shared: type: boolean description: Whether filter group is shared example: false created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/filter-groups" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filter-groups" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/filter-groups/{filter_group_id}": put: summary: Update filter group description: Update an existing filter group if it is owned by the current user. Allows modification of filter group properties. requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Filter group name example: Updated Filter Group color: type: string description: Filter group color example: "#00FF00" is_shared: type: boolean description: Whether to share this filter group example: true project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 department_id: type: string format: uuid description: Department identifier example: c46c8gc6-eg97-6887-c292-79675204e47 responses: '200': description: Filter group updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Filter group unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: Filter group name example: Updated Filter Group color: type: string description: Filter group color example: "#00FF00" list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: e68e0ie8-gi19-8009-e514-91897426g69 is_shared: type: boolean description: Whether filter group is shared example: true created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: filter_group_id required: true schema: type: string format: uuid description: Filter group unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Updated Filter Group", "color": "#00FF00", "is_shared": true, "project_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Updated Filter Group", "color": "#00FF00", "is_shared": true, "project_id": "b35b7fb5-df86-5776-b181-68564193d36", "department_id": "c46c8gc6-eg97-6887-c292-79675204e47" } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Delete filter group description: Delete a specific filter group if it is owned by the current user. responses: '204': description: Filter group deleted successfully parameters: - in: path name: filter_group_id required: true schema: type: string format: uuid description: Filter group unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get filter group description: Retrieve a specific filter group for the current user. Returns detailed information about the filter group. responses: '200': description: Filter group details content: application/json: schema: type: object properties: id: type: string format: uuid description: Filter group unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Filter group name example: My Filter Group color: type: string description: Filter group color example: "#FF0000" list_type: type: string description: List type example: todo entity_type: type: string description: Entity type example: Asset project_id: type: string format: uuid description: Project identifier example: c46c8gc6-eg97-6887-c292-79675204e47 is_shared: type: boolean description: Whether filter group is shared example: false created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: search_filter_group_id required: true schema: type: string format: uuid description: Filter group unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/filter-groups/{filter_group_id}" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/filter-groups/{filter_group_id}" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/desktop-login-logs": post: summary: Create desktop login log description: Create a desktop login log entry for the current user. requestBody: required: true content: application/json: schema: type: object properties: date: type: string format: date description: Login date example: '2023-01-01' responses: '201': description: Desktop login log created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Login log unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date description: Login date example: '2023-01-01' created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' '400': description: Bad request tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/user/desktop-login-logs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "date": "2023-01-01" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/desktop-login-logs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "date": "2023-01-01" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get desktop login logs description: Retrieve desktop login logs for the current user. responses: '200': description: Desktop login logs for current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Login log unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date description: Login date example: '2023-01-01' created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/desktop-login-logs" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/desktop-login-logs" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/time-spents": get: summary: Get time spents description: Retrieve all time spent entries for the current user. Optionally accepts date range parameters to filter results. responses: '200': description: Time spent entries for the current user content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: b35b7fb5-df86-5776-b181-68564193d36 task_id: type: string format: uuid description: Task identifier example: c46c8gc6-eg97-6887-c292-79675204e47 date: type: string format: date description: Date of time spent example: '2023-01-01' duration: type: number description: Duration in seconds example: 3600 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' '400': description: Wrong date format parameters: - in: query name: start_date required: false schema: type: string format: date description: Start date for filtering time spents example: '2023-01-01' - in: query name: end_date required: false schema: type: string format: date description: End date for filtering time spents example: '2023-12-31' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/time-spents?start_date=2023-01-01&end_date=2023-12-31" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/time-spents" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "start_date": "2023-01-01", "end_date": "2023-12-31" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/time-spents/{date}": get: summary: Get time spents by date description: Retrieve time spent entries for the current user on a specific date. Returns all time entries for the given date. responses: '200': description: Time spent entries for the current user on given date content: application/json: schema: type: object properties: date: type: string format: date description: Date of time spent example: '2023-01-01' total_duration: type: number description: Total duration in seconds example: 28800 entries: type: array items: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 task_id: type: string format: uuid description: Task identifier example: b35b7fb5-df86-5776-b181-68564193d36 duration: type: number description: Duration in seconds example: 3600 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' '400': description: Wrong date format parameters: - in: path name: date required: true schema: type: string format: date description: Date to get time spents for example: '2023-01-01' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/time-spents/2023-01-01" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/time-spents/2023-01-01" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/tasks/{task_id}/time-spents/{date}": get: summary: Get task time spent description: Retrieve time spent entries for the current user on a specific task and date. Returns detailed time tracking information. responses: '200': description: Time spent entry for the current user on given task and date content: application/json: schema: type: object properties: id: type: string format: uuid description: Time spent unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 person_id: type: string format: uuid description: Person identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_id: type: string format: uuid description: Task identifier example: d57d9hd7-fh08-7998-d403-80786315f58 date: type: string format: date description: Date of time spent example: '2023-01-01' duration: type: number description: Duration in seconds example: 3600 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: date required: true schema: type: string format: date description: Date to get time spent for example: '2023-01-01' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2023-01-01" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2023-01-01" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/day-offs/{date}": get: summary: Get day off description: Retrieve day off information for the current user on a specific date. responses: '200': description: Day off object for the current user on given date content: application/json: schema: type: object properties: id: type: string format: uuid description: Day off unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 person_id: type: string format: uuid description: Person identifier example: b35b7fb5-df86-5776-b181-68564193d36 date: type: string format: date description: Day off date example: '2023-01-01' created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: date required: true schema: type: string format: date description: Date to check for day off example: '2023-01-01' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/day-offs/2023-01-01" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/day-offs/2023-01-01" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/notifications": get: summary: Get notifications description: Retrieve the last 100 user notifications filtered by given parameters. Supports filtering by date range, task type, status, and other criteria. responses: '200': description: Last 100 user notifications matching filters content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Notification unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 type: type: string description: Notification type example: comment read: type: boolean description: Whether notification is read example: false author_id: type: string format: uuid description: Author person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 comment_id: type: string format: uuid description: Comment identifier example: e68e0ie8-gi19-8009-e514-91897426g69 task_id: type: string format: uuid description: Task identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: after required: false schema: type: string format: date description: Filter notifications after this date example: '2023-01-01' - in: query name: before required: false schema: type: string format: date description: Filter notifications before this date example: '2023-12-31' - in: query name: task_type_id required: false schema: type: string format: uuid description: Filter by task type ID example: a24a6ea4-ce75-4665-a070-57453082c25 - in: query name: task_status_id required: false schema: type: string format: uuid description: Filter by task status ID example: b35b7fb5-df86-5776-b181-68564193d36 - in: query name: type required: false schema: type: string description: Filter by notification type example: comment - in: query name: read required: false schema: type: boolean description: Filter by read status example: false - in: query name: watching required: false schema: type: boolean description: Filter by watching status example: true tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/notifications?after=2023-01-01&before=2023-12-31&task_type_id=a24a6ea4-ce75-4665-a070-57453082c25&task_status_id=b35b7fb5-df86-5776-b181-68564193d36&type=comment&read=false&watching=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/notifications" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "after": "2023-01-01", "before": "2023-12-31", "task_type_id": "a24a6ea4-ce75-4665-a070-57453082c25", "task_status_id": "b35b7fb5-df86-5776-b181-68564193d36", "type": "comment", "read": false, "watching": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/notifications/{notification_id}": put: summary: Update notification description: Change the read status of a specific notification. Only the notification owner can update their notifications. requestBody: required: true content: application/json: schema: type: object properties: read: type: boolean description: Mark notification as read or unread example: true responses: '200': description: Notification updated successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Notification unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 type: type: string description: Notification type example: comment read: type: boolean description: Whether notification is read example: true author_id: type: string format: uuid description: Author person identifier example: c46c8gc6-eg97-6887-c292-79675204e47 comment_id: type: string format: uuid description: Comment identifier example: d57d9hd7-fh08-7998-d403-80786315f58 task_id: type: string format: uuid description: Task identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: notification_id required: true schema: type: string format: uuid description: Notification unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X PUT "http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "read": true }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "read": true } response = requests.put( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get notification description: Retrieve a specific notification by ID, only if it belongs to the current user. responses: '200': description: Notification details content: application/json: schema: type: object properties: id: type: string format: uuid description: Notification unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 type: type: string description: Notification type example: comment read: type: boolean description: Whether notification is read example: false author_id: type: string format: uuid description: Author person identifier example: c46c8gc6-eg97-6887-c292-79675204e47 comment_id: type: string format: uuid description: Comment identifier example: d57d9hd7-fh08-7998-d403-80786315f58 task_id: type: string format: uuid description: Task identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: notification_id required: true schema: type: string format: uuid description: Notification unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/tasks/{task_id}/subscribed": get: summary: Check task subscription description: Check if the current user has subscribed to a specific task. responses: '200': description: Subscription status for the task content: application/json: schema: type: boolean example: true parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribed" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribed" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/chats": get: summary: Get chats description: Retrieve all chats where the current user is a participant. Returns list of chat conversations the user can access. responses: '200': description: Chats where user is participant content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Chat unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 entity_id: type: string format: uuid description: Entity identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_type: type: string description: Entity type example: Asset participants: type: array items: type: string format: uuid description: List of participant person identifiers example: - c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/chats" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/chats" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/chats/{entity_id}/join": post: summary: Join chat description: Join a chat for a specific entity by adding the current user as a participant. The user will be listed as a participant in the chat. responses: '201': description: Chat joined successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Chat unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 entity_id: type: string format: uuid description: Entity identifier example: c46c8gc6-eg97-6887-c292-79675204e47 entity_type: type: string description: Entity type example: Asset participants: type: array items: type: string format: uuid description: List of participant person identifiers example: - d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) delete: summary: Leave chat description: Leave a chat for a specific entity by removing the current user from participants. The user will no longer receive chat messages for this entity. responses: '204': description: Chat left successfully parameters: - in: path name: entity_id required: true schema: type: string format: uuid description: Entity unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/tasks/{task_id}/subscribe": post: summary: Subscribe to task description: Create a subscription entry for the current user and given task. When subscribed, the user receives notifications for all comments posted on the task. responses: '201': description: Subscription created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Subscription unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 person_id: type: string format: uuid description: Person identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_id: type: string format: uuid description: Task identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribe" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribe" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/tasks/{task_id}/unsubscribe": delete: summary: Unsubscribe from task description: Remove the subscription entry for the current user and given task. The user will no longer receive notifications for this task. responses: '204': description: Subscription removed successfully parameters: - in: path name: task_id required: true schema: type: string format: uuid description: Task unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/unsubscribe" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/unsubscribe" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/clear-avatar": delete: summary: Clear avatar description: Set the has_avatar flag to false for the current user and remove the avatar file from storage. This action cannot be undone. responses: '204': description: Avatar file deleted successfully tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/user/clear-avatar" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/clear-avatar" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/entities/{sequence_id}/task-types/{task_type_id}/subscribed": get: summary: Check sequence subscription description: Check if the current user has subscribed to a specific sequence and task type combination. Returns true if subscribed. responses: '200': description: Subscription status for the sequence and task type content: application/json: schema: type: boolean example: true parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribed" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribed" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/user/projects/{project_id}/task-types/{task_type_id}/sequence-subscriptions": get: summary: Get sequence subscriptions description: Retrieve list of sequence IDs to which the current user has subscribed for a given task type within a specific project. responses: '200': description: List of subscribed sequence IDs for the task type content: application/json: schema: type: array items: type: string format: uuid example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: project_id required: true schema: type: string format: uuid description: Project unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/sequence-subscriptions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/sequence-subscriptions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/sequences/{sequence_id}/task-types/{task_type_id}/subscribe": post: summary: Subscribe to sequence description: Create a subscription entry for the current user, given sequence, and task type. When subscribed, the user receives notifications for all comments posted on tasks related to the sequence. responses: '201': description: Subscription created successfully content: application/json: schema: type: object properties: id: type: string format: uuid description: Subscription unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 person_id: type: string format: uuid description: Person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 sequence_id: type: string format: uuid description: Sequence identifier example: e68e0ie8-gi19-8009-e514-91897426g69 task_type_id: type: string format: uuid description: Task type identifier example: f79f1jf9-hj20-9010-f625-a09008537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribe" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribe" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/sequences/{sequence_id}/task-types/{task_type_id}/unsubscribe": delete: summary: Unsubscribe from sequence description: Remove the subscription entry for the current user, given sequence, and task type. The user will no longer receive notifications for tasks related to this sequence. responses: '204': description: Subscription removed successfully parameters: - in: path name: sequence_id required: true schema: type: string format: uuid description: Sequence unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 - in: path name: task_type_id required: true schema: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/unsubscribe" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/unsubscribe" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/actions/user/notifications/mark-all-as-read": post: summary: Mark all notifications as read description: Mark all notifications as read for the current user. responses: '200': description: Success object content: application/json: schema: type: object properties: success: type: boolean description: Operation success status example: true tags: - User x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/actions/user/notifications/mark-all-as-read" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/actions/user/notifications/mark-all-as-read" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits": get: summary: Get all edits description: Retrieve all edit entries with filtering support. Filters can be specified in the query string. responses: '200': description: List of all edits successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter edits by specific project - in: query name: name required: false type: string example: Opening Sequence description: Filter edits by name - in: query name: force required: false type: boolean default: false description: Force parameter for additional filtering example: false tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits?project_id=a24a6ea4-ce75-4665-a070-57453082c25&name=Opening%20Sequence&force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Opening Sequence", "force": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/all": get: summary: Get edits description: Retrieve all edit entries with filtering support. Filters can be specified in the query string. responses: '200': description: List of edits successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter edits by specific project - in: query name: name required: false type: string example: Opening Sequence description: Filter edits by name - in: query name: force required: false type: boolean default: false description: Force parameter for additional filtering example: false tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/all?project_id=a24a6ea4-ce75-4665-a070-57453082c25&name=Opening%20Sequence&force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/all" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Opening Sequence", "force": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/with-tasks": get: summary: Get edits and tasks description: Retrieve all edits with project name and all related tasks. responses: '200': description: Edits with tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 project_name: type: string description: Project name example: My Animation Project episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 tasks: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: d57d9hd7-fh08-7998-d403-80786315f58 name: type: string description: Task name example: Edit Task task_type_id: type: string format: uuid description: Task type identifier example: e68e0ie8-gi19-8009-e514-91897426g69 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter edits by specific project - in: query name: name required: false type: string example: Opening Sequence description: Filter edits by name - in: query name: force required: false type: boolean default: false description: Force parameter for additional filtering example: false tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25&name=Opening%20Sequence&force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "name": "Opening Sequence", "force": false } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/{edit_id}": delete: summary: Delete edit description: Permanently remove an edit from the system. Only edit creators or project managers can delete edits. responses: '204': description: Edit successfully deleted parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit to delete - in: query name: force type: boolean required: false description: Force deletion bypassing validation checks example: false tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get edit description: Retrieve detailed information about a specific edit. responses: '200': description: Edit information successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/{edit_id}/task-types": get: summary: Get edit task types description: Retrieve all task types that are related to a specific edit. responses: '200': description: List of edit task types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Edit short_name: type: string description: Task type short name example: EDT color: type: string description: Task type color code example: "#FF5733" for_entity: type: string description: Entity type this task type is for example: Edit parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/{edit_id}/tasks": get: summary: Get edit tasks description: Retrieve all tasks that are related to a specific edit. responses: '200': description: List of edit tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Edit Task task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 entity_id: type: string format: uuid description: Entity identifier example: e68e0ie8-gi19-8009-e514-91897426g69 assigned_to: type: string format: uuid description: Assigned person identifier example: f79f1jf9-hj20-9010-f625-02998537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit - in: query name: relations type: boolean required: false description: Include related entity information example: true tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/tasks?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/{edit_id}/preview-files": get: summary: Get edit previews description: Retrieve all preview files related to a specific edit. Returns them as a dictionary where keys are related task type IDs and values are arrays of previews for that task type. responses: '200': description: Edit previews successfully retrieved content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid description: Preview unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Preview name example: edit_preview_01 original_name: type: string description: Original file name example: edit_sequence.mov file_path: type: string description: File path example: "/previews/edit/edit_preview_01.mov" task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/edits/{edit_id}/versions": get: summary: Get edit versions description: Retrieve all data versions of a specific edit. This includes historical versions and metadata about changes over time. responses: '200': description: Edit versions successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Version unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 edit_id: type: string format: uuid description: Edit identifier example: a24a6ea4-ce75-4665-a070-57453082c25 version_number: type: integer description: Version number example: 1 data: type: object description: Version data content example: duration: 120 fps: 24 changes: Added transitions created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' created_by: type: string format: uuid description: Creator person identifier example: c46c8gc6-eg97-6887-c292-79675204e47 parameters: - in: path name: edit_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the edit tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/versions" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/versions" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/edits": get: summary: Get episode edits description: Retrieve all edits that are related to a specific episode. responses: '200': description: List of episode edits successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Episode Edit description: type: string description: Edit description example: Main episode edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the episode - in: query name: relations type: boolean required: false description: Include related entity information example: true tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edits?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edits" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/episodes/{episode_id}/edit-tasks": get: summary: Get episode edit tasks description: Retrieve all tasks that are related to a specific episode. responses: '200': description: List of episode edit tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Episode Edit Task task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 entity_id: type: string format: uuid description: Entity identifier example: e68e0ie8-gi19-8009-e514-91897426g69 assigned_to: type: string format: uuid description: Assigned person identifier example: f79f1jf9-hj20-9010-f625-02998537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: episode_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the episode - in: query name: relations type: boolean required: false description: Include related entity information example: true tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edit-tasks?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edit-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/edits": post: summary: Create edit description: Create a new edit for a specific project with name, description, and optional episode association. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit data: type: object description: Additional edit data example: duration: 120 fps: 24 episode_id: type: string format: uuid description: Episode identifier (optional) example: b35b7fb5-df86-5776-b181-68564193d36 responses: '201': description: Edit successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 data: type: object description: Additional edit data example: duration: 120 fps: 24 created_by: type: string format: uuid description: Creator person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Opening Sequence", "description": "Main opening sequence edit", "data": { "duration": 120, "fps": 24 }, "episode_id": "b35b7fb5-df86-5776-b181-68564193d36" }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Opening Sequence", "description": "Main opening sequence edit", "data": { "duration": 120, "fps": 24 }, "episode_id": "b35b7fb5-df86-5776-b181-68564193d36" } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project edits description: Retrieve all edits that are related to a specific project. responses: '200': description: List of project edits successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Edit unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Edit name example: Opening Sequence description: type: string description: Edit description example: Main opening sequence edit project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 episode_id: type: string format: uuid description: Episode identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Edits x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/search": post: summary: Search entities description: Search across indexes for persons, assets and shots. Use optional filters to limit results to a project and specific indexes. Results are paginated with limit and offset. requestBody: required: true content: application/json: schema: type: object required: - query properties: query: type: string description: Search query string (minimum 3 characters) example: kitsu project_id: type: string format: uuid description: Filter search results by project ID example: a24a6ea4-ce75-4665-a070-57453082c25 limit: type: integer default: 3 description: Maximum number of results per index example: 3 offset: type: integer default: 0 description: Number of results to skip example: 0 index_names: type: array items: type: string enum: - assets - shots - persons default: - assets - shots - persons description: List of index names to search in example: - assets responses: '200': description: List of entities that contain the query content: application/json: schema: type: object properties: persons: type: array description: List of matching persons example: - id: a24a6ea4-ce75-4665-a070-57453082c25 name: John Doe "...": assets: type: array description: List of matching assets example: [] shots: type: array description: List of matching shots example: - id: a24a6ea4-ce75-4665-a070-57453082c25 name: Shot 001 "...": '400': description: Bad request tags: - Search x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/search" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "query": "kitsu", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "limit": 3, "offset": 0, "index_names": [ "assets" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/search" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "query": "kitsu", "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "limit": 3, "offset": 0, "index_names": [ "assets" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts": get: summary: Get all concepts description: Retrieve all concept entries with filtering support. Filters can be specified in the query string to narrow down results by project or parent concept. responses: '200': description: List of concepts successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Concept unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 parent_id: type: string format: uuid description: Parent concept identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter concepts by specific project - in: query name: parent_id required: false type: string format: uuid example: b35b7fb5-df86-5776-b181-68564193d36 description: Filter concepts by parent concept tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts?project_id=a24a6ea4-ce75-4665-a070-57453082c25&parent_id=b35b7fb5-df86-5776-b181-68564193d36" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25", "parent_id": "b35b7fb5-df86-5776-b181-68564193d36" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts/with-tasks": get: summary: Get concepts and tasks description: Retrieve all concepts and all related tasks included in the response. responses: '200': description: Concepts with tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Concept unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 project_name: type: string description: Project name example: My Animation Project asset_type_name: type: string description: Asset type name example: Character tasks: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: c46c8gc6-eg97-6887-c292-79675204e47 name: type: string description: Task name example: Character Design Task task_type_id: type: string format: uuid description: Task type identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: query name: project_id required: false type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Filter concepts by specific project tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts/with-tasks?project_id=a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/with-tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "project_id": "a24a6ea4-ce75-4665-a070-57453082c25" } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts/{concept_id}": delete: summary: Delete concept description: Permanently remove a concept from the system. Only concept creators or project managers can delete concepts. responses: '204': description: Concept successfully deleted parameters: - in: path name: concept_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the concept to delete - in: query name: force type: boolean required: false description: Force deletion bypassing validation checks example: false tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X DELETE "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25?force=false" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "force": false } payload = None response = requests.delete( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get concept description: Retrieve detailed information about a specific concept including metadata, project context, and related data. responses: '200': description: Concept information successfully retrieved content: application/json: schema: type: object properties: id: type: string format: uuid description: Concept unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: concept_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the concept tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts/{concept_id}/task-types": get: summary: Get concept task types description: Retrieve all task types that are related to a specific concept. responses: '200': description: List of concept task types successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task type unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task type name example: Concept Art short_name: type: string description: Task type short name example: CON color: type: string description: Task type color code example: "#FF5733" for_entity: type: string description: Entity type this task type is for example: Concept parameters: - in: path name: concept_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the concept tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/task-types" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/task-types" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts/{concept_id}/tasks": get: summary: Get concept tasks description: Retrieve all tasks that are related to a specific concept. responses: '200': description: List of concept tasks successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Task unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Task name example: Character Design Task task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 task_status_id: type: string format: uuid description: Task status identifier example: d57d9hd7-fh08-7998-d403-80786315f58 entity_id: type: string format: uuid description: Entity identifier example: e68e0ie8-gi19-8009-e514-91897426g69 assigned_to: type: string format: uuid description: Assigned person identifier example: f79f1jf9-hj20-9010-f625-02998537h80 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: concept_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the concept - in: query name: relations type: boolean required: false description: Include related entity information example: true tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/tasks?relations=true" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/tasks" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = { "relations": true } payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/concepts/{concept_id}/preview-files": get: summary: Get concept previews description: Retrieve all preview files related to a specific concept. Returns them as a dictionary where keys are related task type IDs and values are arrays of previews for that task type. responses: '200': description: Concept previews successfully retrieved content: application/json: schema: type: object additionalProperties: type: array items: type: object properties: id: type: string format: uuid description: Preview unique identifier example: b35b7fb5-df86-5776-b181-68564193d36 name: type: string description: Preview name example: concept_preview_01 original_name: type: string description: Original file name example: character_concept.jpg file_path: type: string description: File path example: "/previews/concept/concept_preview_01.jpg" task_type_id: type: string format: uuid description: Task type identifier example: c46c8gc6-eg97-6887-c292-79675204e47 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: concept_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the concept tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/preview-files" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) "/data/projects/{project_id}/concepts": post: summary: Create concept description: Create a new concept for a specific project with name, description, and optional entity concept links. requestBody: required: true content: application/json: schema: type: object required: - name properties: name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art data: type: object description: Additional concept data example: style: realistic mood: heroic entity_concept_links: type: array items: type: string format: uuid description: List of entity concept link identifiers example: - b35b7fb5-df86-5776-b181-68564193d36 - c46c8gc6-eg97-6887-c292-79675204e47 responses: '201': description: Concept successfully created content: application/json: schema: type: object properties: id: type: string format: uuid description: Concept unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 data: type: object description: Additional concept data example: style: realistic mood: heroic created_by: type: string format: uuid description: Creator person identifier example: d57d9hd7-fh08-7998-d403-80786315f58 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:00:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X POST "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "Character Design", "description": "Main character concept art", "data": { "style": "realistic", "mood": "heroic" }, "entity_concept_links": [ "b35b7fb5-df86-5776-b181-68564193d36", "c46c8gc6-eg97-6887-c292-79675204e47" ] }' - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json", "Content-Type": "application/json" } params = {} payload = { "name": "Character Design", "description": "Main character concept art", "data": { "style": "realistic", "mood": "heroic" }, "entity_concept_links": [ "b35b7fb5-df86-5776-b181-68564193d36", "c46c8gc6-eg97-6887-c292-79675204e47" ] } response = requests.post( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) get: summary: Get project concepts description: Retrieve all concepts that are related to a specific project. responses: '200': description: List of project concepts successfully retrieved content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid description: Concept unique identifier example: a24a6ea4-ce75-4665-a070-57453082c25 name: type: string description: Concept name example: Character Design description: type: string description: Concept description example: Main character concept art project_id: type: string format: uuid description: Project identifier example: b35b7fb5-df86-5776-b181-68564193d36 created_at: type: string format: date-time description: Creation timestamp example: '2023-01-01T12:00:00Z' updated_at: type: string format: date-time description: Last update timestamp example: '2023-01-01T12:30:00Z' parameters: - in: path name: project_id required: true type: string format: uuid example: a24a6ea4-ce75-4665-a070-57453082c25 description: Unique identifier of the project tags: - Concepts x-codeSamples: - lang: bash label: curl source: |- curl -X GET "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" - lang: python label: Python source: |- import requests url = "http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts" headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Accept": "application/json" } params = {} payload = None response = requests.get( url, headers=headers, params=params, json=payload ) response.raise_for_status() if response.content: print(response.json()) components: securitySchemes: JWT Authorization: name: Authorization in: header type: apiKey description: "Format in header: **Authorization: Bearer {token}**. \n\n Value example: Bearer xxxxx.yyyyy.zzzzz" schemas: Asset: type: object properties: name: type: string description: Name of asset code: type: string description: Utility field for the pipeline to identify the asset description: type: string description: Asset brief canceled: type: boolean default: 'False' description: True if the asset has been delete one time, False otherwise project_id: type: string format: UUID description: Project ID entity_type_id: type: string format: UUID description: Asset type ID source_id: type: string format: UUID description: Field used to set the episode_id preview_file_id: type: string format: UUID description: ID of preview file used as thumbnail data: type: string format: json description: Free JSON field to add metadata shotgun_id: type: integer description: Used for synchronization with a Shotgun instance AssetInstance: type: object properties: asset_id: type: string format: UUID description: Instantiated asset name: type: string number: type: integer description: type: string active: type: boolean default: 'True' data: type: string format: json description: Free JSON field to add metadata scene_id: type: string format: UUID description: Target scene target_asset_id: type: string format: UUID description: Use when instantiating an asset in an asset is required AssetType: type: object properties: name: type: string AttachmentFile: type: object properties: name: type: string description: Name of attachment file size: type: integer description: Size of attachment file extension: type: string description: Extension of attachment file mimetype: type: string comment_id: type: string format: UUID description: Comment to which the file is attached BuildJob: type: object properties: status: type: string description: Status of build job (running, failed, succeeded) job_type: type: string description: Type of build job (archive, movie) ended_at: type: string format: date-time playlist_id: type: string format: UUID description: Playlist ID Comment: type: object properties: shotgun_id: type: integer description: Used for synchronization with a Shotgun instance object_id: type: string format: UUID description: Unique ID of the commented model instance object_type: type: string description: Model type of the comment model instance text: type: string data: type: string format: json description: Free JSON field to add metadata replies: type: string format: json default: "[]" checklist: type: string format: json pinned: type: boolean task_status_id: type: string format: UUID description: Task status attached to comment person_id: type: string format: UUID description: The person who publishes the comment preview_file_id: type: string format: UUID description: ID of preview file used as thumbnail CustomAction: type: object properties: name: type: string description: Name of custom action url: type: string entity_type: type: string default: all is_ajax: type: boolean default: 'False' description: True if the custom action is ajax, False otherwise DataImportError: type: object properties: event_data: type: string format: json description: JSON field to add event data source: type: array items: type: string enum: - csv - shotgun DayOff: type: object properties: date: type: string format: date person_id: type: string format: UUID description: The person who will take the day off Department: type: object properties: name: type: string description: Name of department color: type: string description: Color of department archived: type: boolean description: True if the department is archived else False DesktopLoginLog: type: object properties: date: type: string format: date person_id: type: string format: UUID description: Person ID Episode: type: object properties: name: type: string description: Name of episode code: type: string description: Utility field for the pipeline to identify the episode description: type: string description: Episode brief canceled: type: boolean default: 'False' description: True if the episode has been delete one time, False otherwise project_id: type: string format: UUID description: Project ID source_id: type: string format: UUID description: Field used to set the episode_id preview_file_id: type: string format: UUID description: ID of preview file used as thumbnail data: type: string format: json description: Free JSON field to add metadata shotgun_id: type: integer description: Used for synchronization with a Shotgun instance Event: type: object properties: name: type: string description: Name of event user_id: type: string format: UUID description: The user who made the action that emitted the event project_id: type: string format: UUID description: Project ID data: type: string format: json description: Free JSON field to add metadata FileStatus: type: object properties: name: type: string color: type: string LoginLog: type: object properties: origin: type: string description: web, script ip_address: type: string description: IP address of device used to login person_id: type: string format: UUID description: Person ID Metadata: type: object properties: project_id: type: string format: UUID description: ID of project for which metadata are added entity_type: type: string description: Asset or Shot name: type: string description: Field name for GUI field_name: type: string description: Technical field name choices: type: string format: json description: Array of string that represents the available values for this metadata (this metadata is considered as a free field if this array is empty) for_client: type: boolean Milestone: type: object properties: data: type: string format: date description: Milestone date of production schedule name: type: string description: Name of milestone task_type_id: type: string format: UUID description: Task type ID project_id: type: string format: UUID description: Project ID News: type: object properties: change: type: boolean default: 'False' author_id: type: string format: UUID description: Person who wrote the comment comment_id: type: string format: UUID description: Posted comment ID task_id: type: string format: UUID description: Task ID preview_file_id: type: string format: UUID description: Preview file ID Notification: type: object properties: read: type: boolean description: True if user read it, False otherwise change: type: boolean description: True if there is status change related to this status, False otherwise person_id: type: string format: UUID description: The user to who the notification is aimed at author_id: type: string format: UUID description: Author of the event to notify comment_id: type: string format: UUID description: Comment related to the notification, if there is any task_id: type: string format: UUID description: Task related to the notification, if there is any reply_id: type: string format: UUID description: Reply related to notification type: type: string description: Type of notification Organisation: type: object properties: name: type: string description: Name of organisation hours_by_day: type: float has_avatar: type: boolean default: 'False' description: True if the organisation has an avatar, False otherwise use_original_file_name: type: boolean default: 'False' description: True if the organisation uses original file names, False otherwise timesheets_locked: type: boolean default: 'False' description: True if the organisation's timesheets are locked, False otherwise hd_by_default: type: boolean default: 'False' chat_token_slack: type: string chat_webhook_mattermost: type: string chat_token_discord: type: string OutputFile: type: object properties: shotgun_id: type: integer description: Used for synchronization with a Shotgun instance name: type: string description: Name of output file extension: type: string description: Extension of output file description: type: string description: Output file brief comment: type: string description: Comment on output file revision: type: integer description: Revision number of output file size: type: integer description: Size of output file checksum: type: string description: Checksum of output file source: type: string description: Created by a script, a webgui or a desktop gui path: type: string description: File path on the production hard drive representation: type: string description: Precise what kind of output it is (abc, jpgs, pngs, etc.) nb_elements: type: integer default: '1' description: For image sequence canceled: type: boolean file_status_id: type: string format: UUID description: File status ID entity_id: type: string format: UUID description: Asset or Shot concerned by the output file asset_instance_id: type: string format: UUID description: Asset instance ID output_type_id: type: string format: UUID description: Type of output (geometry, cache, etc.) task_type_id: type: string format: UUID description: Task type related to this output file (modeling, animation, etc.) person_id: type: string format: UUID description: Author of the file source_file_id: type: string format: UUID description: Working file that led to create this output file temporal_entity_id: type: string format: UUID description: Shot, scene or sequence needed for output files related to an asset instance data: type: string format: json description: Free JSON field to add metadata OutputType: type: object properties: name: type: string short_name: type: string Person: type: object properties: first_name: type: string last_name: type: string email: type: string description: Serve as login phone: type: string active: type: boolean description: True if the person is still in the studio, False otherwise last_presence: type: string format: date description: Last time the person worked for the studio password: type: string format: byte desktop_login: type: string description: Login used on desktop shotgun_id: type: integer description: Used for synchronization with a Shotgun instance timezone: type: string locale: type: string data: type: string format: json description: Free JSON field to add metadata role: type: string default: user has_avatar: type: boolean default: 'False' description: True if user has an avatar, False otherwise notifications_enabled: type: boolean notifications_slack_enabled: type: boolean notifications_slack_userid: type: string notifications_mattermost_enabled: type: boolean notifications_mattermost_userid: type: string notifications_discord_enabled: type: boolean notifications_discord_userid: type: string Playlist: type: object properties: name: type: string description: Name of playlist shots: type: string format: json description: JSON field describing shot and preview listed in project_id: type: string format: UUID description: Project ID episode_id: type: string format: UUID description: Episode ID for_client: type: boolean default: 'False' for_entity: type: string default: shot is_for_all: type: boolean default: 'False' task_type_id: type: string format: UUID description: Task type ID PreviewFile: type: object properties: shotgun_id: type: integer description: Used for synchronization with a Shotgun instance name: type: string description: Name of preview file original_name: type: string description: Original name of preview file revision: type: integer default: '1' description: Revision number of preview file position: type: integer default: '1' description: Position of preview file extension: type: string description: Extension of preview file description: type: string description: Preview file brief path: type: string description: File path on the production hard drive source: type: string description: Created by a script, a webgui or a desktop gui file_size: type: integer default: '0' description: Size of output file comment: type: string description: Comment on output file checksum: type: string description: Checksum of output file representation: type: string description: Precise what kind of output it is (abc, jpgs, pngs, etc.) nb_elements: type: integer default: '1' description: For image sequence canceled: type: boolean file_status_id: type: string format: UUID description: File status ID entity_id: type: string format: UUID description: Asset or Shot concerned by the output file asset_instance_id: type: string format: UUID description: Asset instance ID output_type_id: type: string format: UUID description: Type of output (geometry, cache, etc.) task_type_id: type: string format: UUID description: Task type related to this output file (modeling, animation, etc.) person_id: type: string format: UUID description: Author of the file source_file_id: type: string format: UUID description: Working file that led to create this output file temporal_entity_id: type: string format: UUID description: Shot, scene or sequence needed for output files related to an asset instance data: type: string format: json description: Free JSON field to add metadata Project: type: object properties: name: type: string description: Name of project code: type: string description: Utility field for the pipeline to identify the project description: type: string description: Project brief shotgun_id: type: integer description: Used for synchronization with a Shotgun instance file_tree: type: string format: json description: Templates to use to build file paths data: type: string format: json description: Free JSON field to add metadata project_status_id: type: string format: UUID description: Project status ID has_avatar: type: boolean default: 'False' description: True if the project has an avatar, False otherwise fps: type: string description: Frames per second ratio: type: string resolution: type: string production_type: type: string description: short, featurefilm or tvshow default: short end_date: type: string format: date start_date: type: string format: date man_days: type: integer description: Estimated number of working days to complete the project nb_episodes: type: integer default: '0' episode_span: type: integer default: '0' max_retakes: type: integer default: '0' is_clients_isolated: type: boolean default: 'False' description: True if the clients are isolated from the project, False otherwise ProjectStatus: type: object properties: name: type: string color: type: string ScheduleItem: type: object properties: start_date: type: string format: date end_date: type: string format: date man_days: type: integer project_id: type: string format: UUID description: Project ID task_type_id: type: string format: UUID description: Task type ID object_id: type: string format: UUID description: Object ID SearchFilter: type: object properties: list_type: type: string description: Type of list entity_type: type: string description: Type of entity name: type: string description: Name of search filter search_query: type: string person_id: type: string format: UUID description: Person ID project_id: type: string format: UUID description: Project ID Sequence: type: object properties: name: type: string description: Name of sequence code: type: string description: Utility field for the pipeline to identify the sequence description: type: string description: Sequence brief canceled: type: boolean default: 'False' description: True if the sequence has been delete one time, False otherwise project_id: type: string format: UUID description: Project ID parent_id: type: string format: UUID description: Episode ID source_id: type: string format: UUID description: Field used to set the episode_id preview_file_id: type: string format: UUID description: ID of preview file used as thumbnail data: type: string format: json description: Free JSON field to add metadata shotgun_id: type: integer description: Used for synchronization with a Shotgun instance Shot: type: object properties: name: type: string description: Name of shot code: type: string description: Utility field for the pipeline to identify the shot description: type: string description: Shot brief canceled: type: boolean default: 'False' description: True if the shot has been delete one time, False otherwise project_id: type: string format: UUID description: Project ID parent_id: type: string format: UUID description: Episode ID entity_type_id: type: string format: UUID description: Shot type ID source_id: type: string format: UUID description: Field used to set the episode_id preview_file_id: type: string format: UUID description: ID of preview file used as thumbnail data: type: string format: json description: Free JSON field to add metadata shotgun_id: type: integer description: Used for synchronization with a Shotgun instance Software: type: object properties: name: type: string description: Name of software short_name: type: string description: Short name of software file_extension: type: string description: Main extension used for this software's files secondary_extensions: type: string format: json description: Other extensions used for this software's files StatusAutomation: type: object properties: entity_type: type: string default: asset in_task_type_id: type: string format: UUID description: Task type ID in_task_status_id: type: string format: UUID description: Task status ID out_field_type: type: string description: Field type (status, ready_for) out_task_type_id: type: string format: UUID description: Task type ID out_task_status_id: type: string format: UUID description: Task status ID SubscriptionToNotifications: type: object properties: person_id: type: string format: UUID description: Person ID task_id: type: string format: UUID description: Task ID entity_id: type: string format: UUID description: Entity ID task_type_id: type: string format: UUID description: Task type ID Studio: type: object properties: name: type: string description: Name of studio color: type: string description: Color of studio archived: type: boolean description: True if the studio is archived else False Task: type: object properties: name: type: string description: Name of task description: type: string description: Task brief priority: type: integer default: '0' description: Priority of task duration: type: float default: '0' description: Duration of task estimation: type: float default: '0' description: Estimation of duration of task completion_rate: type: integer default: '0' description: Completion rate of task retake_count: type: integer default: '0' description: Retake count of task sort_order: type: integer default: '0' description: Sort order of task start_date: type: string format: date-time due_date: type: string format: date-time real_start_date: type: string format: date-time end_date: type: string format: date-time last_comment_date: type: string format: date-time nb_assets_ready: type: integer default: '0' description: Number of assets ready data: type: string format: json description: Free JSON field to add metadata shotgun_id: type: integer description: Used for synchronization with a Shotgun instance project_id: type: string format: UUID description: Project ID task_type_id: type: string format: UUID description: Task type ID task_status_id: type: string format: UUID description: Task status ID entity_id: type: string format: UUID description: Entity ID assigner_id: type: string format: UUID description: Person ID TaskStatus: type: object properties: name: type: string description: Name of task status short_name: type: string description: Short name of task status color: type: string is_done: type: boolean default: 'False' description: True if the task is done, False otherwise is_artist_allowed: type: boolean default: 'True' description: True if the artist is allowed, False otherwise is_client_allowed: type: boolean default: 'True' description: True if the client is allowed, False otherwise is_retake: type: boolean default: 'False' description: True if the task was retaken, False otherwise is_feedback_request: type: boolean default: 'False' description: True if feedback was requested, False otherwise is_default: type: boolean default: 'False' description: True if the task is default, False otherwise shotgun_id: type: integer description: Used for synchronization with a Shotgun instance TaskType: type: object properties: name: type: string description: Name of task type short_name: type: string description: Short name of task type color: type: string default: "#FFFFFF" priority: type: integer default: '1' description: Priority of task type for_entity: type: string default: Asset allow_timelog: type: boolean default: 'True' description: True if timelog is allowed, False otherwise shotgun_id: type: integer description: Used for synchronization with a Shotgun instance department_id: type: string format: UUID description: Department ID TimeSpent: type: object properties: duration: type: float date: type: string format: date task_id: type: string format: UUID description: Related task ID person_id: type: string format: UUID description: The person who performed the working time WorkingFile: type: object properties: shotgun_id: type: integer description: Used for synchronization with a Shotgun instance name: type: string description: Name of working file description: type: string description: working file brief comment: type: string description: Comment on working file revision: type: integer description: Revision number of working file size: type: integer description: Size of working file checksum: type: string description: Checksum of working file path: type: string description: File path on the production hard drive data: type: string format: json description: Free JSON field to add metadata task_id: type: string format: UUID description: Task for which the working file is made entity_id: type: string format: UUID description: Entity for which the working is made person_id: type: string format: UUID description: Author of the file software_id: type: string format: UUID description: Software used to build this working file openapi: 3.0.2 externalDocs: description: Read the installation documentation url: https://zou.cg-wire.com host: localhost:8080 basePath: "/api" schemes: - http - https security: - JWT Authorization: [] tags: - name: Authentication description: User authentication, login, logout, and session management - name: Assets description: |- Production asset management including 3D models, textures, and media files. ```json Asset { "type": "object", "properties": { "name": { "type": "string", "description": "Name of asset" }, "code": { "type": "string", "description": "Utility field for the pipeline to identify the asset" }, "description": { "type": "string", "description": "Asset brief" }, "canceled": { "type": "boolean", "default": "False", "description": "True if the asset has been delete one time, False otherwise" }, "project_id": { "type": "string", "format": "UUID", "description": "Project ID" }, "entity_type_id": { "type": "string", "format": "UUID", "description": "Asset type ID" }, "source_id": { "type": "string", "format": "UUID", "description": "Field used to set the episode_id" }, "preview_file_id": { "type": "string", "format": "UUID", "description": "ID of preview file used as thumbnail" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" } } } ``` - name: Breakdown description: Shot breakdown management and asset-to-shot relationships - name: Chat description: Real-time messaging and communication features - name: Comments description: |- Task comments, feedback, and collaboration tools. ```json Comment { "type": "object", "properties": { "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" }, "object_id": { "type": "string", "format": "UUID", "description": "Unique ID of the commented model instance" }, "object_type": { "type": "string", "description": "Model type of the comment model instance" }, "text": { "type": "string" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "replies": { "type": "string", "format": "json", "default": "[]" }, "checklist": { "type": "string", "format": "json" }, "pinned": { "type": "boolean" }, "task_status_id": { "type": "string", "format": "UUID", "description": "Task status attached to comment" }, "person_id": { "type": "string", "format": "UUID", "description": "The person who publishes the comment" }, "preview_file_id": { "type": "string", "format": "UUID", "description": "ID of preview file used as thumbnail" } } } ``` - name: Concepts description: Concept art and design asset management - name: Crud description: Generic CRUD operations for various data models - name: Departments description: |- Department management and organizational structure. ```json Department { "type": "object", "properties": { "name": { "type": "string", "description": "Name of department" }, "color": { "type": "string", "description": "Color of department" }, "archived": { "type": "boolean", "description": "True if the department is archived else False" } } } ``` - name: Edits description: Edit management for post-production workflows - name: Entities description: Generic entity management and relationships - name: Events description: |- Event streaming and real-time notifications. ```json Event { "type": "object", "properties": { "name": { "type": "string", "description": "Name of event" }, "user_id": { "type": "string", "format": "UUID", "description": "The user who made the action that emitted the event" }, "project_id": { "type": "string", "format": "UUID", "description": "Project ID" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" } } } ``` - name: Export description: Data export functionality for reports and integrations - name: Files description: File management, uploads, and storage operations - name: Import description: Data import from external sources and file formats - name: Index description: System status, health checks, and configuration - name: News description: Production news feed and activity tracking - name: Persons description: |- User and team member management. ```json Person { "type": "object", "properties": { "first_name": { "type": "string" }, "last_name": { "type": "string" }, "email": { "type": "string", "description": "Serve as login" }, "phone": { "type": "string" }, "active": { "type": "boolean", "description": "True if the person is still in the studio, False otherwise" }, "last_presence": { "type": "string", "format": "date", "description": "Last time the person worked for the studio" }, "password": { "type": "string", "format": "byte" }, "desktop_login": { "type": "string", "description": "Login used on desktop" }, "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" }, "timezone": { "type": "string" }, "locale": { "type": "string" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "role": { "type": "string", "default": "user" }, "has_avatar": { "type": "boolean", "default": "False", "description": "True if user has an avatar, False otherwise" }, "notifications_enabled": { "type": "boolean" }, "notifications_slack_enabled": { "type": "boolean" }, "notifications_slack_userid": { "type": "string" }, "notifications_mattermost_enabled": { "type": "boolean" }, "notifications_mattermost_userid": { "type": "string" }, "notifications_discord_enabled": { "type": "boolean" }, "notifications_discord_userid": { "type": "string" } } } ``` - name: Playlists description: "Media playlists and review sessions. \n\n```json\nPlaylist {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \ \"description\": \"Name of playlist\"\n },\n \"shots\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"JSON field describing shot and preview listed in\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n \ },\n \"episode_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Episode ID\"\n },\n \"for_client\": {\n \"type\": \"boolean\",\n \"default\": \"False\"\n },\n \"for_entity\": {\n \"type\": \"string\",\n \"default\": \"shot\"\n },\n \"is_for_all\": {\n \"type\": \"boolean\",\n \"default\": \"False\"\n },\n \"task_type_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Task type ID\"\n }\n }\n}\n```" - name: Previews description: "Preview generation and thumbnail management. \n\n```json\nPreviewFile {\n \"type\": \"object\",\n \"properties\": {\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of preview file\"\n },\n \"original_name\": {\n \"type\": \"string\",\n \ \"description\": \"Original name of preview file\"\n },\n \"revision\": {\n \"type\": \"integer\",\n \"default\": \"1\",\n \"description\": \"Revision number of preview file\"\n },\n \"position\": {\n \"type\": \"integer\",\n \"default\": \"1\",\n \"description\": \"Position of preview file\"\n },\n \"extension\": {\n \"type\": \"string\",\n \"description\": \"Extension of preview file\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Preview file brief\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"File path on the production hard drive\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"Created by a script, a webgui or a desktop gui\"\n },\n \"file_size\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Size of output file\"\n },\n \"comment\": {\n \"type\": \"string\",\n \ \"description\": \"Comment on output file\"\n },\n \"checksum\": {\n \ \"type\": \"string\",\n \"description\": \"Checksum of output file\"\n \ },\n \"representation\": {\n \"type\": \"string\",\n \"description\": \"Precise what kind of output it is (abc, jpgs, pngs, etc.)\"\n },\n \"nb_elements\": {\n \"type\": \"integer\",\n \"default\": \"1\",\n \"description\": \"For image sequence\"\n },\n \"canceled\": {\n \"type\": \"boolean\"\n \ },\n \"file_status_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"File status ID\"\n },\n \"entity_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Asset or Shot concerned by the output file\"\n },\n \"asset_instance_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Asset instance ID\"\n },\n \"output_type_id\": {\n \"type\": \"string\",\n \ \"format\": \"UUID\",\n \"description\": \"Type of output (geometry, cache, etc.)\"\n },\n \"task_type_id\": {\n \"type\": \"string\",\n \ \"format\": \"UUID\",\n \"description\": \"Task type related to this output file (modeling, animation, etc.)\"\n },\n \"person_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Author of the file\"\n },\n \"source_file_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Working file that led to create this output file\"\n },\n \"temporal_entity_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Shot, scene or sequence needed for output files related to an asset instance\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n }\n }\n}\n```" - name: Projects description: |- Project management and production organization. ```json Project { "type": "object", "properties": { "name": { "type": "string", "description": "Name of project" }, "code": { "type": "string", "description": "Utility field for the pipeline to identify the project" }, "description": { "type": "string", "description": "Project brief" }, "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" }, "file_tree": { "type": "string", "format": "json", "description": "Templates to use to build file paths" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "project_status_id": { "type": "string", "format": "UUID", "description": "Project status ID" }, "has_avatar": { "type": "boolean", "default": "False", "description": "True if the project has an avatar, False otherwise" }, "fps": { "type": "string", "description": "Frames per second" }, "ratio": { "type": "string" }, "resolution": { "type": "string" }, "production_type": { "type": "string", "description": "short, featurefilm or tvshow", "default": "short" }, "end_date": { "type": "string", "format": "date" }, "start_date": { "type": "string", "format": "date" }, "man_days": { "type": "integer", "description": "Estimated number of working days to complete the project" }, "nb_episodes": { "type": "integer", "default": "0" }, "episode_span": { "type": "integer", "default": "0" }, "max_retakes": { "type": "integer", "default": "0" }, "is_clients_isolated": { "type": "boolean", "default": "False", "description": "True if the clients are isolated from the project, False otherwise" } } } ``` - name: Search description: |- Search functionality across all production data. ```json SearchFilter { "type": "object", "properties": { "list_type": { "type": "string", "description": "Type of list" }, "entity_type": { "type": "string", "description": "Type of entity" }, "name": { "type": "string", "description": "Name of search filter" }, "search_query": { "type": "string" }, "person_id": { "type": "string", "format": "UUID", "description": "Person ID" }, "project_id": { "type": "string", "format": "UUID", "description": "Project ID" } } } ``` - name: Shots description: |- Shot management, sequences, and episodes. ```json Shot { "type": "object", "properties": { "name": { "type": "string", "description": "Name of shot" }, "code": { "type": "string", "description": "Utility field for the pipeline to identify the shot" }, "description": { "type": "string", "description": "Shot brief" }, "canceled": { "type": "boolean", "default": "False", "description": "True if the shot has been delete one time, False otherwise" }, "project_id": { "type": "string", "format": "UUID", "description": "Project ID" }, "parent_id": { "type": "string", "format": "UUID", "description": "Episode ID" }, "entity_type_id": { "type": "string", "format": "UUID", "description": "Shot type ID" }, "source_id": { "type": "string", "format": "UUID", "description": "Field used to set the episode_id" }, "preview_file_id": { "type": "string", "format": "UUID", "description": "ID of preview file used as thumbnail" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" } } } ``` - name: Tasks description: |- Task management, assignments, and progress tracking. ```json Task { "type": "object", "properties": { "name": { "type": "string", "description": "Name of task" }, "description": { "type": "string", "description": "Task brief" }, "priority": { "type": "integer", "default": "0", "description": "Priority of task" }, "duration": { "type": "float", "default": "0", "description": "Duration of task" }, "estimation": { "type": "float", "default": "0", "description": "Estimation of duration of task" }, "completion_rate": { "type": "integer", "default": "0", "description": "Completion rate of task" }, "retake_count": { "type": "integer", "default": "0", "description": "Retake count of task" }, "sort_order": { "type": "integer", "default": "0", "description": "Sort order of task" }, "start_date": { "type": "string", "format": "date-time" }, "due_date": { "type": "string", "format": "date-time" }, "real_start_date": { "type": "string", "format": "date-time" }, "end_date": { "type": "string", "format": "date-time" }, "last_comment_date": { "type": "string", "format": "date-time" }, "nb_assets_ready": { "type": "integer", "default": "0", "description": "Number of assets ready" }, "data": { "type": "string", "format": "json", "description": "Free JSON field to add metadata" }, "shotgun_id": { "type": "integer", "description": "Used for synchronization with a Shotgun instance" }, "project_id": { "type": "string", "format": "UUID", "description": "Project ID" }, "task_type_id": { "type": "string", "format": "UUID", "description": "Task type ID" }, "task_status_id": { "type": "string", "format": "UUID", "description": "Task status ID" }, "entity_id": { "type": "string", "format": "UUID", "description": "Entity ID" }, "assigner_id": { "type": "string", "format": "UUID", "description": "Person ID" } } } ``` - name: User description: User-specific data and personal workspace management