{"info":{"title":"Kitsu API","description":"\n## Welcome to the Kitsu API specification\n```Version: 1.0.19```\n\nThe 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.\n\nAn easy to use Python client to access this API is available:\n[Python Kitsu Client documentation](https://gazu.cg-wire.com/)\n\n## Authentication
Before you can use any of the endpoints outlined below,\nyou will need to obtain a JWT token to authorize your requests.\n
\n\n\nYou will find detailed information on how to retrieve authentication tokens in the\n[Zou documentation](https://zou.cg-wire.com/api/).\n
\n\n\nAll API requests require authentication via JWT tokens passed in the Authorization header.\n
\n","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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"email\": \"admin@example.com\",\n \"password\": \"mysecretpassword\",\n \"totp\": 123456,\n \"email_otp\": 123456,\n \"fido_authentication_response\": {},\n \"recovery_code\": \"ABCD-EFGH-IJKL-MNOP\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/login\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"email\": \"admin@example.com\",\n \"password\": \"mysecretpassword\",\n \"totp\": 123456,\n \"email_otp\": 123456,\n \"fido_authentication_response\": {},\n \"recovery_code\": \"ABCD-EFGH-IJKL-MNOP\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/logout\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/authenticated\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"email\": \"admin@example.com\",\n \"password\": \"\",\n \"password_2\": \"\",\n \"first_name\": \"\",\n \"last_name\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/register\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"email\": \"admin@example.com\",\n \"password\": \"\",\n \"password_2\": \"\",\n \"first_name\": \"\",\n \"last_name\": \"\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"old_password\": \"\",\n \"password\": \"\",\n \"password_2\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/change-password\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"old_password\": \"\",\n \"password\": \"\",\n \"password_2\": \"\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"email\": \"admin@example.com\",\n \"token\": \"\",\n \"password\": \"\",\n \"password2\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/reset-password\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"email\": \"admin@example.com\",\n \"token\": \"\",\n \"password\": \"\",\n \"password2\": \"\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"email\": \"admin@example.com\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/reset-password\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"email\": \"admin@example.com\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/refresh-token\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/totp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"totp\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/totp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"totp\": \"\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/totp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/email-otp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"email_otp\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/email-otp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"email_otp\": \"\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/email-otp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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=\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/email-otp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"email\": \"\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/recovery-codes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/fido\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"registration_response\": {},\n \"device_name\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/fido\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"registration_response\": {},\n \"device_name\": \"\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\",\n \"device_name\": \"\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/fido\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"totp\": \"\",\n \"email_otp\": \"\",\n \"fido_authentication_response\": {},\n \"recovery_code\": \"\",\n \"device_name\": \"\"\n}\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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=\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/fido\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"email\": \"\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/saml/sso\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/auth/saml/login\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"asset_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"page\": 1,\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"asset_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"page\": 1,\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"asset_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/cast-in\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"casting\": [\n {\n \"entity_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"entity_type\": \"shot\"\n }\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"casting\": [\n {\n \"entity_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"entity_type\": \"shot\"\n }\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/shot-asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/scene-asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_to_instantiate_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"description\": \"Asset instance description\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_to_instantiate_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"description\": \"Asset instance description\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/assets/a24a6ea4-ce75-4665-a070-57453082c25/asset-asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Character Name\",\n \"description\": \"Main character\",\n \"data\": [\n {\n \"difficulty\": \"easy\",\n \"atmsophere\": \"sunny\"\n }\n ],\n \"is_shared\": false,\n \"source_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/new\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Character Name\",\n \"description\": \"Main character\",\n \"data\": [\n {\n \"difficulty\": \"easy\",\n \"atmsophere\": \"sunny\"\n }\n ],\n \"is_shared\": false,\n \"source_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"asset_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"page\": 1,\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b35b7fb5-df86-5776-b181-68564193d36\"\n ],\n \"is_shared\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/assets/share\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b35b7fb5-df86-5776-b181-68564193d36\"\n ],\n \"is_shared\": true\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"is_shared\": true,\n \"asset_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b35b7fb5-df86-5776-b181-68564193d36\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/share\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"is_shared\": true,\n \"asset_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b35b7fb5-df86-5776-b181-68564193d36\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"is_shared\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/share\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"is_shared\": true\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/assets/shared-used\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"casting\": [\n {\n \"asset_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"asset_name\": \"Main Character\"\n }\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"casting\": [\n {\n \"asset_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"asset_name\": \"Main Character\"\n }\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entities/a24a6ea4-ce75-4665-a070-57453082c25/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/g80g2kg0-ik31-0221-g736-13019648i81/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/f79f1jf9-hj20-9110-f625-02908537h70/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/d57d9hd7-fh08-7998-d403-80786315f58/sequences/all/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences/all/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 2,\n \"limit\": 100,\n \"cursor_created_at\": \"2020-01-01T00:00:00\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/entity-links/m46m8qm6-oq97-6887-m403-80786315o47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"description\": \"Main character instance\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"description\": \"Main character instance\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/i02i4mi2-km53-2443-i958-35231870k03/camera-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_instance_id\": \"h91h3lh1-jl42-1332-h847-24120759j92\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_instance_id\": \"h91h3lh1-jl42-1332-h847-24120759j92\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/e68e0ie8-gi19-8009-e514-91897426g69/asset-instances/h91h3lh1-jl42-1332-h847-24120759j92\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": \"Hello, world!\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"message\": \"Hello, world!\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/chat/messages/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/ack\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/attachments/c46c8gc6-eg97-6887-c292-79675204e47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/reply/c46c8gc6-eg97-6887-c292-79675204e47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25/file/document.pdf\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/b35b7fb5-df86-5776-b181-68564193d36/add-attachment\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/attachment-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_status_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"comment\": \"This looks great! Ready for review.\",\n \"person_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"created_at\": \"2023-01-01T12:00:00Z\",\n \"checklist\": {\n \"item1\": \"Check lighting\",\n \"item2\": \"Verify textures\"\n },\n \"links\": [\n \"https://example.com/reference1\",\n \"https://example.com/reference2\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comment\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_status_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"comment\": \"This looks great! Ready for review.\",\n \"person_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"created_at\": \"2023-01-01T12:00:00Z\",\n \"checklist\": {\n \"item1\": \"Check lighting\",\n \"item2\": \"Verify textures\"\n },\n \"links\": [\n \"https://example.com/reference1\",\n \"https://example.com/reference2\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"task_status_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"comment\": \"This looks great! Ready for review.\",\n \"person_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"object_id\": \"e68e0ie8-gi19-8009-e514-91897426g69\",\n \"created_at\": \"2023-01-01T12:00:00Z\",\n \"checklist\": {\n \"item1\": \"Check lighting\",\n \"item2\": \"Verify textures\"\n },\n \"links\": [\n \"https://example.com/reference1\",\n \"https://example.com/reference2\"\n ]\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks/comment-many\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"task_status_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"comment\": \"This looks great! Ready for review.\",\n \"person_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"object_id\": \"e68e0ie8-gi19-8009-e514-91897426g69\",\n \"created_at\": \"2023-01-01T12:00:00Z\",\n \"checklist\": {\n \"item1\": \"Check lighting\",\n \"item2\": \"Verify textures\"\n },\n \"links\": [\n \"https://example.com/reference1\",\n \"https://example.com/reference2\"\n ]\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"password\": \"securepassword123\",\n \"role\": \"user\",\n \"active\": true,\n \"contract_type\": \"permanent\",\n \"two_factor_authentication\": \"none\",\n \"expiration_date\": \"2025-12-31\",\n \"is_bot\": false\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"password\": \"securepassword123\",\n \"role\": \"user\",\n \"active\": true,\n \"contract_type\": \"permanent\",\n \"two_factor_authentication\": \"none\",\n \"expiration_date\": \"2025-12-31\",\n \"is_bot\": false\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false,\n \"with_pass_hash\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane.smith@example.com\",\n \"password\": \"newsecurepassword123\",\n \"role\": \"manager\",\n \"active\": true,\n \"contract_type\": \"freelance\",\n \"two_factor_authentication\": \"totp\",\n \"expiration_date\": \"2025-12-31\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"first_name\": \"Jane\",\n \"last_name\": \"Smith\",\n \"email\": \"jane.smith@example.com\",\n \"password\": \"newsecurepassword123\",\n \"role\": \"manager\",\n \"active\": true,\n \"contract_type\": \"freelance\",\n \"two_factor_authentication\": \"totp\",\n \"expiration_date\": \"2025-12-31\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Project Name\",\n \"production_type\": \"feature\",\n \"production_style\": \"2d3d\",\n \"project_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Project Name\",\n \"production_type\": \"feature\",\n \"production_style\": \"2d3d\",\n \"project_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Project Name\",\n \"production_style\": \"2d\",\n \"preview_background_file_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Project Name\",\n \"production_style\": \"2d\",\n \"preview_background_file_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Open\",\n \"color\": \"#00FF00\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/project-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Open\",\n \"color\": \"#00FF00\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/project-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Closed\",\n \"color\": \"#FF0000\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Closed\",\n \"color\": \"#FF0000\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/project-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Character\",\n \"color\": \"#FF5733\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Character\",\n \"color\": \"#FF5733\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Character\",\n \"color\": \"#FF5734\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Character\",\n \"color\": \"#FF5734\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"SH010\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"status\": \"running\",\n \"data\": {\n \"frame_in\": 1001,\n \"frame_out\": 1120\n }\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"SH010\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"status\": \"running\",\n \"data\": {\n \"frame_in\": 1001,\n \"frame_out\": 1120\n }\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"SH010\",\n \"data\": {\n \"frame_in\": 1001,\n \"frame_out\": 1120\n }\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"SH010\",\n \"data\": {\n \"frame_in\": 1001,\n \"frame_out\": 1120\n }\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Animation\",\n \"for_entity\": \"Shot\",\n \"color\": \"#FF5733\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Animation\",\n \"for_entity\": \"Shot\",\n \"color\": \"#FF5733\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Animation\",\n \"color\": \"#FF5734\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Animation\",\n \"color\": \"#FF5734\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"priority\": 1\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-type-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"priority\": 1\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"To Do\",\n \"short_name\": \"TODO\",\n \"color\": \"#FF5733\",\n \"is_default\": false\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"To Do\",\n \"short_name\": \"TODO\",\n \"color\": \"#FF5733\",\n \"is_default\": false\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"In Progress\",\n \"short_name\": \"WIP\",\n \"color\": \"#00FF00\",\n \"is_default\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"In Progress\",\n \"short_name\": \"WIP\",\n \"color\": \"#00FF00\",\n \"is_default\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"priority\": 1,\n \"roles_for_board\": [\n \"admin\",\n \"manager\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/task-status-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"priority\": 1,\n \"roles_for_board\": [\n \"admin\",\n \"manager\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"assignees\": [\n \"c24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"assignees\": [\n \"c24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false,\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"assignees\": [\n \"c24a6ea4-ce75-4665-a070-57453082c25\"\n ],\n \"duration\": 8.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"assignees\": [\n \"c24a6ea4-ce75-4665-a070-57453082c25\"\n ],\n \"duration\": 8.5\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Animation\",\n \"color\": \"#FF5733\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Animation\",\n \"color\": \"#FF5733\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Animation\",\n \"color\": \"#FF5734\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Animation\",\n \"color\": \"#FF5734\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Studio Name\",\n \"hours_by_day\": 8\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/organisations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Studio Name\",\n \"hours_by_day\": 8\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/organisations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Studio Name\",\n \"hours_by_day\": 7.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Studio Name\",\n \"hours_by_day\": 7.5\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/organisations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Approved\",\n \"color\": \"#00FF00\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/file-status/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Approved\",\n \"color\": \"#00FF00\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/file-status/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Rejected\",\n \"color\": \"#FF0000\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Rejected\",\n \"color\": \"#FF0000\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/file-status/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/softwares\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Model Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/softwares\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Model Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/softwares/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Workstation 01\",\n \"serial_number\": \"SN123456\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/hardware-items\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Workstation 01\",\n \"serial_number\": \"SN123456\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/hardware-items\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Workstation 01\",\n \"serial_number\": \"SN123457\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Workstation 01\",\n \"serial_number\": \"SN123457\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/hardware-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Model Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Model Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Model Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Model Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/output-types/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"preview_file_v001\",\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"preview_file_v001\",\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"updated_preview_file_v001\",\n \"revision\": 2\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"updated_preview_file_v001\",\n \"revision\": 2\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"work_file_v001\",\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"work_file_v001\",\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"updated_work_file_v001\",\n \"revision\": 2\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"updated_work_file_v001\",\n \"revision\": 2\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"attachment.pdf\",\n \"comment_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"attachment.pdf\",\n \"comment_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"updated_attachment.pdf\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"updated_attachment.pdf\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"object_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"Comment text\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/comments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"object_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"Comment text\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/comments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"text\": \"Updated comment text\",\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"pinned\": true,\n \"checklist\": [\n {\n \"text\": \"Item 1\",\n \"checked\": false\n }\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"text\": \"Updated comment text\",\n \"task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"pinned\": true,\n \"checklist\": [\n {\n \"text\": \"Item 1\",\n \"checked\": false\n }\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/comments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"date\": \"2024-01-15\",\n \"duration\": 8.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/time-spents/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"date\": \"2024-01-15\",\n \"duration\": 8.5\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/time-spents/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false,\n \"start_date\": \"2024-01-01\",\n \"end_date\": \"2024-01-31\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"date\": \"2024-01-16\",\n \"duration\": 7.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"date\": \"2024-01-16\",\n \"duration\": 7.5\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/time-spents/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"date\": \"2024-01-15\",\n \"end_date\": \"2024-01-20\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/day-offs/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"date\": \"2024-01-15\",\n \"end_date\": \"2024-01-20\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/day-offs/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"date\": \"2024-01-16\",\n \"end_date\": \"2024-01-21\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"date\": \"2024-01-16\",\n \"end_date\": \"2024-01-21\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/day-offs/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Custom Action Name\",\n \"url_pattern\": \"/api/actions/{id}\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/custom-actions/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Custom Action Name\",\n \"url_pattern\": \"/api/actions/{id}\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/custom-actions/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Custom Action Name\",\n \"url_pattern\": \"/api/actions/{id}\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Custom Action Name\",\n \"url_pattern\": \"/api/actions/{id}\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/custom-actions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"source_task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"target_task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"field_name\": \"ready_for\",\n \"field_value\": \"production\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/status-automations/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"source_task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"target_task_status_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"field_name\": \"ready_for\",\n \"field_value\": \"production\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/status-automations/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"field_name\": \"ready_for\",\n \"field_value\": \"approved\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"field_name\": \"ready_for\",\n \"field_value\": \"approved\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/status-automations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Instance Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Instance Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Instance Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Instance Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Playlist Name\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Playlist Name\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Playlist Name\",\n \"shots\": []\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Playlist Name\",\n \"shots\": []\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Model Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Event Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Event Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"read\": false\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/notifications/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"read\": false\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/notifications/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"read\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"read\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/notifications/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"My Filter\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"search_filter_group_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"list_type\": \"assets\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filters/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"My Filter\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"search_filter_group_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"list_type\": \"assets\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filters/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Filter Name\",\n \"list_type\": \"shots\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Filter Name\",\n \"list_type\": \"shots\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filters/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"My Filter Group\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filter-groups/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"My Filter Group\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filter-groups/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Filter Group Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Filter Group Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search-filter-groups/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"man_days\": 10.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/schedule-items/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"man_days\": 10.5\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/schedule-items/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"man_days\": 12\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"man_days\": 12\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/schedule-items/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"title\": \"Project Update\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"content\": \"News content text\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/news/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"title\": \"Project Update\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"content\": \"News content text\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/news/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"title\": \"Updated Project Update\",\n \"content\": \"Updated news content text\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"title\": \"Updated Project Update\",\n \"content\": \"Updated news content text\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/news/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Milestone Name\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"date\": \"2024-03-31\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/milestones/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Milestone Name\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"date\": \"2024-03-31\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/milestones/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Milestone Name\",\n \"date\": \"2024-04-30\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Milestone Name\",\n \"date\": \"2024-04-30\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/milestones/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Custom Field\",\n \"field_name\": \"custom_field\",\n \"data_type\": \"text\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type\": \"Asset\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/metadata-descriptors/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Custom Field\",\n \"field_name\": \"custom_field\",\n \"data_type\": \"text\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type\": \"Asset\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/metadata-descriptors/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Custom Field\",\n \"data_type\": \"number\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Custom Field\",\n \"data_type\": \"number\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/metadata-descriptors/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/subscriptions/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/subscriptions/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/subscriptions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"entity_in_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_out_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_occurences\": 1,\n \"label\": \"fixed\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-links/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"entity_in_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_out_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_occurences\": 1,\n \"label\": \"fixed\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-links/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"nb_occurences\": 2,\n \"label\": \"updated\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"nb_occurences\": 2,\n \"label\": \"updated\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entity-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"object_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_type\": \"Asset\",\n \"name\": \"Chat Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chats/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"object_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_type\": \"Asset\",\n \"name\": \"Chat Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chats/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Chat Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Chat Name\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chats/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"chat_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"Message text\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chat-messages/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"chat_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"Message text\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chat-messages/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"text\": \"Updated message text\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"text\": \"Updated message text\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/chat-messages/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"background_file_name\",\n \"is_default\": false\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-background-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"background_file_name\",\n \"is_default\": false\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-background-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"updated_background_file_name\",\n \"is_default\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"updated_background_file_name\",\n \"is_default\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Studio Name\",\n \"hours_by_day\": 8\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/studios\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Studio Name\",\n \"hours_by_day\": 8\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/studios\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Studio Name\",\n \"hours_by_day\": 7.5\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Studio Name\",\n \"hours_by_day\": 7.5\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/studios/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Model Name\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/salary-scales\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Model Name\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/salary-scales\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"rate\": 55\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"rate\": 55\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/salary-scales/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Plugin Name\",\n \"active\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Plugin Name\",\n \"active\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/plugins/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Plugin Name\",\n \"active\": false\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/plugins\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Plugin Name\",\n \"active\": false\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/plugins\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Schedule Version 1\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Schedule Version 1\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false,\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Schedule Version 1\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Schedule Version 1\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-version-task-links/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"production_schedule_version_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-version-task-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"production_schedule_version_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-version-task-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"limit\": 50,\n \"relations\": false,\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/software-licenses\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"software_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"software_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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}\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/software-licenses/{software_id}\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/hardware-items\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"hardware_item_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"hardware_item_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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}\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/departments/a24a6ea4-ce75-4665-a070-57453082c25/hardware-items/{hardware_item_id}\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/news\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/entities-linked/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"episode_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"is_shot_casting\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/playlists/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/persons.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/projects.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/tasks.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/time-spents.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/export/csv/task-types.csv\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/last\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"after\": \"2022-07-12\",\n \"before\": \"2022-07-12\",\n \"only_files\": false,\n \"cursor_event_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"limit\": 100,\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"user_login\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/events/login-logs/last\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"before\": \"2022-07-12T00:00:00\",\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"working\",\n \"description\": \"Main character model\",\n \"comment\": \"Updated lighting and materials\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"software_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1,\n \"sep\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/new\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"working\",\n \"description\": \"Main character model\",\n \"comment\": \"Updated lighting and materials\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"software_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"revision\": 1,\n \"sep\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-files/last-revisions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"working\",\n \"software_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Updated lighting\",\n \"revision\": 1,\n \"separator\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/working-file-path\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"working\",\n \"software_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Updated lighting\",\n \"revision\": 1,\n \"separator\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"working_file_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"is_sequence\": false,\n \"comment\": \"Final render\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"nb_elements\": 1,\n \"sep\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/new\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"working_file_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"is_sequence\": false,\n \"comment\": \"Final render\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"nb_elements\": 1,\n \"sep\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/next-revision\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-files/last-revisions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"output_type_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"task_type_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"file_status_id\": \"e68e0ie8-gi19-8009-e514-91897426g69\",\n \"representation\": \"cache\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"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\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"representation\": \"mp4\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"separator\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/entities/b35b7fb5-df86-5776-b181-68564193d36/output-file-path\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"separator\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/working-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"task_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"working_file_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Final render\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"nb_elements\": 1,\n \"sep\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/new\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"working_file_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Final render\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"nb_elements\": 1,\n \"sep\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/next-revision\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files/last-revisions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"output_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"task_type_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"representation\": \"mp4\",\n \"file_status_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-types/b35b7fb5-df86-5776-b181-68564193d36/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"representation\": \"mp4\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"output_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"task_type_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"file_status_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"representation\": \"cache\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"output_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"task_type_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"file_status_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"representation\": \"cache\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/asset-instances/a24a6ea4-ce75-4665-a070-57453082c25/output-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"temporal_entity_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"output_type_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"task_type_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\",\n \"file_status_id\": \"e68e0ie8-gi19-8009-e514-91897426g69\",\n \"representation\": \"cache\",\n \"name\": \"main\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"separator\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/output-file-path\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"main\",\n \"mode\": \"output\",\n \"output_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"extension\": \".mp4\",\n \"representation\": \"mp4\",\n \"revision\": 1,\n \"separator\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_path\": \"/project/asset/working/main_v001.blend\",\n \"sep\": \"/\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/guess_from_path\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"file_path\": \"/project/asset/working/main_v001.blend\",\n \"sep\": \"/\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/working-files/a24a6ea4-ce75-4665-a070-57453082c25/file\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"tree_name\": \"default\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/set-file-tree\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"tree_name\": \"default\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"comment\": \"Updated lighting and materials\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/comment\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"comment\": \"Updated lighting and materials\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/working-files/a24a6ea4-ce75-4665-a070-57453082c25/modified\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"firstname\": \"John\",\n \"lastname\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"login\": \"jdoe\",\n \"sg_status_list\": \"act\",\n \"permission_rule_set\": {\n \"name\": \"Manager\"\n },\n \"department\": {\n \"name\": \"Animation\"\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/persons\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"firstname\": \"John\",\n \"lastname\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"login\": \"jdoe\",\n \"sg_status_list\": \"act\",\n \"permission_rule_set\": {\n \"name\": \"Manager\"\n },\n \"department\": {\n \"name\": \"Animation\"\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"name\": \"My Project\",\n \"sg_status\": \"Active\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/projects\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"name\": \"My Project\",\n \"sg_status\": \"Active\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"EP01\",\n \"description\": \"First episode\",\n \"project\": {\n \"name\": \"My Project\"\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"EP01\",\n \"description\": \"First episode\",\n \"project\": {\n \"name\": \"My Project\"\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"SQ01\",\n \"description\": \"Main sequence\",\n \"project\": {\n \"name\": \"My Project\"\n },\n \"episode\": {\n \"id\": 11111\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"SQ01\",\n \"description\": \"Main sequence\",\n \"project\": {\n \"name\": \"My Project\"\n },\n \"episode\": {\n \"id\": 11111\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"SH010\",\n \"sg_cut_in\": 1001,\n \"sg_cut_duration\": 50,\n \"project\": {\n \"name\": \"My Project\"\n },\n \"sg_sequence\": {\n \"id\": 11111\n },\n \"sg_scene\": {\n \"id\": 22222\n },\n \"assets\": [\n {\n \"id\": 33333\n }\n ]\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"SH010\",\n \"sg_cut_in\": 1001,\n \"sg_cut_duration\": 50,\n \"project\": {\n \"name\": \"My Project\"\n },\n \"sg_sequence\": {\n \"id\": 11111\n },\n \"sg_scene\": {\n \"id\": 22222\n },\n \"assets\": [\n {\n \"id\": 33333\n }\n ]\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"SC01\",\n \"project\": {\n \"name\": \"My Project\"\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/scenes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"SC01\",\n \"project\": {\n \"name\": \"My Project\"\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"Asset01\",\n \"description\": \"Main character asset\",\n \"sg_asset_type\": \"Character\",\n \"project\": {\n \"id\": 11111\n },\n \"parents\": [\n {\n \"id\": 22222\n }\n ]\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"Asset01\",\n \"description\": \"Main character asset\",\n \"sg_asset_type\": \"Character\",\n \"project\": {\n \"id\": 11111\n },\n \"parents\": [\n {\n \"id\": 22222\n }\n ]\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"Animation Modeling\",\n \"short_name\": \"mod\",\n \"color\": \"255,128,0\",\n \"entity_type\": \"Asset\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/steps\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"Animation Modeling\",\n \"short_name\": \"mod\",\n \"color\": \"255,128,0\",\n \"entity_type\": \"Asset\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"name\": \"In Progress\",\n \"code\": \"IP\",\n \"bg_color\": \"255,128,0\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"name\": \"In Progress\",\n \"code\": \"IP\",\n \"bg_color\": \"255,128,0\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"cached_display_name\": \"Modeling for Asset\",\n \"start_date\": \"2024-01-15\",\n \"due_date\": \"2024-02-15\",\n \"sg_sort_order\": 1,\n \"duration\": 30,\n \"step\": {\n \"id\": 11111\n },\n \"project\": {\n \"id\": 22222\n },\n \"entity\": {\n \"id\": 33333,\n \"type\": \"Asset\"\n },\n \"sg_status_list\": \"IP\",\n \"created_by\": {\n \"id\": 44444\n },\n \"task_assignees\": [\n {\n \"id\": 55555\n }\n ]\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"cached_display_name\": \"Modeling for Asset\",\n \"start_date\": \"2024-01-15\",\n \"due_date\": \"2024-02-15\",\n \"sg_sort_order\": 1,\n \"duration\": 30,\n \"step\": {\n \"id\": 11111\n },\n \"project\": {\n \"id\": 22222\n },\n \"entity\": {\n \"id\": 33333,\n \"type\": \"Asset\"\n },\n \"sg_status_list\": \"IP\",\n \"created_by\": {\n \"id\": 44444\n },\n \"task_assignees\": [\n {\n \"id\": 55555\n }\n ]\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"code\": \"v001\",\n \"description\": \"First version\",\n \"sg_task\": {\n \"id\": 11111\n },\n \"user\": {\n \"id\": 22222\n },\n \"sg_uploaded_movie\": {\n \"url\": \"https://example.com/movie.mp4\",\n \"name\": \"movie.mp4\"\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/versions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"code\": \"v001\",\n \"description\": \"First version\",\n \"sg_task\": {\n \"id\": 11111\n },\n \"user\": {\n \"id\": 22222\n },\n \"sg_uploaded_movie\": {\n \"url\": \"https://example.com/movie.mp4\",\n \"name\": \"movie.mp4\"\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"content\": \"This is a comment\",\n \"tasks\": [\n {\n \"id\": 67890\n }\n ],\n \"user\": {\n \"id\": 11111\n },\n \"created_at\": \"2024-01-15T10:30:00Z\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/notes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"content\": \"This is a comment\",\n \"tasks\": [\n {\n \"id\": 67890\n }\n ],\n \"user\": {\n \"id\": 11111\n },\n \"created_at\": \"2024-01-15T10:30:00Z\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"error\": \"Failed to import asset\",\n \"details\": {\n \"shotgun_id\": 12345,\n \"reason\": \"Missing required field\"\n }\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/errors\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"error\": \"Failed to import asset\",\n \"details\": {\n \"shotgun_id\": 12345,\n \"reason\": \"Missing required field\"\n }\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/errors\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": 12345,\n \"project\": {\n \"id\": 11111\n },\n \"user\": {\n \"id\": 22222\n }\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/projectconnections\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": 12345,\n \"project\": {\n \"id\": 11111\n },\n \"user\": {\n \"id\": 22222\n }\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/errors/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/project\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/person\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/shot\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/scene\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/episode\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/sequence\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/asset\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/projectconnection\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/step\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/task\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/note\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": 12345\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/shotgun/remove/version\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"id\": 12345\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/persons\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"update\": false\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"update\": false\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"update\": false\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"update\": false\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/casting\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"update\": false\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/csv/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b24a6ea4-ce75-4665-a070-57453082c25/estimations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"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\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"naming_convention\": \"${project_name}_${sequence_name}-${shot_name}\",\n \"match_case\": true\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/otio/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/b24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"naming_convention\": \"${project_name}_${episode_name}-${sequence_name}-${shot_name}\",\n \"match_case\": true\n}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"This is a comment\",\n \"person_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/kitsu/comments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"object_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"text\": \"This is a comment\",\n \"person_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Asset01\",\n \"project_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/kitsu/entities\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Asset01\",\n \"project_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_type_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_in_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_out_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/kitsu/entity-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_in_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_out_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"My Project\",\n \"production_type\": \"tvshow\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/kitsu/projects\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"My Project\",\n \"production_type\": \"tvshow\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Modeling\",\n \"project_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"d24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/import/kitsu/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n {\n \"id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Modeling\",\n \"project_id\": \"b24a6ea4-ce75-4665-a070-57453082c25\",\n \"entity_id\": \"c24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"d24a6ea4-ce75-4665-a070-57453082c25\"\n }\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/status/influx\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/status/resources\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\nversion: 0.20.0\ndatabase-up: up\nevent-stream-up: up\nkey-value-store-up: up\njob-queue-up: up\nindexer-up: up"}}}}},"tags":["Index"],"x-codeSamples":[{"lang":"bash","label":"curl","source":"curl -X GET \"http://api.example.com/status.txt\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/status.txt\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/status/test-event\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/stats\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/config\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/news\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"before\": \"2022-07-12\",\n \"after\": \"2022-07-12\",\n \"page\": 1,\n \"limit\": 50,\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"only_preview\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"before\": \"2022-07-12\",\n \"after\": \"2022-07-12\",\n \"page\": 1,\n \"limit\": 50,\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"only_preview\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/news/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"date\": \"2022-07-12\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"date\": \"2022-07-12\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/desktop-login-logs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/presence-logs/2022-07\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"start_date\": \"2022-07-01\",\n \"end_date\": \"2022-07-31\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/2022-07-12\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/year/2022\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/month/all/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/week/2022/35\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/day/2022/7/12\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/month/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"count_mode\": \"weighted\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/week/2022/35\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"count_mode\": \"weighted\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/quota-shots/day/2022/7/12\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"count_mode\": \"weighted\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/time-spents/year-table/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/time-spents/month-table/2022\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/time-spents/week-table/2022\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/time-spents/day-table/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/day-offs/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/week/2022/35\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/month/2022/7\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs/year/2022\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/day-offs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/invite\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"department_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/add\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"department_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/departments/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"password\": \"newSecurePassword123\",\n \"password_2\": \"newSecurePassword123\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/change-password\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"password\": \"newSecurePassword123\",\n \"password_2\": \"newSecurePassword123\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/disable-two-factor-authentication\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/clear-avatar\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"sort_by\": \"updated_at\",\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/a24a6ea4-ce75-4665-a070-57453082c25/playlists\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/entities/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/build-jobs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/build/mp4\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"full\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/jobs/b35b7fb5-df86-5776-b181-68564193d36/build/mp4\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/download/zip\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/playlists/temp\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {\n \"sort\": true\n}\npayload = {\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"studio_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/a24a6ea4-ce75-4665-a070-57453082c25/notify-clients\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"studio_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/open\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"name\": \"My Project\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"name\": \"My Project\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"start_date\": \"2022-07-01\",\n \"end_date\": \"2022-07-31\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/day-offs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"start_date\": \"2022-07-01\",\n \"end_date\": \"2022-07-31\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/team/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"asset_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"asset_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/asset-types/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"priority\": \"None\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"priority\": \"None\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-types/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_status_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_status_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/task-status/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"status_automation_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"status_automation_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/status-automations/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"preview_background_file_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"preview_background_file_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/settings/preview-background-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"entity_type\": \"Asset\",\n \"name\": \"Custom Field\",\n \"data_type\": \"string\",\n \"for_client\": \"True\",\n \"choices\": [\n \"option1\",\n \"option2\"\n ],\n \"departments\": [\n \"department1\",\n \"department2\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"entity_type\": \"Asset\",\n \"name\": \"Custom Field\",\n \"data_type\": \"string\",\n \"for_client\": \"True\",\n \"choices\": [\n \"option1\",\n \"option2\"\n ],\n \"departments\": [\n \"department1\",\n \"department2\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Custom Field\",\n \"for_client\": \"True\",\n \"choices\": [\n \"option1\",\n \"option2\"\n ],\n \"departments\": [\n \"department1\",\n \"department2\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Custom Field\",\n \"for_client\": \"True\",\n \"choices\": [\n \"option1\",\n \"option2\"\n ],\n \"departments\": [\n \"department1\",\n \"department2\"\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"entity_type\": \"Asset\",\n \"descriptor_ids\": [\n \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"c46c8gc6-eg97-6887-c292-79675204e47\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/metadata-descriptors/reorder\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"entity_type\": \"Asset\",\n \"descriptor_ids\": [\n \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"c46c8gc6-eg97-6887-c292-79675204e47\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/milestones\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/schedule-items/b35b7fb5-df86-5776-b181-68564193d36/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"New Budget\",\n \"currency\": \"USD\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"New Budget\",\n \"currency\": \"USD\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"New Budget\",\n \"currency\": \"USD\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"New Budget\",\n \"currency\": \"USD\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"start_date\": \"2025-01-01\",\n \"months_duration\": 12,\n \"daily_salary\": 100,\n \"position\": \"Artist\",\n \"seniority\": \"Mid\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"start_date\": \"2025-01-01\",\n \"months_duration\": 12,\n \"daily_salary\": 100,\n \"position\": \"Artist\",\n \"seniority\": \"Mid\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"start_date\": \"2025-01-01\",\n \"months_duration\": 12,\n \"daily_salary\": 100,\n \"position\": \"Artist\",\n \"seniority\": \"Mid\",\n \"exceptions\": {\n \"2025-01-01\": 1000,\n \"2025-02-01\": 2000\n }\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"start_date\": \"2025-01-01\",\n \"months_duration\": 12,\n \"daily_salary\": 100,\n \"position\": \"Artist\",\n \"seniority\": \"Mid\",\n \"exceptions\": {\n \"2025-01-01\": 1000,\n \"2025-02-01\": 2000\n }\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/b35b7fb5-df86-5776-b181-68564193d36/entries/c46c8gc6-eg97-6887-c292-79675204e47\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/budgets/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/task-links\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"task_type_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"production_schedule_version_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/set-task-links-from-production-schedule-version\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"production_schedule_version_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/production-schedule-versions/a24a6ea4-ce75-4665-a070-57453082c25/apply-to-production\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"parent_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"parent_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"SH010 new name\",\n \"description\": \"Update description for the shot\",\n \"nb_frames\": 24,\n \"data\": {\n \"camera\": \"camA\",\n \"cut_in\": 1001\n }\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"SH010 new name\",\n \"description\": \"Update description for the shot\",\n \"nb_frames\": 24,\n \"data\": {\n \"camera\": \"camA\",\n \"cut_in\": 1001\n }\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/shots/a24a6ea4-ce75-4665-a070-57453082c25/versions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"shot_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"shot_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/scenes/a24a6ea4-ce75-4665-a070-57453082c25/shots/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/asset-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shot-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"SH010\",\n \"description\": \"A short description of the shot\",\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_frames\": 24\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"SH010\",\n \"description\": \"A short description of the shot\",\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_frames\": 24\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Name of scene\",\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Name of scene\",\n \"sequence_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/scenes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"SQ01\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"SQ01\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"EP01\",\n \"description\": \"A short description of the episode\",\n \"status\": \"running\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"EP01\",\n \"description\": \"A short description of the episode\",\n \"status\": \"running\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/stats\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes/retake-stats\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"count_mode\": \"weighted\",\n \"studio_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/quotas/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"count_mode\": \"weighted\",\n \"studio_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"shots\": [\n {\n \"shot_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_frames\": 24\n }\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/{project_id}/task-types/{task_type_id}/set-shot-nb-frames\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"shots\": [\n {\n \"shot_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"nb_frames\": 24\n }\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/open-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"start_date\": \"2022-07-12\",\n \"due_date\": \"2022-07-12\",\n \"priority\": 3,\n \"page\": 1,\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/open-tasks/stats\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/previews\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/tasks/a24a6ea4-ce75-4665-a070-57453082c25/full\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/related-tasks/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/a24a6ea4-ce75-4665-a070-57453082c25/done-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/comments\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/notifications\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/subscriptions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"page\": 1,\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"episode_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/persons/task-dates\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/delete-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/assign\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b24a6ea4-ce75-4665-a070-57453082c25\"\n ],\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/clear-assignation\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b24a6ea4-ce75-4665-a070-57453082c25\"\n ],\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/persons/a24a6ea4-ce75-4665-a070-57453082c25/assign\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"task_ids\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"b24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"duration\": 120\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"duration\": 120\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"duration\": 30\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2022-07-12/persons/a24a6ea4-ce75-4665-a070-57453082c25/add\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"duration\": 30\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"revision\": 1\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/add-preview\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"revision\": 1\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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=\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/comments/a24a6ea4-ce75-4665-a070-57453082c25/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": \"\"\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Please check this version\",\n \"name\": \"main\",\n \"revision\": 1,\n \"change_status\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/to-review\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"person_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"comment\": \"Please check this version\",\n \"name\": \"main\",\n \"revision\": 1,\n \"change_status\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n \"\"\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/shots/create-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n \"\"\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n \"\"\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/assets/create-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n \"\"\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n \"\"\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/edits/create-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n \"\"\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n \"\"\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/concepts/create-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n \"\"\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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/\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n \"\"\n]'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/a24a6ea4-ce75-4665-a070-57453082c25/create-tasks/Asset/\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = [\n \"\"\n]\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/playlists/preview-files/running\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"cursor_preview_file_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"limit\": 100\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/preview-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/a24a6ea4-ce75-4665-a070-57453082c25/batch-comment\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/tasks/batch-comment\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/movies/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/movies/low/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.mp4\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/attachment-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails-square/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/originals/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/download\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/previews/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/movies/tiles/preview-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/organisations/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/persons/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/projects/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/thumbnails/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.png\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/pictures/preview-background-files/a24a6ea4-ce75-4665-a070-57453082c25.hdr\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/set-main-preview\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"frame_number\": 120\n}\npayload = None\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-frame\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"frame_number\": 120\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"position\": 2\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-position\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"position\": 2\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"additions\": [\n {\n \"type\": \"drawing\",\n \"x\": 100,\n \"y\": 200\n }\n ],\n \"updates\": [\n {\n \"id\": \"uuid\",\n \"x\": 150,\n \"y\": 250\n }\n ],\n \"deletions\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/update-annotations\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"additions\": [\n {\n \"type\": \"drawing\",\n \"x\": 100,\n \"y\": 200\n }\n ],\n \"updates\": [\n {\n \"id\": \"uuid\",\n \"x\": 150,\n \"y\": 250\n }\n ],\n \"deletions\": [\n \"a24a6ea4-ce75-4665-a070-57453082c25\"\n ]\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/preview-files/a24a6ea4-ce75-4665-a070-57453082c25/extract-tile\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/context\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/assets/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/shots/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/scenes/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/open\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"name\": \"My Project\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/asset-types/b35b7fb5-df86-5776-b181-68564193d36/assets\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/sequences\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/episodes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/shots\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/scenes\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/tasks-to-check\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/done-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"My Custom Filter\",\n \"query\": \"{\\\"project_id\\\": \\\"uuid\\\"}\",\n \"list_type\": \"todo\",\n \"entity_type\": \"Asset\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"is_shared\": false,\n \"search_filter_group_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filters\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"My Custom Filter\",\n \"query\": \"{\\\"project_id\\\": \\\"uuid\\\"}\",\n \"list_type\": \"todo\",\n \"entity_type\": \"Asset\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"is_shared\": false,\n \"search_filter_group_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filters\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Filter Name\",\n \"search_query\": \"{\\\"status\\\": \\\"active\\\"}\",\n \"search_filter_group_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"is_shared\": true,\n \"project_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"department_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Filter Name\",\n \"search_query\": \"{\\\"status\\\": \\\"active\\\"}\",\n \"search_filter_group_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"is_shared\": true,\n \"project_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\",\n \"department_id\": \"d57d9hd7-fh08-7998-d403-80786315f58\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filters/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"My Filter Group\",\n \"color\": \"#FF0000\",\n \"list_type\": \"todo\",\n \"entity_type\": \"Asset\",\n \"is_shared\": false,\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"department_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filter-groups\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"My Filter Group\",\n \"color\": \"#FF0000\",\n \"list_type\": \"todo\",\n \"entity_type\": \"Asset\",\n \"is_shared\": false,\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"department_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filter-groups\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Updated Filter Group\",\n \"color\": \"#00FF00\",\n \"is_shared\": true,\n \"project_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Updated Filter Group\",\n \"color\": \"#00FF00\",\n \"is_shared\": true,\n \"project_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"department_id\": \"c46c8gc6-eg97-6887-c292-79675204e47\"\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filter-groups/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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}\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/filter-groups/{filter_group_id}\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"date\": \"2023-01-01\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/desktop-login-logs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"date\": \"2023-01-01\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/desktop-login-logs\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/time-spents\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"start_date\": \"2023-01-01\",\n \"end_date\": \"2023-12-31\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/time-spents/2023-01-01\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/time-spents/2023-01-01\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/day-offs/2023-01-01\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/notifications\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"after\": \"2023-01-01\",\n \"before\": \"2023-12-31\",\n \"task_type_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"task_status_id\": \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"type\": \"comment\",\n \"read\": false,\n \"watching\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"read\": true\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"read\": true\n}\n\nresponse = requests.put(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/notifications/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribed\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/chats\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/chats/a24a6ea4-ce75-4665-a070-57453082c25/join\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/subscribe\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/tasks/a24a6ea4-ce75-4665-a070-57453082c25/unsubscribe\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/clear-avatar\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/entities/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribed\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/user/projects/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/sequence-subscriptions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/subscribe\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/sequences/a24a6ea4-ce75-4665-a070-57453082c25/task-types/b35b7fb5-df86-5776-b181-68564193d36/unsubscribe\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/actions/user/notifications/mark-all-as-read\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Opening Sequence\",\n \"force\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/all\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Opening Sequence\",\n \"force\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"name\": \"Opening Sequence\",\n \"force\": false\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/edits/a24a6ea4-ce75-4665-a070-57453082c25/versions\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edits\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/episodes/a24a6ea4-ce75-4665-a070-57453082c25/edit-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Opening Sequence\",\n \"description\": \"Main opening sequence edit\",\n \"data\": {\n \"duration\": 120,\n \"fps\": 24\n },\n \"episode_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Opening Sequence\",\n \"description\": \"Main opening sequence edit\",\n \"data\": {\n \"duration\": 120,\n \"fps\": 24\n },\n \"episode_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/edits\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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","...":null}]},"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","...":null}]}}}}}},"400":{"description":"Bad request"}},"tags":["Search"],"x-codeSamples":[{"lang":"bash","label":"curl","source":"curl -X POST \"http://api.example.com/data/search\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"query\": \"kitsu\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"limit\": 3,\n \"offset\": 0,\n \"index_names\": [\n \"assets\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/search\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"query\": \"kitsu\",\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"limit\": 3,\n \"offset\": 0,\n \"index_names\": [\n \"assets\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\",\n \"parent_id\": \"b35b7fb5-df86-5776-b181-68564193d36\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/with-tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"project_id\": \"a24a6ea4-ce75-4665-a070-57453082c25\"\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"force\": false\n}\npayload = None\n\nresponse = requests.delete(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/task-types\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/tasks\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {\n \"relations\": true\n}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/concepts/a24a6ea4-ce75-4665-a070-57453082c25/preview-files\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Character Design\",\n \"description\": \"Main character concept art\",\n \"data\": {\n \"style\": \"realistic\",\n \"mood\": \"heroic\"\n },\n \"entity_concept_links\": [\n \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"c46c8gc6-eg97-6887-c292-79675204e47\"\n ]\n}'"},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\nparams = {}\npayload = {\n \"name\": \"Character Design\",\n \"description\": \"Main character concept art\",\n \"data\": {\n \"style\": \"realistic\",\n \"mood\": \"heroic\"\n },\n \"entity_concept_links\": [\n \"b35b7fb5-df86-5776-b181-68564193d36\",\n \"c46c8gc6-eg97-6887-c292-79675204e47\"\n ]\n}\n\nresponse = requests.post(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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\" \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Accept: application/json\""},{"lang":"python","label":"Python","source":"import requests\n\nurl = \"http://api.example.com/data/projects/a24a6ea4-ce75-4665-a070-57453082c25/concepts\"\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_TOKEN\",\n \"Accept\": \"application/json\"\n}\nparams = {}\npayload = None\n\nresponse = requests.get(\n url,\n headers=headers,\n params=params,\n json=payload\n)\n\nresponse.raise_for_status()\n\nif response.content:\n 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.\n\n```json\nAsset {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of asset\"\n },\n \"code\": {\n \"type\": \"string\",\n \"description\": \"Utility field for the pipeline to identify the asset\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Asset brief\"\n },\n \"canceled\": {\n \"type\": \"boolean\",\n \"default\": \"False\",\n \"description\": \"True if the asset has been delete one time, False otherwise\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n },\n \"entity_type_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Asset type ID\"\n },\n \"source_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Field used to set the episode_id\"\n },\n \"preview_file_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"ID of preview file used as thumbnail\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n }\n }\n}\n```"},{"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.\n\n```json\nComment {\n \"type\": \"object\",\n \"properties\": {\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n },\n \"object_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Unique ID of the commented model instance\"\n },\n \"object_type\": {\n \"type\": \"string\",\n \"description\": \"Model type of the comment model instance\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"replies\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"default\": \"[]\"\n },\n \"checklist\": {\n \"type\": \"string\",\n \"format\": \"json\"\n },\n \"pinned\": {\n \"type\": \"boolean\"\n },\n \"task_status_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Task status attached to comment\"\n },\n \"person_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"The person who publishes the comment\"\n },\n \"preview_file_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"ID of preview file used as thumbnail\"\n }\n }\n}\n```"},{"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.\n\n```json\nDepartment {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of department\"\n },\n \"color\": {\n \"type\": \"string\",\n \"description\": \"Color of department\"\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"True if the department is archived else False\"\n }\n }\n}\n```"},{"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.\n\n```json\nEvent {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of event\"\n },\n \"user_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"The user who made the action that emitted the event\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n }\n }\n}\n```"},{"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.\n\n```json\nPerson {\n \"type\": \"object\",\n \"properties\": {\n \"first_name\": {\n \"type\": \"string\"\n },\n \"last_name\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"Serve as login\"\n },\n \"phone\": {\n \"type\": \"string\"\n },\n \"active\": {\n \"type\": \"boolean\",\n \"description\": \"True if the person is still in the studio, False otherwise\"\n },\n \"last_presence\": {\n \"type\": \"string\",\n \"format\": \"date\",\n \"description\": \"Last time the person worked for the studio\"\n },\n \"password\": {\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n \"desktop_login\": {\n \"type\": \"string\",\n \"description\": \"Login used on desktop\"\n },\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n },\n \"timezone\": {\n \"type\": \"string\"\n },\n \"locale\": {\n \"type\": \"string\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"role\": {\n \"type\": \"string\",\n \"default\": \"user\"\n },\n \"has_avatar\": {\n \"type\": \"boolean\",\n \"default\": \"False\",\n \"description\": \"True if user has an avatar, False otherwise\"\n },\n \"notifications_enabled\": {\n \"type\": \"boolean\"\n },\n \"notifications_slack_enabled\": {\n \"type\": \"boolean\"\n },\n \"notifications_slack_userid\": {\n \"type\": \"string\"\n },\n \"notifications_mattermost_enabled\": {\n \"type\": \"boolean\"\n },\n \"notifications_mattermost_userid\": {\n \"type\": \"string\"\n },\n \"notifications_discord_enabled\": {\n \"type\": \"boolean\"\n },\n \"notifications_discord_userid\": {\n \"type\": \"string\"\n }\n }\n}\n```"},{"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.\n\n```json\nProject {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of project\"\n },\n \"code\": {\n \"type\": \"string\",\n \"description\": \"Utility field for the pipeline to identify the project\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Project brief\"\n },\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n },\n \"file_tree\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Templates to use to build file paths\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"project_status_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project status ID\"\n },\n \"has_avatar\": {\n \"type\": \"boolean\",\n \"default\": \"False\",\n \"description\": \"True if the project has an avatar, False otherwise\"\n },\n \"fps\": {\n \"type\": \"string\",\n \"description\": \"Frames per second\"\n },\n \"ratio\": {\n \"type\": \"string\"\n },\n \"resolution\": {\n \"type\": \"string\"\n },\n \"production_type\": {\n \"type\": \"string\",\n \"description\": \"short, featurefilm or tvshow\",\n \"default\": \"short\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"start_date\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"man_days\": {\n \"type\": \"integer\",\n \"description\": \"Estimated number of working days to complete the project\"\n },\n \"nb_episodes\": {\n \"type\": \"integer\",\n \"default\": \"0\"\n },\n \"episode_span\": {\n \"type\": \"integer\",\n \"default\": \"0\"\n },\n \"max_retakes\": {\n \"type\": \"integer\",\n \"default\": \"0\"\n },\n \"is_clients_isolated\": {\n \"type\": \"boolean\",\n \"default\": \"False\",\n \"description\": \"True if the clients are isolated from the project, False otherwise\"\n }\n }\n}\n```"},{"name":"Search","description":"Search functionality across all production data.\n\n```json\nSearchFilter {\n \"type\": \"object\",\n \"properties\": {\n \"list_type\": {\n \"type\": \"string\",\n \"description\": \"Type of list\"\n },\n \"entity_type\": {\n \"type\": \"string\",\n \"description\": \"Type of entity\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of search filter\"\n },\n \"search_query\": {\n \"type\": \"string\"\n },\n \"person_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Person ID\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n }\n }\n}\n```"},{"name":"Shots","description":"Shot management, sequences, and episodes.\n\n```json\nShot {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of shot\"\n },\n \"code\": {\n \"type\": \"string\",\n \"description\": \"Utility field for the pipeline to identify the shot\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Shot brief\"\n },\n \"canceled\": {\n \"type\": \"boolean\",\n \"default\": \"False\",\n \"description\": \"True if the shot has been delete one time, False otherwise\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n },\n \"parent_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Episode ID\"\n },\n \"entity_type_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Shot type ID\"\n },\n \"source_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Field used to set the episode_id\"\n },\n \"preview_file_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"ID of preview file used as thumbnail\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n }\n }\n}\n```"},{"name":"Tasks","description":"Task management, assignments, and progress tracking.\n\n```json\nTask {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of task\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Task brief\"\n },\n \"priority\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Priority of task\"\n },\n \"duration\": {\n \"type\": \"float\",\n \"default\": \"0\",\n \"description\": \"Duration of task\"\n },\n \"estimation\": {\n \"type\": \"float\",\n \"default\": \"0\",\n \"description\": \"Estimation of duration of task\"\n },\n \"completion_rate\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Completion rate of task\"\n },\n \"retake_count\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Retake count of task\"\n },\n \"sort_order\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Sort order of task\"\n },\n \"start_date\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"due_date\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"real_start_date\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"end_date\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"last_comment_date\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"nb_assets_ready\": {\n \"type\": \"integer\",\n \"default\": \"0\",\n \"description\": \"Number of assets ready\"\n },\n \"data\": {\n \"type\": \"string\",\n \"format\": \"json\",\n \"description\": \"Free JSON field to add metadata\"\n },\n \"shotgun_id\": {\n \"type\": \"integer\",\n \"description\": \"Used for synchronization with a Shotgun instance\"\n },\n \"project_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Project ID\"\n },\n \"task_type_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Task type ID\"\n },\n \"task_status_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Task status ID\"\n },\n \"entity_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Entity ID\"\n },\n \"assigner_id\": {\n \"type\": \"string\",\n \"format\": \"UUID\",\n \"description\": \"Person ID\"\n }\n }\n}\n```"},{"name":"User","description":"User-specific data and personal workspace management"}]}