{"openapi":"3.1.0","info":{"title":"AISTLabs Agent API","description":"REST is the source of truth; MCP exposes the same actions as tools. Guides: https://aistlabs.ai/docs/index.md. Authenticate with `Authorization: Bearer <API key or OAuth access token>`. Errors: `{\"error\": {code, message, action, docs}}`.","version":"1.0","schemaVersion":"2026-09-05","limits":{"brainPatchFields":30,"brainTextChars":2000,"brainItemChars":300,"brainBodyBytes":65536,"uploadFileBytes":125829120,"winnerVideoBytes":209715200,"connectRequestMinutes":60,"accessTokenMinutes":60,"pageSizeMax":200,"mediaPageSizeMax":100,"mediaUrlTtlSeconds":21600,"viewMediaMaxItems":8,"viewMediaMaxEdge":1600,"viewMediaMaxBytes":1000000}},"servers":[{"url":"https://aistlabs.ai"}],"paths":{"/api/v1/studio/models":{"get":{"tags":["agent"],"summary":"Available direct media models and projects","operationId":"studio_models_api_v1_studio_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioCatalogOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/studio/voices":{"get":{"tags":["agent"],"summary":"Voices for an audio model's voice setting","operationId":"studio_voices_api_v1_studio_voices_get","parameters":[{"name":"modelId","in":"query","required":true,"schema":{"type":"string","maxLength":64,"description":"A speech model whose controls include a voice setting (list_studio_models).","title":"Modelid"},"description":"A speech model whose controls include a voice setting (list_studio_models)."},{"name":"source","in":"query","required":false,"schema":{"enum":["standard","library"],"type":"string","description":"standard: the model's voice list; library: search a larger voice library (only when an earlier answer had librarySearch true).","default":"standard","title":"Source"},"description":"standard: the model's voice list; library: search a larger voice library (only when an earlier answer had librarySearch true)."},{"name":"gender","in":"query","required":false,"schema":{"anyOf":[{"enum":["male","female","neutral"],"type":"string"},{"type":"null"}],"description":"Filter: the voice's gender.","title":"Gender"},"description":"Filter: the voice's gender."},{"name":"age","in":"query","required":false,"schema":{"anyOf":[{"enum":["young","middle_aged","old"],"type":"string"},{"type":"null"}],"description":"Library search: the voice's age.","title":"Age"},"description":"Library search: the voice's age."},{"name":"accent","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"description":"Library search: an accent such as american or british.","title":"Accent"},"description":"Library search: an accent such as american or british."},{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"Filter: a language code such as en or es.","title":"Language"},"description":"Filter: a language code such as en or es."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Filter: words about the voice's name, tone or use.","title":"Search"},"description":"Filter: words about the voice's name, tone or use."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"Library search page, from 0.","default":0,"title":"Page"},"description":"Library search page, from 0."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioVoicesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/studio/generations/quote":{"post":{"tags":["agent"],"summary":"Quote direct media generation without spending","operationId":"quote_studio_generation_api_v1_studio_generations_quote_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericStudioQuoteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericStudioQuoteOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/generations":{"post":{"tags":["agent"],"summary":"Start confirmed direct media generation","operationId":"start_studio_generation_api_v1_studio_generations_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Required unique key per connection for this confirmed generation. The key remains bound to the durable job after response cache expiry. Retry the unchanged JSON body to recover the same generation; another body gives 409 idempotency_conflict. Poll the returned generationId for current status; do not change keys to recover a timeout.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericStudioStartIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioGenerationOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}},"get":{"tags":["agent"],"summary":"Find saved Studio generations","operationId":"list_studio_generations_api_v1_studio_generations_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":256},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"projectId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid"}},{"name":"brandId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"}},{"name":"mediaType","in":"query","required":false,"schema":{"anyOf":[{"enum":["image","video","audio"],"type":"string"},{"type":"null"}],"title":"Mediatype"}},{"name":"modelId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}],"title":"Modelid"}},{"name":"createdAfter","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Inclusive creation time, with timezone.","title":"Createdafter"},"description":"Inclusive creation time, with timezone."},{"name":"createdBefore","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Exclusive creation time, with timezone.","title":"Createdbefore"},"description":"Exclusive creation time, with timezone."},{"name":"liked","in":"query","required":false,"schema":{"type":"boolean","description":"Only favourites; a generation matches if a live output is a favourite.","default":false,"title":"Liked"},"description":"Only favourites; a generation matches if a live output is a favourite."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioGenerationsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/studio/generations/{generation_id}":{"get":{"tags":["agent"],"summary":"Read saved direct media generation status and results","operationId":"get_studio_generation_api_v1_studio_generations__generation_id__get","parameters":[{"name":"generation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Generation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioGenerationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/assets/import":{"post":{"tags":["agent"],"summary":"Reuse an authorized product photo in a studio project","operationId":"import_studio_asset_api_v1_studio_assets_import_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioImportIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioAssetOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/assets/import-url":{"post":{"tags":["agent"],"summary":"Save a public image straight into a studio project","operationId":"import_studio_url_api_v1_studio_assets_import_url_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioUrlImportIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioAssetOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/uploads":{"post":{"tags":["agent"],"summary":"One-time link to upload images straight into a studio project","description":"The page or `curl -T` sends the images; confirm with GET /studio/uploads/{uploadId}.","operationId":"create_studio_upload_api_v1_studio_uploads_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioUploadIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioUploadOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/uploads/{upload_id}":{"get":{"tags":["agent"],"summary":"Studio upload link status and its assets","operationId":"get_studio_upload_api_v1_studio_uploads__upload_id__get","parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Upload Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentStudioUploadStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/multiplier/packs":{"post":{"tags":["agent"],"summary":"Start an Ad Multiplier pack from a studio video","description":"Measures the video and lists what it shows, in the background and without a charge.\nThe same live video returns the same pack. Poll GET /multiplier/packs/{packId}.","operationId":"create_multiplier_pack_api_v1_multiplier_packs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}},"get":{"tags":["agent"],"summary":"Recent Ad Multiplier packs","operationId":"list_multiplier_packs_api_v1_multiplier_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/multiplier/packs/{pack_id}":{"get":{"tags":["agent"],"summary":"Read an Ad Multiplier pack","operationId":"get_multiplier_pack_api_v1_multiplier_packs__pack_id__get","parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Pack Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/multiplier/packs/{pack_id}/plan":{"put":{"tags":["agent"],"summary":"Set the approved Ad Multiplier plan","description":"Replaces the plan; the platform checks it against the inventory and derives\ntags, speakers, whole-frame changes, kept products and voice swaps.","operationId":"set_multiplier_plan_api_v1_multiplier_packs__pack_id__plan_put","parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Pack Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/multiplier/packs/{pack_id}/references":{"post":{"tags":["agent"],"summary":"Generate a reference image for a planned change","description":"Paid: expectedCredits must equal the pack's price. Poll get_multiplier_pack;\na ready reference carries its image.","operationId":"create_multiplier_reference_api_v1_multiplier_packs__pack_id__references_post","parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Pack Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierReferenceIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierReferenceOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/multiplier/packs/{pack_id}/generate":{"post":{"tags":["agent"],"summary":"Make every variant of the saved Ad Multiplier plan","description":"Paid: expectedCredits must equal prices.pack for the chosen resolution. Every\nchange needs its reference first. Poll get_multiplier_pack for the variants.","operationId":"generate_multiplier_pack_api_v1_multiplier_packs__pack_id__generate_post","parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Pack Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierGenerateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/virality/jobs":{"post":{"tags":["agent"],"summary":"Start a Virality job from a studio video","description":"Paid analysis at expectedCredits; the same live video returns the same job.\nPoll GET /virality/jobs/{jobId}.","operationId":"create_virality_job_api_v1_virality_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViralityJobOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}},"get":{"tags":["agent"],"summary":"Recent Virality jobs","operationId":"list_virality_jobs_api_v1_virality_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierPackListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/virality/jobs/{job_id}":{"get":{"tags":["agent"],"summary":"Read a Virality job","operationId":"get_virality_job_api_v1_virality_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViralityJobOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/virality/jobs/{job_id}/swaps":{"put":{"tags":["agent"],"summary":"Set the approved Virality swaps","description":"Replaces the swaps; the platform checks them against the inventory. No charge.","operationId":"set_virality_swaps_api_v1_virality_jobs__job_id__swaps_put","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViralityPlanIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViralityJobOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/virality/jobs/{job_id}/references":{"post":{"tags":["agent"],"summary":"Generate a reference image for a swap","description":"Paid: expectedCredits must equal the job's price. Poll get_virality_job.","operationId":"generate_virality_reference_api_v1_virality_jobs__job_id__references_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierReferenceIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierReferenceOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/virality/jobs/{job_id}/generate":{"post":{"tags":["agent"],"summary":"Make the Virality video","description":"Paid: expectedCredits must equal prices.pack for the chosen resolution.","operationId":"generate_virality_job_api_v1_virality_jobs__job_id__generate_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiplierGenerateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViralityJobOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/quote":{"post":{"tags":["agent"],"summary":"Estimate a video without spending","description":"Price check for a video before creating it, with exactly the POST /api/v1/content body.\nRead-only: creates no order or approval and charges nothing. `estimatedCredits` is the\nexpected charge; `admissionCredits` is what the balance and budget checks require to start.\n`planRequired` true means create would be refused until the owner chooses a plan\n(`plansUrl`) or a promo code is applied.","operationId":"quote_content_api_v1_content_quote_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentQuoteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentQuoteOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/docs/{topic}":{"get":{"tags":["agent"],"summary":"Read embedded agent documentation","operationId":"get_docs_api_v1_docs__topic__get","parameters":[{"name":"topic","in":"path","required":true,"schema":{"type":"string","title":"Topic"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/me":{"get":{"tags":["agent"],"summary":"Who am I","description":"Connection, company, current brand, capabilities, limits, usage and\nthe next recommended action. Call it first.","operationId":"me_api_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/promo":{"get":{"tags":["agent"],"summary":"Account promo trial and balance","description":"Account-wide promo attribution, remaining bonus, expiry and download access.\nNo brand ID is required. Reading this does not activate a promo code.","operationId":"promo_status_api_v1_promo_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/promo/preview":{"post":{"tags":["agent"],"summary":"Preview a promo code","description":"Show the owner the credits and duration before activation. This read does\nnot reserve an activation; Apply validates the code and limits again.","operationId":"preview_promo_api_v1_promo_preview_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCodeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoPreviewOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/promo/apply":{"post":{"tags":["agent"],"summary":"Activate a promo trial","description":"Apply an owner-provided code without a card, payment or Stripe subscription.\nPass termsVersion from preview to detect changed terms. Only one welcome\nbonus is allowed per account across all brands and agent connections.\nRepeating the same code is safe without an Idempotency-Key: it cannot grant twice.\nDownload existing videos separately; activation never renders or charges them again.","operationId":"apply_promo_api_v1_promo_apply_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoActivateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoActivationOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/last-activity":{"get":{"tags":["agent"],"summary":"What happened last time — call this first","description":"The last actions on this account — by people in the console (`via: ui`)\nand by agents through the API (`via: api`) — plus `resume`: the latest\naccessible Studio work or unfinished brand video and its `nextAction`. Call it at the start of\nevery session before doing anything else.","operationId":"last_activity_api_v1_last_activity_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LastActivityOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/spend":{"get":{"tags":["agent"],"summary":"Budget and usage","description":"Includes this connection's charged operations for the current UTC month.\n\nOperations are listed in credits. An empty operations list means nothing\nwas charged to this connection; only the AISTLabs credit ledger is included.","operationId":"spend_api_v1_spend_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpendOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/activity":{"get":{"tags":["agent"],"summary":"Audit trail","operationId":"activity_api_v1_activity_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityOut"},"title":"Response Activity Api V1 Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/brands":{"get":{"tags":["agent"],"summary":"Your brands","description":"Every brand of the account, across companies. Pick a `brandId` and pass\nit explicitly to every brand call — there is no implicit current brand.","operationId":"list_brands_api_v1_brands_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BrandListItemOut"},"title":"Response List Brands Api V1 Brands Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}},"post":{"tags":["agent"],"summary":"Create a brand","description":"Name and website are optional. With neither you get an empty brand (named: false,\nshown as \"Your brand\", no scan); if the account already has one, it is returned. It can\nmake a video right away: follow `nextAction`. A website, Instagram or extra sources start\nthe Brand Brain scan in the background; it counts towards your budget (the first brand's\nscan on a new account is free; see freeAllowances.brandScan in /me). You don't need to wait\nfor it before the first video.","operationId":"create_brand_api_v1_brands_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/brands/{brand_id}":{"get":{"tags":["agent"],"summary":"Brand","description":"Name (named: false while unnamed), status, Brand Brain readiness, signals, sources,\nproducts, taste and `nextAction`.","operationId":"get_brand_api_v1_brands__brand_id__get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["agent"],"summary":"Update brand settings","operationId":"patch_brand_api_v1_brands__brand_id__patch","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandPatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/sources":{"post":{"tags":["agent"],"summary":"Add sources and rescan","description":"Add sources and scan the brand again (rescan: false only saves them). The first brand\nscan on a new account is free (freeAllowances.brandScan in /me); otherwise it counts\ntowards your budget. Call after the user agrees.","operationId":"add_sources_api_v1_brands__brand_id__sources_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourcesIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/brain":{"get":{"tags":["agent"],"summary":"Full Brand Brain","description":"Every section and fact with its type, hint and options. `value: null`\nmarks a gap worth filling.","operationId":"get_brain_api_v1_brands__brand_id__brain_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["agent"],"summary":"Set Brand Brain facts directly","description":"Write facts by section and field — the keys, types, options and hints\nare the ones `GET /brands/{brandId}/brain` returns. `{\"voice\": {\"tone\":\n\"warm, direct\"}, \"business\": {\"product_type\": \"physical\"}}`. Enum fields\ntake one of their `options`; list fields take an array or a\ncomma-separated string; record fields take objects with the `subfields`\nkeys. Your facts count as the owner's word: they override interview and\nchat answers, and a later scan cannot overwrite them. Limits: 30 fields\nper request, 2000 characters per text, 300 per list item, 64 KB body.\nReturns updated/skipped keys, skippedReasons (same_value), and the full\nbrain. Omitted fields and null keep the existing value; use POST\n/brands/{brandId}/brain/clear to forget it. Separate PATCH requests are\nindependent; successful writing does not complete onboarding.","operationId":"set_brain_api_v1_brands__brand_id__brain_patch","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainPatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainSetOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/brain/update":{"post":{"tags":["agent"],"summary":"Tell the brand agent what changed","description":"Plain language in, facts filed into Brand Brain out. Use it to add\ncontext the scan could not see: priorities, bans, corrections.","operationId":"update_brain_api_v1_brands__brand_id__brain_update_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainUpdateOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/brain/clear":{"post":{"tags":["agent"],"summary":"Explicitly forget Brand Brain fields","description":"Forget up to 30 registry paths, including their alternatives. Requires\nbrand_brain. Returns cleared keys, skipped keys (already empty), and the\nfull brain. One snapshot for all changes; an entirely empty result adds\nno snapshot. An unknown path rejects the whole request with HTTP 422.","operationId":"clear_brain_api_v1_brands__brand_id__brain_clear_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainClearIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrainClearOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/taste/library":{"get":{"tags":["agent"],"summary":"Taste library — reference images to choose from","description":"The curated library the brand's visual taste is built from. Show the\nuser options by `styleSummary` — one line of style per image — and let them\nchoose; `thumbUrl` is a direct image URL when the library is public,\notherwise null. With `direction`, only the styles a Create order of that\ndirection accepts as `stylePhotoId`.","operationId":"list_taste_library_api_v1_taste_library_get","parameters":[{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"enum":["cinematic","ugc","motion","surreal_vfx","studio","animation","viral"],"type":"string"},{"type":"null"}],"description":"Only styles that POST /api/v1/content accepts as stylePhotoId for this direction (an id from GET /api/v1/create/options).","title":"Direction"},"description":"Only styles that POST /api/v1/content accepts as stylePhotoId for this direction (an id from GET /api/v1/create/options)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TastePhotoOut"},"title":"Response List Taste Library Api V1 Taste Library Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/brands/{brand_id}/taste/suggest":{"post":{"tags":["agent"],"summary":"Suggest taste references for a brand","description":"AISTLabs picks up to `count` (default and maximum 10) diverse references\nfor the brand from Brand Brain — no more than two per category. Costs\nabout 2 credits and counts towards your budget (free on a new account's first\nbrand); an empty library is free. Call it\nafter the user agrees; show the returned images and pass the `ids` they\naccept to `PATCH /brands/{brandId}/taste`.","operationId":"suggest_taste_api_v1_brands__brand_id__taste_suggest_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasteSuggestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasteSuggestionsOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/taste":{"patch":{"tags":["agent"],"summary":"Set the brand's taste references","description":"1–10 image ids from the library, in order of priority; every id must\nexist (422 `unknown_reference` lists the strangers). The brand becomes\n`ready`; the owner can re-pick on `taste.humanUrl` at any time and the\nnew set applies to the next content pieces.","operationId":"set_taste_api_v1_brands__brand_id__taste_patch","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasteSetIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"get":{"tags":["agent"],"summary":"Selected taste images","operationId":"get_taste_api_v1_brands__brand_id__taste_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasteOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/files":{"get":{"tags":["agent"],"summary":"Brand media gallery","description":"Stable gallery: products' main photos and the brand's saved files.\nPrivate links expire; reading the mediaId again renews access.","operationId":"list_brand_files_api_v1_brands__brand_id__files_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"enum":["logo","brand_reference","product_image","brandbook","homepage_screenshot"],"type":"string"},{"type":"null"}],"title":"Role"}},{"name":"productId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaPageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["agent"],"summary":"Upload brand files","description":"Multipart, REST only. Documents are read automatically as a brand book.\n`role` keeps the file's purpose; `slot=logo` and `slot=visual` are older aliases.\n`productId` attaches product angles. The response is MediaOut with the older FileOut\nfields. Without multipart (MCP, chat, CLI) use POST /brands/{brandId}/uploads or\nPOST /brands/{brandId}/files/import.","operationId":"upload_files_api_v1_brands__brand_id__files_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_files_api_v1_brands__brand_id__files_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileOut"},"title":"Response Upload Files Api V1 Brands  Brand Id  Files Post"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"}}}},"/api/v1/media/{media_id}":{"get":{"tags":["agent"],"summary":"Read media and renew its URL","operationId":"get_media_api_v1_media__media_id__get","parameters":[{"name":"media_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Media Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/media/{media_id}/content":{"get":{"tags":["agent"],"summary":"Download media with the same Bearer token","description":"Download without secrets in the URL, with the same Bearer as the metadata.\n\nUse contentUrl when your environment blocks signed query parameters.\nvariant=preview returns a bounded WebP preview; Range applies to the\nchosen variant. The response is not cached: private, no-store.","operationId":"get_media_content_api_v1_media__media_id__content_get","parameters":[{"name":"media_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Media Id"}},{"name":"variant","in":"query","required":false,"schema":{"enum":["original","preview"],"type":"string","default":"original","title":"Variant"}},{"name":"Range","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"The whole file with its saved Content-Type, or image/webp for a preview","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"206":{"description":"One byte range with Content-Range and Content-Length","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"No such file, or it belongs to another account"},"413":{"description":"Over the byte limit of one download or of a preview source"},"415":{"description":"The file cannot be decoded as an image for a preview"},"416":{"description":"Malformed or unsatisfiable range"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/brands/{brand_id}/products/{product_id}/media":{"get":{"tags":["agent"],"summary":"Product main image and angles","operationId":"get_product_media_api_v1_brands__brand_id__products__product_id__media_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MediaOut"},"title":"Response Get Product Media Api V1 Brands  Brand Id  Products  Product Id  Media Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/files/import":{"post":{"tags":["agent"],"summary":"Import a brand file from a public link","description":"AISTLabs downloads the file itself: a direct link to an image (logo,\nvisual, product photo — PNG, JPEG, WebP) or a document (brand book). The\nlink must be public: private and internal addresses are refused with 422\n`url_not_allowed`; other download failures and a link that opens a web\npage (a share viewer, a sign-in page) instead of the file — with 422\n`url_fetch_failed`; oversize with 413 and a type that does not fit `role`\n(or bytes that don't match a PDF/DOCX name) with 415. HTML is accepted\nas a brand book only from a `.html`/`.htm` address. `sourceUrl` keeps the\naddress without its query. A brand book is read automatically. For a\nwhole website use POST /brands/{brandId}/sources.","operationId":"import_brand_files_api_v1_brands__brand_id__files_import_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileImportIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadedFilesOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"}}}},"/api/v1/brands/{brand_id}/uploads":{"post":{"tags":["agent"],"summary":"Create a one-time upload link","description":"A link for one upload of up to 10 files (one for a logo), valid for 30\nminutes. Give the user `pageUrl` to drop the files in AISTLabs, or upload\nfrom disk with `curl -T <file> '<uploadUrl>?name=<file name>'` (no\nAuthorization — the link is the permission; `?name=` is the URL-encoded\nfile name to save). `productId` is required for `product_image`. Then\nconfirm with GET /uploads/{uploadId}.","operationId":"create_upload_api_v1_brands__brand_id__uploads_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadCreatedOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/uploads/{upload_id}":{"get":{"tags":["agent"],"summary":"Upload link status","description":"`pending` — nothing uploaded yet, `done` — `files` arrived, `expired` —\ncreate a new link.","operationId":"get_upload_api_v1_uploads__upload_id__get","parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Upload Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/products":{"get":{"tags":["agent"],"summary":"Products","operationId":"list_products_api_v1_brands__brand_id__products_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductOut"},"title":"Response List Products Api V1 Brands  Brand Id  Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["agent"],"summary":"Add a product","operationId":"create_product_api_v1_brands__brand_id__products_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/products/{product_id}":{"patch":{"tags":["agent"],"summary":"Edit a product","operationId":"patch_product_api_v1_brands__brand_id__products__product_id__patch","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content":{"get":{"tags":["agent"],"summary":"Content pieces of a brand","operationId":"list_content_api_v1_content_get","parameters":[{"name":"brandId","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Brandid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContentOut"},"title":"Response List Content Api V1 Content Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}},"post":{"tags":["agent"],"summary":"Create a video from a Fast brief","description":"Fast brief (direction, duration, aspect ratio, language, quality, optional\nbrief and style). Spends credits: agree the brief and the cost with the user\nfirst. One call writes the story and renders the video; poll until\nnextAction=done. Budget covers story and render up front.","operationId":"create_content_api_v1_content_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/create/options":{"get":{"tags":["agent"],"summary":"Fast brief options — directions and allowed format values","description":"Everything POST /api/v1/content accepts: active directions, durations,\naspect ratios, languages and video qualities.","operationId":"get_create_options_api_v1_create_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOptionsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/content/{content_id}":{"get":{"tags":["agent"],"summary":"Content piece","operationId":"get_content_api_v1_content__content_id__get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/wait":{"get":{"tags":["agent"],"summary":"Wait Content","operationId":"wait_content_api_v1_content__content_id__wait_get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"timeoutSeconds","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":0,"default":30,"title":"Timeoutseconds"}},{"name":"sinceVersion","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Sinceversion"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/trace":{"get":{"tags":["agent"],"summary":"Production stages, queue waits and recorded calls","description":"Read-only trace for owned content, including console-created runs.\n\nCompleted checkpoints contain stage names/timings, never artifacts.\nCalls show their step, kind of work, duration and outcome. Missing legacy\ntimes are null; knownQueueWaitMs is a lower bound when queueTimingComplete\nis false. The newest `limit` calls/jobs are returned chronologically with\nexplicit truncation flags. This read never starts or retries work.","operationId":"get_content_trace_api_v1_content__content_id__trace_get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentTraceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/concepts/retry":{"post":{"tags":["agent"],"summary":"Retired: a failed story is not retried (409)","operationId":"retry_concepts_api_v1_content__content_id__concepts_retry_post","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/production":{"post":{"tags":["agent"],"summary":"Legacy: render a saved story","description":"Legacy: POST /api/v1/content writes the story and renders the video by itself.\nCall this only when nextAction is start_production or retry_production: it\nrenders the saved story again. The story is already paid, so only the render\nis charged; a new POST /api/v1/content would write and charge a second story.\nGET /content/{content_id} shows the render cost in `estimatedRenderCredits` at\n`renderQuality`; an order that fixed its resolution renders at it whatever\n`quality` says, and the budget and approval use that resolution too.\nA Performance Ads take returns 409: its batch renders and retries it.\nThe first video of the account is free and never uses the budget.\nPaid renders respect the connection's limits; above them the call\nreturns 409 `approval_required` with a link for the account owner.\nHTTP 202 accepts the request; it does not mean the video is ready.\nPoll GET /content/{content_id}/production at `job.pollAfterSeconds`\nuntil `production.job.status` is `done` or `failed`.","operationId":"start_production_api_v1_content__content_id__production_post","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartProductionIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"get":{"tags":["agent"],"summary":"Production status","description":"Syncs with the render provider. When `production.status` is `ready`,\n`videoUrl` and `coverUrl` are signed, time-limited links.\n`production.job` has the stable attempt ID and canonical polling state.","operationId":"get_production_api_v1_content__content_id__production_get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/download":{"post":{"tags":["agent"],"summary":"Download an existing video without another charge","description":"Verify ownership and download access, record the download request and return\na signed videoUrl. Fetch that URL to save the bytes. Existing videos remain\ndownloadable after the promo bonus expires or is spent. This never renders\nor charges credits; repeat it for a fresh link when the signed URL expires.","operationId":"download_video_api_v1_content__content_id__download_post","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoDownloadOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/approvals":{"get":{"tags":["agent"],"summary":"Approvals","operationId":"list_approvals_api_v1_approvals_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApprovalOut"},"title":"Response List Approvals Api V1 Approvals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/approvals/{approval_id}":{"get":{"tags":["agent"],"summary":"Approval status","description":"Poll until `status` is `approved`, then retry the original call with `approvalId`.","operationId":"get_approval_api_v1_approvals__approval_id__get","parameters":[{"name":"approval_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Approval Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/webhooks":{"get":{"tags":["agent"],"summary":"Webhooks","operationId":"list_webhooks_api_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookOut"},"title":"Response List Webhooks Api V1 Webhooks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}},"post":{"tags":["agent"],"summary":"Register a webhook","description":"Signed with HMAC-SHA256 (`X-AIST-Signature`); the secret is returned once.","operationId":"create_webhook_api_v1_webhooks_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/webhooks/{webhook_id}":{"delete":{"tags":["agent"],"summary":"Delete a webhook","operationId":"delete_webhook_api_v1_webhooks__webhook_id__delete","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/scans":{"post":{"tags":["agent"],"summary":"Scan competitors","operationId":"create_performance_scan_api_v1_brands__brand_id__performance_scans_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceScanCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceScanOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/scans/{scan_id}":{"get":{"tags":["agent"],"summary":"Competitor scan","operationId":"get_performance_scan_api_v1_brands__brand_id__performance_scans__scan_id__get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"scan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Scan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceScanOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/scans/{scan_id}/meta":{"post":{"tags":["agent"],"summary":"Collect competitors' ads","description":"Queues the collection of approved competitors' ads from the Meta Ad\nLibrary. 202 means the job was accepted, not finished: poll\n`GET /brands/{brandId}/performance/scans/{scanId}` and read `job`\n(`status`, `stage`, `pollAfterSeconds`) until it is `done` or `failed`.\nRepeating the call while the job runs acknowledges it instead of\nstarting a second one.","operationId":"start_meta_scan_api_v1_brands__brand_id__performance_scans__scan_id__meta_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"scan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Scan Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceScanOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/winners":{"post":{"tags":["agent"],"summary":"Upload your best-performing creative","description":"Multipart MP4/MOV/WebM. Becomes a private winner that can be analyzed\ninto an exact pattern before product/reference preflight and generation.","operationId":"upload_winner_api_v1_brands__brand_id__performance_winners_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_winner_api_v1_brands__brand_id__performance_winners_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceScanOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/scans/{scan_id}/batches":{"post":{"tags":["agent"],"summary":"Analyze one winner video","description":"HTTP 202 accepts analysis; it does not mean analysis or videos are done.\nPoll GET /brands/{brand_id}/performance/batches/{batch_id} at\n`job.pollAfterSeconds`. Analysis `job.status=done` means the pattern is\navailable; follow `nextAction` to supply references or start generation.","operationId":"create_performance_batch_api_v1_brands__brand_id__performance_scans__scan_id__batches_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"scan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Scan Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchCreate"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/batches":{"get":{"tags":["agent"],"summary":"Batches","operationId":"list_performance_batches_api_v1_brands__brand_id__performance_batches_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBatchOut"},"title":"Response List Performance Batches Api V1 Brands  Brand Id  Performance Batches Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/batches/{batch_id}":{"get":{"tags":["agent"],"summary":"Batch","operationId":"get_performance_batch_api_v1_brands__brand_id__performance_batches__batch_id__get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["agent"],"summary":"Supply winner adaptation inputs","description":"Use product IDs from /brand/products and media IDs returned by\n/brands/{brandId}/files. Optional requirements may be explicitly skipped.","operationId":"patch_performance_batch_api_v1_brands__brand_id__performance_batches__batch_id__patch","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/batches/{batch_id}/sync":{"post":{"tags":["agent"],"summary":"Refresh accepted winner renders","description":"Poll only. Never creates or resubmits a paid render.","operationId":"sync_performance_batch_api_v1_brands__brand_id__performance_batches__batch_id__sync_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/batches/{batch_id}/generate":{"post":{"tags":["agent"],"summary":"Direct and render a winner batch","description":"Call when nextAction is start_generation or retry_generation.\nHTTP 202 accepts work; it does not mean renders are complete. Poll the\nbatch GET or POST /sync at `job.pollAfterSeconds` until `job.status` is\n`done` or `failed`; partial failure includes successful `resultIds`.","operationId":"generate_performance_batch_api_v1_brands__brand_id__performance_batches__batch_id__generate_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceGenerateIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brands/{brand_id}/performance/batches/{batch_id}/retry-analysis":{"post":{"tags":["agent"],"summary":"Retry winner analysis","description":"HTTP 202 accepts the retry; it does not mean analysis is done.\nPoll the batch GET at `job.pollAfterSeconds` and follow `nextAction`.","operationId":"retry_performance_analysis_api_v1_brands__brand_id__performance_batches__batch_id__retry_analysis_post","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}},{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Batch Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceBatchOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/content/{content_id}/story":{"post":{"tags":["agent"],"summary":"Retired: a saved story is not rewritten (409)","operationId":"story_action_api_v1_content__content_id__story_post","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Content Id"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoryActionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brief-drafts/{draft_id}":{"get":{"tags":["agent"],"summary":"A brief saved in AISTLabs","description":"What the draft holds, what it still needs and what submitting it would cost.\nRead-only: never submits, charges or starts generation.","operationId":"get_brief_draft_api_v1_brief_drafts__draft_id__get","parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Draft Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefDraftOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/brief-drafts/{draft_id}/submit":{"post":{"tags":["agent"],"summary":"Start the video from a saved brief","description":"Same as the owner's Generate button: the draft's brief, products, chosen images and\nstyle go into the order. Spends credits like create_content (the account's first video\nis free). One video per draft: a submitted draft answers with its video.","operationId":"submit_brief_draft_api_v1_brief_drafts__draft_id__submit_post","parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Draft Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefDraftSubmitIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/projects":{"get":{"tags":["agent"],"summary":"List authorized Studio projects","operationId":"list_projects_api_v1_studio_projects_get","parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workspaceid"}},{"name":"brandId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"}},{"name":"pinned","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Pinned"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectOut"},"title":"Response List Projects Api V1 Studio Projects Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}},"post":{"tags":["agent"],"summary":"Create a Studio project without spending credits","operationId":"create_project_api_v1_studio_projects_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/projects/{project_id}":{"patch":{"tags":["agent"],"summary":"Update project name, brand, color or description","operationId":"update_project_api_v1_studio_projects__project_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Soft-delete a project after explicit user confirmation","operationId":"delete_project_api_v1_studio_projects__project_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmedDeleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDeletedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/projects/{project_id}/pin":{"put":{"tags":["agent"],"summary":"Pin an authorized Studio project","operationId":"pin_project_api_v1_studio_projects__project_id__pin_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Unpin an authorized Studio project","operationId":"unpin_project_api_v1_studio_projects__project_id__pin_delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/elements":{"get":{"tags":["agent"],"summary":"List authorized reusable Studio Elements","operationId":"list_elements_api_v1_studio_elements_get","parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workspaceid"}},{"name":"projectId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"enum":["character","location","prop"],"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Q"}},{"name":"reviewStatus","in":"query","required":false,"schema":{"anyOf":[{"enum":["none","in_progress","needs_review","approved","rejected"],"type":"string"},{"type":"null"}],"description":"Only Elements with this review status; none means no status.","title":"Reviewstatus"},"description":"Only Elements with this review status; none means no status."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ElementOut"},"title":"Response List Elements Api V1 Studio Elements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}},"post":{"tags":["agent"],"summary":"Save an authorized asset as a reusable Element","operationId":"create_element_api_v1_studio_elements_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/elements/{element_id}":{"patch":{"tags":["agent"],"summary":"Rename an authorized Element","operationId":"rename_element_api_v1_studio_elements__element_id__patch","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementRenameBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Delete an Element after explicit user confirmation","operationId":"delete_element_api_v1_studio_elements__element_id__delete","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmedDeleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementDeletedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/projects/{project_id}/folders":{"get":{"tags":["agent"],"summary":"List the folders of an authorized Studio project","operationId":"list_project_folders_api_v1_studio_projects__project_id__folders_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderOut"},"title":"Response List Project Folders Api V1 Studio Projects  Project Id  Folders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["agent"],"summary":"Create a folder in a Studio project without spending credits","operationId":"create_project_folder_api_v1_studio_projects__project_id__folders_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCreateBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/folders/{folder_id}":{"patch":{"tags":["agent"],"summary":"Update folder name, color or description","operationId":"update_project_folder_api_v1_studio_folders__folder_id__patch","parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Folder Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Delete a folder and its subfolders after explicit user confirmation","operationId":"delete_project_folder_api_v1_studio_folders__folder_id__delete","parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Folder Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmedDeleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderDeletedOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/folders/{folder_id}/pin":{"put":{"tags":["agent"],"summary":"Pin an authorized project folder","operationId":"pin_project_folder_api_v1_studio_folders__folder_id__pin_put","parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Folder Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Unpin an authorized project folder","operationId":"unpin_project_folder_api_v1_studio_folders__folder_id__pin_delete","parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Folder Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/projects/{project_id}/arrange":{"post":{"tags":["agent"],"summary":"Put project files into one of its folders or back to its root","operationId":"arrange_studio_assets_api_v1_studio_projects__project_id__arrange_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArrangeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetsArrangedOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/assets/review":{"put":{"tags":["agent"],"summary":"Set the shared review status of several Studio files","operationId":"set_studio_assets_review_status_api_v1_studio_assets_review_put","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetsReviewIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetsReviewedOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/elements/{element_id}/review":{"put":{"tags":["agent"],"summary":"Set the shared review status of a Studio Element","operationId":"set_element_review_status_api_v1_studio_elements__element_id__review_put","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementReviewBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/elements/{element_id}/versions":{"get":{"tags":["agent"],"summary":"List the image versions of a Studio Element, newest first","operationId":"list_element_versions_api_v1_studio_elements__element_id__versions_get","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ElementVersionOut"},"title":"Response List Element Versions Api V1 Studio Elements  Element Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/elements/{element_id}/image":{"post":{"tags":["agent"],"summary":"Set a library image as the image of a Studio Element","operationId":"set_element_image_api_v1_studio_elements__element_id__image_post","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementImageBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/elements/{element_id}/versions/{version_id}/restore":{"post":{"tags":["agent"],"summary":"Make an earlier image version of a Studio Element current again","operationId":"restore_element_version_api_v1_studio_elements__element_id__versions__version_id__restore_post","parameters":[{"name":"element_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Element Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"One key per connection and operation/resource, retained for 24 hours. Same JSON body replays the original response; another body gives 409 idempotency_conflict; unfinished gives retryable 409 idempotency_in_progress. After expiry the key starts new work. See /docs/errors.md#idempotency.","schema":{"type":"string","minLength":1,"maxLength":200}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/assets":{"get":{"tags":["agent"],"summary":"Find saved Studio files","operationId":"list_studio_assets_api_v1_studio_assets_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":256},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"projectId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid"}},{"name":"brandId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"}},{"name":"mediaType","in":"query","required":false,"schema":{"anyOf":[{"enum":["image","video","audio"],"type":"string"},{"type":"null"}],"title":"Mediatype"}},{"name":"modelId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}],"title":"Modelid"}},{"name":"createdAfter","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Inclusive creation time, with timezone.","title":"Createdafter"},"description":"Inclusive creation time, with timezone."},{"name":"createdBefore","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Exclusive creation time, with timezone.","title":"Createdbefore"},"description":"Exclusive creation time, with timezone."},{"name":"liked","in":"query","required":false,"schema":{"type":"boolean","description":"Only favourites; a generation matches if a live output is a favourite.","default":false,"title":"Liked"},"description":"Only favourites; a generation matches if a live output is a favourite."},{"name":"origin","in":"query","required":false,"schema":{"anyOf":[{"enum":["generated","upload"],"type":"string"},{"type":"null"}],"title":"Origin"}},{"name":"folderId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Only files placed directly in this project folder, not in its subfolders. With projectId, the folder must belong to that project.","title":"Folderid"},"description":"Only files placed directly in this project folder, not in its subfolders. With projectId, the folder must belong to that project."},{"name":"reviewStatus","in":"query","required":false,"schema":{"anyOf":[{"enum":["none","in_progress","needs_review","approved","rejected"],"type":"string"},{"type":"null"}],"description":"Only files with this review status; none means no status.","title":"Reviewstatus"},"description":"Only files with this review status; none means no status."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioAssetsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/studio/assets/{asset_id}":{"get":{"tags":["agent"],"summary":"Read one authorized Studio file","operationId":"get_studio_asset_api_v1_studio_assets__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioPlacedAssetOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Delete a Studio file after explicit user confirmation","operationId":"delete_studio_asset_api_v1_studio_assets__asset_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmedDeleteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioAssetDeleteOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/move":{"post":{"tags":["agent"],"summary":"Move an asset or generation to another project","operationId":"move_to_project_api_v1_studio_move_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioMoveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioMoveOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/api/v1/studio/likes/{target}/{id}":{"put":{"tags":["agent"],"summary":"Like a file or Social/Performance project","operationId":"like_api_v1_studio_likes__target___id__put","parameters":[{"name":"target","in":"path","required":true,"schema":{"enum":["asset","content","performance_batch"],"type":"string","title":"Target"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioLikeOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"tags":["agent"],"summary":"Unlike a file or Social/Performance project","operationId":"unlike_api_v1_studio_likes__target___id__delete","parameters":[{"name":"target","in":"path","required":true,"schema":{"enum":["asset","content","performance_batch"],"type":"string","title":"Target"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioLikeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/brands/{brand_id}/product-photos":{"get":{"tags":["agent"],"summary":"List product photos available for Studio import","operationId":"list_product_photos_api_v1_studio_brands__brand_id__product_photos_get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPhotosOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/studio/library-projects":{"get":{"tags":["agent"],"summary":"List Social and Performance projects","operationId":"list_studio_projects_api_v1_studio_library_projects_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":256},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"enum":["social","performance"],"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"brandId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"}},{"name":"liked","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Liked"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioLibraryProjectsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/api/v1/upload-links/{token}":{"get":{"tags":["agent-connect"],"summary":"What an upload link accepts","description":"No Authorization needed: the link is the permission. 404\n`upload_not_found`, 410 `upload_used` or `upload_expired`, 409\n`upload_in_progress`. Opened with a signed-in AISTLabs session of another\naccount — 403 `upload_other_account`, and the brand is not shown.","operationId":"get_upload_link_api_v1_upload_links__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadLinkOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"404":{"$ref":"#/components/responses/NotFound"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"410":{"$ref":"#/components/responses/Gone"}},"security":[]},"put":{"tags":["agent-connect"],"summary":"Upload one file by link (curl -T)","description":"Raw bytes of one file: `curl -T logo.png '<uploadUrl>?name=logo.png'`.\nThe type is read from the bytes (PNG, JPEG, WebP, PDF, DOCX, PPTX, XLSX,\nODF); text documents by Content-Type or the `name` extension. A name or\ntype that says PDF or DOCX must match the bytes (415). One upload per\nlink; an upload that started before the link expired is accepted.","operationId":"put_upload_link_api_v1_upload_links__token__put","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"description":"File name to save (URL-encoded), e.g. `?name=Brand%20Book.pdf`; defaults to the link's fileName.","title":"Name"},"description":"File name to save (URL-encoded), e.g. `?name=Brand%20Book.pdf`; defaults to the link's fileName."}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadedFilesOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"403":{"$ref":"#/components/responses/Forbidden"},"410":{"$ref":"#/components/responses/Gone"}},"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"security":[]},"post":{"tags":["agent-connect"],"summary":"Upload files by link (multipart)","description":"Multipart `files`, 1–10 at once (one for a logo link) — the upload\npage in AISTLabs. One upload per link. The link is checked before the body is\nread.","operationId":"post_upload_link_api_v1_upload_links__token__post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadedFilesOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"404":{"$ref":"#/components/responses/NotFound"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"403":{"$ref":"#/components/responses/Forbidden"},"410":{"$ref":"#/components/responses/Gone"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["files"],"properties":{"files":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","format":"binary"},"description":"1–10 files; a logo link takes exactly one."}}}}}},"security":[]}},"/api/v1/connect/requests":{"post":{"tags":["agent-connect"],"summary":"Ask for a connection with one link","description":"No credentials needed. Returns a link for the account owner to approve\nand a poll token; the API key is issued to the first poll after approval,\nonce. Never paste the key into a chat.","operationId":"create_connect_request_api_v1_connect_requests_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequestOut"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}},"security":[]}},"/api/v1/connect/requests/{request_id}":{"get":{"tags":["agent-connect"],"summary":"Poll a connection request","description":"`Authorization: Bearer <pollToken>`. Poll every 5–10 seconds.","operationId":"poll_connect_request_api_v1_connect_requests__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequestPollOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"security":[{"pollToken":[]}]}},"/api/v1/oauth/register":{"post":{"tags":["oauth"],"summary":"Register an OAuth client","description":"Dynamic client registration (RFC 7591). Public client, PKCE required.","operationId":"register_api_v1_oauth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthRegisterIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Register Api V1 Oauth Register Post"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}},"security":[]}},"/api/v1/oauth/authorize":{"get":{"tags":["oauth"],"summary":"Authorization endpoint","description":"Validates the request and sends the person to the consent screen.","operationId":"authorize_api_v1_oauth_authorize_get","parameters":[{"name":"response_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type"}},{"name":"client_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},{"name":"redirect_uri","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"code_challenge","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Challenge Method"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"resource","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"security":[]}},"/api/v1/oauth/token":{"post":{"tags":["oauth"],"summary":"Token endpoint","description":"`grant_type=authorization_code` (+ `code_verifier`) or\n`grant_type=refresh_token`. Refresh tokens rotate on use.","operationId":"token_api_v1_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/ValidationError"}},"security":[]}},"/mcp/studio":{"post":{"tags":["mcp"],"summary":"ChatGPT Studio MCP endpoint (JSON-RPC 2.0)","operationId":"mcp_post_mcp_studio_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/mcp/chatgpt":{"post":{"tags":["mcp"],"summary":"ChatGPT MCP endpoint (JSON-RPC 2.0)","operationId":"mcp_post_mcp_chatgpt_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/mcp":{"post":{"tags":["mcp"],"summary":"MCP endpoint (JSON-RPC 2.0)","operationId":"mcp_post_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"402":{"$ref":"#/components/responses/PaymentRequired"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["oauth"],"summary":"OAuth resource metadata","description":"Protected resource metadata (RFC 9728) for the host the request came to.","operationId":"protected_resource__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Protected Resource  Well Known Oauth Protected Resource Get"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"security":[]}},"/.well-known/oauth-protected-resource/mcp/chatgpt":{"get":{"tags":["oauth"],"summary":"ChatGPT OAuth resource metadata","operationId":"chatgpt_protected_resource__well_known_oauth_protected_resource_mcp_chatgpt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Chatgpt Protected Resource  Well Known Oauth Protected Resource Mcp Chatgpt Get"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"security":[]}},"/.well-known/oauth-protected-resource/mcp/studio":{"get":{"tags":["oauth"],"summary":"Studio OAuth resource metadata","operationId":"studio_protected_resource__well_known_oauth_protected_resource_mcp_studio_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Studio Protected Resource  Well Known Oauth Protected Resource Mcp Studio Get"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"security":[]}},"/.well-known/oauth-authorization-server":{"get":{"tags":["oauth"],"summary":"OAuth server metadata","operationId":"authorization_server__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Authorization Server  Well Known Oauth Authorization Server Get"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"security":[]}}},"components":{"schemas":{"AccountOut":{"properties":{"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"plan":{"type":"string","title":"Plan"},"freeVideoAvailable":{"type":"boolean","title":"Freevideoavailable"},"promoTrial":{"anyOf":[{"$ref":"#/components/schemas/PromoTrialOut"},{"type":"null"}]},"canDownloadVideos":{"type":"boolean","title":"Candownloadvideos","default":false}},"type":"object","required":["credits","plan","freeVideoAvailable"],"title":"AccountOut"},"AccountPromoOut":{"properties":{"kind":{"type":"string","enum":["trial","discount"],"title":"Kind","default":"trial"},"discountPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discountpercent"},"code":{"type":"string","title":"Code"},"sourceName":{"type":"string","title":"Sourcename"},"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"durationDays":{"type":"integer","title":"Durationdays"},"activationDeadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activationdeadline"},"termsVersion":{"type":"integer","title":"Termsversion"},"alreadyActivated":{"type":"boolean","title":"Alreadyactivated","default":false},"status":{"type":"string","enum":["pending","active","expired","disabled","terms_changed","used"],"title":"Status"},"confirmed":{"type":"boolean","title":"Confirmed"}},"type":"object","required":["code","sourceName","credits","durationDays","activationDeadline","termsVersion","status","confirmed"],"title":"AccountPromoOut"},"ActivityBrandOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["id","name"],"title":"ActivityBrandOut"},"ActivityOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"actor":{"type":"string","title":"Actor"},"action":{"type":"string","title":"Action"},"targetKind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Targetkind"},"targetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Targetid"},"brand":{"anyOf":[{"$ref":"#/components/schemas/ActivityBrandOut"},{"type":"null"}],"description":"The brand the event is about, when it is about one."},"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","actor","action","targetKind","targetId","credits","meta","createdAt"],"title":"ActivityOut"},"ActivityTargetOut":{"properties":{"kind":{"type":"string","title":"Kind"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["kind","id"],"title":"ActivityTargetOut"},"AgentCapabilities":{"properties":{"brandBrain":{"type":"boolean","title":"Brandbrain","default":true},"creative":{"type":"boolean","title":"Creative","default":true},"freeVideo":{"type":"boolean","title":"Freevideo","default":true},"ownWinners":{"type":"boolean","title":"Ownwinners","default":true},"competitorScan":{"type":"boolean","title":"Competitorscan","default":true},"paidProduction":{"type":"boolean","title":"Paidproduction","default":true}},"type":"object","title":"AgentCapabilities","description":"What this connection may do without the account owner."},"AgentConceptOut":{"properties":{"title":{"type":"string","title":"Title"},"logline":{"type":"string","title":"Logline"}},"type":"object","required":["title","logline"],"title":"AgentConceptOut"},"AgentMeOut":{"properties":{"agentGuide":{"type":"string","title":"Agentguide","default":""},"accountBalance":{"type":"number","multipleOf":0.1,"title":"Accountbalance","default":0},"connectionBudget":{"anyOf":[{"$ref":"#/components/schemas/ConnectionBudgetOut"},{"type":"null"}]},"workflows":{"items":{"$ref":"#/components/schemas/WorkflowOut"},"type":"array","title":"Workflows"},"pendingApprovals":{"items":{"$ref":"#/components/schemas/ApprovalOut"},"type":"array","title":"Pendingapprovals"},"studioAvailability":{"anyOf":[{"$ref":"#/components/schemas/AgentStudioAvailabilityOut"},{"type":"null"}]},"schemaVersion":{"type":"string","title":"Schemaversion"},"connectionName":{"type":"string","title":"Connectionname"},"connectionKind":{"type":"string","title":"Connectionkind"},"brands":{"items":{"$ref":"#/components/schemas/BrandListItemOut"},"type":"array","title":"Brands"},"capabilities":{"$ref":"#/components/schemas/AgentCapabilities"},"limits":{"$ref":"#/components/schemas/LimitsOut"},"usage":{"$ref":"#/components/schemas/UsageOut"},"account":{"$ref":"#/components/schemas/AccountOut"},"freeAllowances":{"anyOf":[{"$ref":"#/components/schemas/FreeAllowancesOut"},{"type":"null"}]},"humanLinks":{"$ref":"#/components/schemas/HumanLinksOut"},"nextAction":{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"],"title":"Nextaction"},"freeCredits":{"type":"number","multipleOf":0.1,"title":"Freecredits","description":"Remaining starter credits already included in accountBalance, not additional funds.","default":0},"freeStart":{"type":"boolean","title":"Freestart","description":"The starter pack is unexpired and allowed. It may be empty; only the exact Studio quote confirms free coverage.","default":false}},"type":"object","required":["schemaVersion","connectionName","connectionKind","brands","capabilities","limits","usage","account","humanLinks","nextAction"],"title":"AgentMeOut"},"AgentStudioAvailabilityOut":{"properties":{"eligible":{"type":"boolean","title":"Eligible"},"workspaceRestricted":{"type":"boolean","title":"Workspacerestricted","default":false},"mode":{"type":"string","enum":["off","admins","allowlist","on"],"title":"Mode"},"videoEnabled":{"type":"boolean","title":"Videoenabled"},"studioUrl":{"type":"string","title":"Studiourl"}},"type":"object","required":["eligible","mode","videoEnabled","studioUrl"],"title":"AgentStudioAvailabilityOut","description":"Studio eligibility and model availability; not a restriction to reading."},"AgentStudioCatalogOut":{"properties":{"version":{"type":"string","title":"Version"},"models":{"items":{"$ref":"#/components/schemas/StudioModelOut"},"type":"array","title":"Models"},"projects":{"items":{"$ref":"#/components/schemas/ProjectOut"},"type":"array","title":"Projects"},"nextAction":{"type":"string","enum":["quote_studio_generation","create_project"],"title":"Nextaction"},"studioUrl":{"type":"string","title":"Studiourl"}},"additionalProperties":false,"type":"object","required":["version","models","nextAction","studioUrl"],"title":"AgentStudioCatalogOut"},"AgentStudioGenerationOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"modelId":{"type":"string","title":"Modelid"},"modelLabel":{"type":"string","title":"Modellabel"},"mediaType":{"type":"string","enum":["image","video","audio"],"title":"Mediatype"},"prompt":{"type":"string","title":"Prompt"},"aspectRatio":{"type":"string","title":"Aspectratio"},"quality":{"type":"string","title":"Quality"},"qualityLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qualitylabel","description":"Display label of the ordered quality, for example 720p or High."},"count":{"type":"integer","title":"Count"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"inputMode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inputmode"},"resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution","description":"Image resolution the order was made in (catalog resolution id); null when the model has none."},"status":{"type":"string","enum":["queued","running","ready","failed","unknown"],"title":"Status"},"failureReason":{"anyOf":[{"type":"string","enum":["moderated","rejected","unavailable","busy","failed"]},{"type":"null"}],"title":"Failurereason"},"quoteCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Quotecredits"},"chargedCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Chargedcredits"},"inputs":{"items":{"$ref":"#/components/schemas/StudioInputOut"},"type":"array","title":"Inputs"},"outputs":{"items":{"$ref":"#/components/schemas/StudioAssetOut"},"type":"array","title":"Outputs"},"outputsMade":{"type":"integer","title":"Outputsmade","default":0},"parentGenerationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentgenerationid"},"relation":{"anyOf":[{"type":"string","enum":["recreate","variation","reference","final","extend"]},{"type":"null"}],"title":"Relation"},"finalUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finaluntil"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"generationId":{"type":"string","format":"uuid","title":"Generationid","description":"Same durable identifier as id; pass this to get_studio_generation."},"nextAction":{"type":"string","enum":["get_studio_generation","quote_studio_generation","done","review_failure"],"title":"Nextaction"},"pollAfterSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pollafterseconds"},"resultUrl":{"type":"string","title":"Resulturl"}},"type":"object","required":["id","projectId","modelId","modelLabel","mediaType","prompt","aspectRatio","quality","count","status","failureReason","quoteCredits","chargedCredits","inputs","outputs","parentGenerationId","relation","createdAt","finishedAt","generationId","nextAction","resultUrl"],"title":"AgentStudioGenerationOut","description":"Actual persisted status and authorized studio result links; never starts another job."},"AgentStudioImportIn":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Existing authorized project ID from list_studio_models."},"brandId":{"type":"string","format":"uuid","title":"Brandid","description":"An authorized, non-archived source brand. The project is authorized separately; account-wide connections may use a brand from another owned workspace."},"mediaId":{"type":"string","format":"uuid","title":"Mediaid","description":"Image mediaId already saved to this brand/product by the existing upload tools."},"rightsConfirmed":{"type":"boolean","title":"Rightsconfirmed","description":"Set true only after the user confirms permission to reuse this image.","default":false}},"type":"object","required":["projectId","brandId","mediaId"],"title":"AgentStudioImportIn","description":"Reuse an existing authorized brand/product image in a studio project, without generating."},"AgentStudioUploadIn":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Existing authorized project ID from list_studio_models."},"fileName":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Filename","description":"Default file name for curl -T without ?name=."},"rightsConfirmed":{"type":"boolean","title":"Rightsconfirmed","description":"Set true only after the user confirms permission to use the reference images, videos or audio.","default":false}},"type":"object","required":["projectId"],"title":"AgentStudioUploadIn","description":"Create a one-time link for image, video or audio references in a studio project."},"AgentStudioUploadOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"status":{"type":"string","enum":["pending","done","expired"],"title":"Status"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"maxBytes":{"type":"integer","title":"Maxbytes"},"accept":{"items":{"type":"string"},"type":"array","title":"Accept"},"uploadUrl":{"type":"string","title":"Uploadurl","description":"PUT the raw bytes here (curl -T); one upload, no Authorization needed."},"pageUrl":{"type":"string","title":"Pageurl","description":"Give this page to the user to upload reference files in AISTLabs."},"curl":{"type":"string","title":"Curl","description":"Upload from disk: replace <file> with the path and <file name> with the URL-encoded name to save (curl -T sends neither a name nor a type)."}},"type":"object","required":["id","projectId","status","expiresAt","maxBytes","accept","uploadUrl","pageUrl","curl"],"title":"AgentStudioUploadOut","description":"A one-time studio upload link: a page for the user and a URL for curl -T."},"AgentStudioUploadStatusOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"status":{"type":"string","enum":["pending","done","expired"],"title":"Status"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"assets":{"items":{"$ref":"#/components/schemas/StudioAssetOut"},"type":"array","title":"Assets","description":"Uploaded image, video or audio assets; pass their id as inputs[].assetId with the appropriate role."}},"type":"object","required":["id","projectId","status","expiresAt","assets"],"title":"AgentStudioUploadStatusOut","description":"Studio upload link status and the library assets it created."},"AgentStudioUrlImportIn":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Existing authorized project ID from list_studio_models."},"url":{"type":"string","maxLength":2000,"minLength":8,"title":"Url","description":"Public http(s) file URL, not a web page: PNG/JPG/WebP up to 10 MB, MP4/MOV up to 200 MB, MP3/WAV/M4A up to 15 MB. Video/audio must be 2–30 seconds; edit videos must be at least 4 seconds."},"rightsConfirmed":{"type":"boolean","title":"Rightsconfirmed","description":"Set true only after the user confirms permission to use this reference image, video or audio.","default":false}},"type":"object","required":["projectId","url"],"title":"AgentStudioUrlImportIn","description":"Save a public image, video or audio file URL into a studio project as a reference."},"Answer":{"properties":{"field":{"type":"string","title":"Field"},"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Value"},"origin":{"type":"string","enum":["user","model","inactive"],"title":"Origin"},"binding":{"type":"string","enum":["required","preference","inactive"],"title":"Binding"},"user_quote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Quote"}},"additionalProperties":false,"type":"object","required":["field","value","origin","binding"],"title":"Answer"},"AppliedStyleOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Library style id, as in list_taste_library."},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"Style name; null if the style left the library."},"source":{"type":"string","enum":["brand_taste","explicit"],"title":"Source","description":"brand_taste: stylePhotoId was omitted and the first direction-compatible style of the brand's taste was applied; explicit: the style was chosen in the brief."}},"type":"object","required":["id","category","source"],"title":"AppliedStyleOut","description":"The library style this video uses and how it was chosen."},"ApprovalOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"summary":{"type":"string","title":"Summary"},"operation":{"type":"string","title":"Operation"},"estimateCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Estimatecredits"},"humanUrl":{"type":"string","title":"Humanurl"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"decidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decidedat"}},"type":"object","required":["id","status","summary","operation","estimateCredits","humanUrl","createdAt","expiresAt","decidedAt"],"title":"ApprovalOut"},"ArrangeBody":{"properties":{"assetIds":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":500,"minItems":1,"title":"Assetids"},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Folderid"}},"additionalProperties":false,"type":"object","required":["assetIds","folderId"],"title":"ArrangeBody"},"AssetsArrangedOut":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid"},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Folderid","description":"Folder the files are in now; null is root."},"assetIds":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Assetids"}},"additionalProperties":false,"type":"object","required":["projectId","folderId","assetIds"],"title":"AssetsArrangedOut"},"AssetsReviewIn":{"properties":{"assetIds":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":500,"minItems":1,"title":"Assetids"},"status":{"type":"string","enum":["none","in_progress","needs_review","approved","rejected"],"title":"Status"}},"additionalProperties":false,"type":"object","required":["assetIds","status"],"title":"AssetsReviewIn","description":"Set one shared review status on several authorized library files; none clears it."},"AssetsReviewedOut":{"properties":{"status":{"type":"string","enum":["none","in_progress","needs_review","approved","rejected"],"title":"Status","description":"Review status the files have now."},"assetIds":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Assetids"}},"additionalProperties":false,"type":"object","required":["status","assetIds"],"title":"AssetsReviewedOut"},"Audio":{"properties":{"music":{"type":"boolean","title":"Music"},"singing":{"type":"boolean","title":"Singing"},"voiceOver":{"type":"boolean","title":"Voiceover"}},"type":"object","required":["music","singing","voiceOver"],"title":"Audio"},"BeatOut":{"properties":{"startS":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Starts"},"endS":{"anyOf":[{"type":"integer"},{"type":"number"}],"title":"Ends"},"action":{"type":"string","title":"Action"},"voiceLine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voiceline"},"audio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio"}},"type":"object","required":["startS","endS","action"],"title":"BeatOut","description":"One beat of the story: seconds, on-screen action, spoken line and sound."},"Body_upload_files_api_v1_brands__brand_id__files_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files"},"slot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"role":{"anyOf":[{"type":"string","enum":["logo","brand_reference","product_image","brandbook","homepage_screenshot"]},{"type":"null"}],"title":"Role"}},"type":"object","required":["files"],"title":"Body_upload_files_api_v1_brands__brand_id__files_post"},"Body_upload_winner_api_v1_brands__brand_id__performance_winners_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_winner_api_v1_brands__brand_id__performance_winners_post"},"BrainAlternativeOut":{"properties":{"value":{"title":"Value"},"origin":{"type":"string","title":"Origin"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"sources":{"items":{"$ref":"#/components/schemas/FactSourceOut"},"type":"array","title":"Sources"}},"type":"object","required":["value","origin","confidence","sources"],"title":"BrainAlternativeOut","description":"A competing value a rescan found for this field; the working value is unchanged."},"BrainClearIn":{"properties":{"fields":{"items":{"type":"string"},"type":"array","maxItems":30,"minItems":1,"title":"Fields","description":"Registry paths to forget, for example compliance.mandatory_elements."}},"type":"object","required":["fields"],"title":"BrainClearIn"},"BrainClearOut":{"properties":{"cleared":{"items":{"type":"string"},"type":"array","title":"Cleared"},"skipped":{"items":{"type":"string"},"type":"array","title":"Skipped"},"brain":{"$ref":"#/components/schemas/BrainOut"}},"type":"object","required":["cleared","skipped","brain"],"title":"BrainClearOut"},"BrainGapOut":{"properties":{"section":{"type":"string","title":"Section"},"field":{"type":"string","title":"Field"},"label":{"type":"string","title":"Label"},"hint":{"type":"string","title":"Hint"},"videoWeight":{"type":"integer","title":"Videoweight"}},"type":"object","required":["section","field","label","hint","videoWeight"],"title":"BrainGapOut","description":"An empty Brand Brain field that matters most for video: what to fill in next."},"BrainOut":{"properties":{"version":{"type":"integer","title":"Version"},"readiness":{"$ref":"#/components/schemas/BrainReadinessOut"},"sections":{"items":{"$ref":"#/components/schemas/BrainSectionOut"},"type":"array","title":"Sections"}},"type":"object","required":["version","readiness","sections"],"title":"BrainOut"},"BrainPatchIn":{"properties":{"business":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_business"},{"type":"null"}],"description":"Business"},"positioning":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_positioning"},{"type":"null"}],"description":"Positioning"},"audience":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_audience"},{"type":"null"}],"description":"Audience"},"value":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_value"},{"type":"null"}],"description":"Value proposition"},"proof":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_proof"},{"type":"null"}],"description":"Proof"},"voice":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_voice"},{"type":"null"}],"description":"Voice & tone"},"permission":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_permission"},{"type":"null"}],"description":"Brand permission"},"visual":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_visual"},{"type":"null"}],"description":"Visual language"},"camera":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_camera"},{"type":"null"}],"description":"Camera & editing"},"world":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_world"},{"type":"null"}],"description":"People & places"},"motifs":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_motifs"},{"type":"null"}],"description":"Motifs & rules"},"stage":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_stage"},{"type":"null"}],"description":"Stage & architecture"},"compliance":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_compliance"},{"type":"null"}],"description":"Compliance"},"references":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_references"},{"type":"null"}],"description":"References"},"other":{"anyOf":[{"$ref":"#/components/schemas/BrainPatch_other"},{"type":"null"}],"description":"Other facts"}},"additionalProperties":false,"type":"object","title":"BrainPatchIn"},"BrainPatchRecord_audience_personas":{"properties":{"name":{"type":"string","title":"Name","description":"Name. Short persona name"},"who":{"type":"string","title":"Who","description":"Who. Who this is: age, occupation, context"},"motivation":{"type":"string","title":"Motivation","description":"Motivation. What drives them to buy"},"blocker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blocker","description":"Blocker. What stops them from buying"}},"additionalProperties":false,"type":"object","required":["name","who","motivation"],"title":"BrainPatchRecord_audience_personas"},"BrainPatchRecord_other_notes":{"properties":{"topic":{"type":"string","title":"Topic","description":"Topic. What the fact is about, two or three words"},"fact":{"type":"string","title":"Fact","description":"Fact. The fact itself in one phrase"}},"additionalProperties":false,"type":"object","required":["topic","fact"],"title":"BrainPatchRecord_other_notes"},"BrainPatchRecord_proof_assets":{"properties":{"kind":{"type":"string","enum":["demonstration","customer","expert","founder","review","data","press","community","certification"],"title":"Kind","description":"Kind. Kind of proof"},"claim":{"type":"string","title":"Claim","description":"Claim. Which promise it backs"},"evidence":{"type":"string","title":"Evidence","description":"Evidence. The specifics: a number, a name, a fact"}},"additionalProperties":false,"type":"object","required":["kind","claim","evidence"],"title":"BrainPatchRecord_proof_assets"},"BrainPatchRecord_references_approved_examples":{"properties":{"what":{"type":"string","title":"What","description":"What. What the piece is"},"why":{"type":"string","title":"Why","description":"Why. What exactly works in it"}},"additionalProperties":false,"type":"object","required":["what","why"],"title":"BrainPatchRecord_references_approved_examples"},"BrainPatchRecord_references_competitors":{"properties":{"name":{"type":"string","title":"Name","description":"Name. Who"},"how_we_differ":{"type":"string","title":"How We Differ","description":"How we differ. The difference in one phrase"}},"additionalProperties":false,"type":"object","required":["name","how_we_differ"],"title":"BrainPatchRecord_references_competitors"},"BrainPatchRecord_references_rejected_examples":{"properties":{"what":{"type":"string","title":"What","description":"What. What the piece is"},"why":{"type":"string","title":"Why","description":"Why. Why this is not acceptable"}},"additionalProperties":false,"type":"object","required":["what","why"],"title":"BrainPatchRecord_references_rejected_examples"},"BrainPatchRecord_visual_palette":{"properties":{"role":{"type":"string","enum":["primary","secondary","accent","background","text"],"title":"Role","description":"Role. Role of the color"},"hex":{"type":"string","title":"Hex","description":"HEX. A value like #1A2B3C"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name. What the color is called"}},"additionalProperties":false,"type":"object","required":["role","hex"],"title":"BrainPatchRecord_visual_palette"},"BrainPatchRecord_voice_banned_phrases":{"properties":{"banned":{"type":"string","title":"Banned","description":"Never say. The banned phrase"},"replacement":{"type":"string","title":"Replacement","description":"Say instead. What replaces it"}},"additionalProperties":false,"type":"object","required":["banned","replacement"],"title":"BrainPatchRecord_voice_banned_phrases"},"BrainPatchRecord_world_locations":{"properties":{"name":{"type":"string","title":"Name","description":"Name. Short name of the place"},"kind":{"type":"string","enum":["studio","interior","home","retail","exterior_urban","exterior_nature"],"title":"Kind","description":"Kind. Kind of place"},"description":{"type":"string","title":"Description","description":"Description. What is seen there and how it looks"}},"additionalProperties":false,"type":"object","required":["name","kind","description"],"title":"BrainPatchRecord_world_locations"},"BrainPatchRecord_world_people":{"properties":{"name":{"type":"string","title":"Name","description":"Name. Name"},"role":{"type":"string","enum":["founder","employee","expert","ambassador","customer","creator","character"],"title":"Role","description":"Role. Who they are to the brand"},"appearance":{"type":"string","title":"Appearance","description":"Appearance. Appearance in enough detail to build the shot"},"function":{"type":"string","title":"Function","description":"Function. Why they are on camera: trust, explanation, demonstration"}},"additionalProperties":false,"type":"object","required":["name","role","appearance","function"],"title":"BrainPatchRecord_world_people"},"BrainPatch_audience":{"properties":{"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"Audience. Who buys, in one line"},"personas":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_audience_personas"},{"type":"string"}]},"type":"array","maxItems":4},{"type":"string"},{"type":"null"}],"title":"Personas","description":"Personas. Distinct buyer groups — only if the sources show them"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Audience note. What matters about them: habits, fatigues, language"}},"additionalProperties":false,"type":"object","title":"BrainPatch_audience"},"BrainPatch_business":{"properties":{"niche":{"anyOf":[{"type":"string","enum":["beauty","fashion","sports","software","gaming","food","home","services","jewelry","fitness","kids","electronics","education","real_estate","other"]},{"type":"null"}],"title":"Niche","description":"Niche. Closest niche from the pattern library"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"Category. Category in your own words: “body skincare”, “esports coaching”"},"product_type":{"anyOf":[{"type":"string","enum":["physical","digital","service","hybrid"]},{"type":"null"}],"title":"Product Type","description":"Product type. What exactly is sold: a physical item, a digital product, a service or a mix"},"content_language":{"anyOf":[{"type":"string","enum":["en","fr","de","it","pl","pt","ru","es","tr"]},{"type":"null"}],"title":"Content Language","description":"Content language. The language the brand speaks to its audience — the script and on-camera lines come out in it"},"business_model":{"anyOf":[{"items":{"type":"string","enum":["dtc","retail","marketplace","subscription","saas","service","b2b"]},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Business Model","description":"Business model. How it is sold"},"commercial_action":{"anyOf":[{"type":"string","enum":["buy","book","subscribe","signup","download","visit","contact"]},{"type":"null"}],"title":"Commercial Action","description":"Action that matters. The viewer action that matters commercially"},"markets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Markets","description":"Markets. Markets and languages the brand operates in"}},"additionalProperties":false,"type":"object","title":"BrainPatch_business"},"BrainPatch_camera":{"properties":{"shots":{"anyOf":[{"items":{"type":"string","enum":["macro","close_up","medium","wide","handheld","static_tripod","slow_push_in","orbit","overhead_flatlay","tracking","pov"]},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Shots","description":"Shots. Shot sizes and camera moves typical of the brand"},"editing_rhythm":{"anyOf":[{"type":"string","enum":["slow","medium","fast_cut","match_cut_driven"]},{"type":"null"}],"title":"Editing Rhythm","description":"Editing rhythm. Editing pace"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Camera note. What else matters about shooting and cutting"}},"additionalProperties":false,"type":"object","title":"BrainPatch_camera"},"BrainPatch_compliance":{"properties":{"restrictions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Restrictions","description":"Restrictions. Restrictions: legal, category, internal"},"mandatory_elements":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Mandatory Elements","description":"Mandatory elements. What every piece must include: packshot, disclaimer, hashtag"},"regulated_claims":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Regulated Claims","description":"Regulated claims. Claims that cannot be made without qualifiers"}},"additionalProperties":false,"type":"object","title":"BrainPatch_compliance"},"BrainPatch_motifs":{"properties":{"recurring":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Recurring","description":"Recurring motifs. What the brand repeats and is recognized by"},"content_rules":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Content Rules","description":"Content behaviour. How the brand behaves in content: what it shows early, what it avoids"},"visual_taboos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Visual Taboos","description":"Visual taboos. SHOTS the brand never has: angles, contexts, camera and editing devices. Not here: actions (permission.never_do) and banned phrases (voice.banned_phrases)"}},"additionalProperties":false,"type":"object","title":"BrainPatch_motifs"},"BrainPatch_other":{"properties":{"priorities":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priorities","description":"Priorities & exceptions. Free-form client note: priorities and exceptions"},"notes":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_other_notes"},{"type":"string"}]},"type":"array","maxItems":12},{"type":"string"},{"type":"null"}],"title":"Notes","description":"Other facts. Everything important that fits no registry field"}},"additionalProperties":false,"type":"object","title":"BrainPatch_other"},"BrainPatch_permission":{"properties":{"allowed":{"anyOf":[{"items":{"type":"string","enum":["humor","irony","provocation","slang","trend_participation","cringe","sexual_innuendo","competitor_comparison","politics"]},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Allowed","description":"Allowed behaviours. What the brand is allowed to do in content"},"risk_tolerance":{"anyOf":[{"type":"string","enum":["conservative","moderate","bold"]},{"type":"null"}],"title":"Risk Tolerance","description":"Risk tolerance. How far the brand will risk its reputation for reach"},"never_do":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Never Do","description":"Never do. ACTIONS the brand never takes, even for reach: riding a tragedy for hype, promising a medical outcome, comparing with a named competitor. Not here: banned phrases (voice.banned_phrases) and banned shots (motifs.visual_taboos)"}},"additionalProperties":false,"type":"object","title":"BrainPatch_permission"},"BrainPatch_positioning":{"properties":{"positioning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Positioning","description":"Positioning. What the brand is and how it differs — one paragraph"},"key_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Message","description":"Key message. The one thought the viewer leaves with"},"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline","description":"Tagline. Tagline in one line"},"differentiators":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Differentiators","description":"Differentiators. Differences that actually sell"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Values","description":"Values. What the brand stands on"}},"additionalProperties":false,"type":"object","title":"BrainPatch_positioning"},"BrainPatch_proof":{"properties":{"assets":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_proof_assets"},{"type":"string"}]},"type":"array","maxItems":6},{"type":"string"},{"type":"null"}],"title":"Assets","description":"Proof assets. What backs the promises — direct material for the frame"}},"additionalProperties":false,"type":"object","title":"BrainPatch_proof"},"BrainPatch_references":{"properties":{"competitors":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_references_competitors"},{"type":"string"}]},"type":"array","maxItems":5},{"type":"string"},{"type":"null"}],"title":"Competitors","description":"Competitors. Who we are compared with and how we differ"},"approved_examples":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_references_approved_examples"},{"type":"string"}]},"type":"array","maxItems":5},{"type":"string"},{"type":"null"}],"title":"Approved Examples","description":"Approved examples. Reference pieces and what exactly makes them good"},"rejected_examples":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_references_rejected_examples"},{"type":"string"}]},"type":"array","maxItems":5},{"type":"string"},{"type":"null"}],"title":"Rejected Examples","description":"Rejected examples. Counter-examples; the reason matters more than the link"}},"additionalProperties":false,"type":"object","title":"BrainPatch_references"},"BrainPatch_stage":{"properties":{"brand_stage":{"anyOf":[{"type":"string","enum":["pre_launch","launch","early_growth","scale","mature","repositioning","product_launch","crisis"]},{"type":"null"}],"title":"Brand Stage","description":"Brand stage. Brand stage — it defines the job of the content"},"account_model":{"anyOf":[{"type":"string","enum":["commercial","founder_led","celebrity","expert_led","creator_led","community_led","ip_character"]},{"type":"null"}],"title":"Account Model","description":"Account model. Who and what the audience follows"},"moment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moment","description":"Business moment. What is happening at the brand right now"}},"additionalProperties":false,"type":"object","title":"BrainPatch_stage"},"BrainPatch_value":{"properties":{"functional":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Functional","description":"Functional value. What the product does in practice"},"emotional":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Emotional","description":"Emotional value. What the person feels"},"social":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Social","description":"Social value. What the purchase says about the person to others"}},"additionalProperties":false,"type":"object","title":"BrainPatch_value"},"BrainPatch_visual":{"properties":{"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Visual language. Visual character in a few words"},"palette":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_visual_palette"},{"type":"string"}]},"type":"array","maxItems":6},{"type":"string"},{"type":"null"}],"title":"Palette","description":"Palette. Brand colors with their roles"},"lighting":{"anyOf":[{"items":{"type":"string","enum":["soft_daylight","hard_sun","golden_hour","studio_clean","moody_low_key","neon","clinical","candlelit"]},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Lighting","description":"Lighting. The brand's lighting modes — the strongest lever of perceived quality"},"finish":{"anyOf":[{"type":"string","enum":["glossy","matte","editorial","documentary","cgi","retro_film","handheld_raw"]},{"type":"null"}],"title":"Finish","description":"Finish. Overall texture of the image"},"composition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Composition","description":"Composition. Composition: air, density, framing"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Visual note. Extended description of the visual language"},"typography":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Typography","description":"Typography. Typeface manner"},"logo_rules":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Rules","description":"Logo rules. How the logo lives: clear space, where it never appears"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction","description":"Chosen direction. The direction the person chose during taste calibration"}},"additionalProperties":false,"type":"object","title":"BrainPatch_visual"},"BrainPatch_voice":{"properties":{"adjectives":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Adjectives","description":"Voice. 3–5 words on how the brand sounds"},"formality":{"anyOf":[{"type":"string","enum":["formal","neutral","casual","raw"]},{"type":"null"}],"title":"Formality","description":"Formality. How formally the brand speaks"},"humor":{"anyOf":[{"type":"string","enum":["none","dry","playful","absurd"]},{"type":"null"}],"title":"Humor","description":"Humor. What kind of humor suits the brand"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone","description":"Tone. A short statement of the tone, up to 500 characters. Details and examples go to tone_note. An automatic suggestion is not the client's choice."},"tone_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone Note","description":"Tone note. Explanation of the tone with examples, up to 4000 characters"},"on_brand_phrases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"On Brand Phrases","description":"On-brand phrases. The brand's verbatim phrases — as is, in the original language"},"banned_phrases":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_voice_banned_phrases"},{"type":"string"}]},"type":"array","maxItems":6},{"type":"string"},{"type":"null"}],"title":"Banned Phrases","description":"Banned phrases. WORDS AND PHRASES the brand never says, and what replaces them. Not here: actions (permission.never_do) and banned shots (motifs.visual_taboos)"},"language_rules":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Language Rules","description":"Language rules. Language rules: address, length, emoji"}},"additionalProperties":false,"type":"object","title":"BrainPatch_voice"},"BrainPatch_world":{"properties":{"people":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_world_people"},{"type":"string"}]},"type":"array","maxItems":5},{"type":"string"},{"type":"null"}],"title":"People","description":"Who appears on camera. The brand's people — the basis for character references"},"casting_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Casting Notes","description":"Casting notes. Who to cast when there are no in-house faces: type, age, mood"},"locations":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/BrainPatchRecord_world_locations"},{"type":"string"}]},"type":"array","maxItems":5},{"type":"string"},{"type":"null"}],"title":"Locations","description":"Signature locations. Signature shooting locations"},"avoid_locations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"string"},{"type":"null"}],"title":"Avoid Locations","description":"Locations to avoid. Where the brand never shoots"}},"additionalProperties":false,"type":"object","title":"BrainPatch_world"},"BrainReadinessOut":{"properties":{"score":{"type":"integer","title":"Score"},"nextGaps":{"items":{"$ref":"#/components/schemas/BrainGapOut"},"type":"array","title":"Nextgaps"}},"type":"object","required":["score","nextGaps"],"title":"BrainReadinessOut"},"BrainSectionOut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"facts":{"items":{"$ref":"#/components/schemas/BrandFactOut"},"type":"array","title":"Facts"}},"type":"object","required":["id","title","facts"],"title":"BrainSectionOut"},"BrainSetOut":{"properties":{"updated":{"items":{"type":"string"},"type":"array","title":"Updated"},"skipped":{"items":{"type":"string"},"type":"array","title":"Skipped"},"skippedReasons":{"additionalProperties":{"type":"string","const":"same_value"},"type":"object","title":"Skippedreasons"},"brain":{"$ref":"#/components/schemas/BrainOut"}},"type":"object","required":["updated","skipped","brain"],"title":"BrainSetOut","description":"Result of a direct write: updated keys, skipped keys and the full Brand Brain."},"BrainUpdateIn":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"}},"type":"object","required":["message"],"title":"BrainUpdateIn","description":"Tell AISTLabs in plain language what changed; it files the facts into Brand Brain."},"BrainUpdateOut":{"properties":{"reply":{"type":"string","title":"Reply"},"updated":{"items":{"type":"string"},"type":"array","title":"Updated"},"brain":{"$ref":"#/components/schemas/BrainOut"}},"type":"object","required":["reply","updated","brain"],"title":"BrainUpdateOut"},"BrainUse":{"properties":{"brandbook":{"type":"boolean","title":"Brandbook","default":true},"logo":{"type":"boolean","title":"Logo","default":true}},"additionalProperties":false,"type":"object","title":"BrainUse"},"BrandCreateIn":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name","default":""},"website":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Website"},"instagram":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Instagram"},"extraSources":{"items":{"$ref":"#/components/schemas/SourceIn"},"type":"array","maxItems":10,"title":"Extrasources"},"relationship":{"anyOf":[{"type":"string","enum":["business","client"]},{"type":"null"}],"title":"Relationship"},"companyName":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Companyname"},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","title":"BrandCreateIn","description":"Create a brand. Name and website are optional: a website or other sources start the\nBrand Brain scan; without sources no scan runs and nothing is spent."},"BrandFactOut":{"properties":{"field":{"type":"string","title":"Field"},"label":{"type":"string","title":"Label"},"type":{"type":"string","title":"Type"},"hint":{"type":"string","title":"Hint"},"importance":{"type":"string","title":"Importance"},"videoWeight":{"type":"integer","title":"Videoweight"},"options":{"items":{"$ref":"#/components/schemas/OptionOut"},"type":"array","title":"Options"},"subfields":{"items":{"$ref":"#/components/schemas/SubfieldOut"},"type":"array","title":"Subfields"},"value":{"anyOf":[{},{"type":"null"}],"title":"Value"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"sources":{"items":{"$ref":"#/components/schemas/FactSourceOut"},"type":"array","title":"Sources"},"alternatives":{"items":{"$ref":"#/components/schemas/BrainAlternativeOut"},"type":"array","title":"Alternatives"},"authority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authority"},"knowledgeKind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Knowledgekind"},"scopeKey":{"type":"string","title":"Scopekey","default":"brand"}},"type":"object","required":["field","label","type","hint","importance","videoWeight","value","origin","confidence","sources","alternatives"],"title":"BrandFactOut","description":"A Brand Brain field and its current value; `value: null` marks a gap worth filling."},"BrandListItemOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"named":{"type":"boolean","title":"Named","description":"False: the brand has no name yet and is shown as \"Your brand\". Ask the user for the name and set it with update_brand, or let a website scan name it.","default":true},"companyName":{"type":"string","title":"Companyname"},"companyNote":{"type":"string","title":"Companynote","default":"Company is the shared workspace, not this brand’s name."},"status":{"type":"string","title":"Status"},"setupProgress":{"type":"integer","title":"Setupprogress"},"readiness":{"type":"integer","title":"Readiness"},"nextAction":{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"],"title":"Nextaction"}},"type":"object","required":["id","name","companyName","status","setupProgress","readiness","nextAction"],"title":"BrandListItemOut","description":"A brand of the account; pass its `id` as `brandId` to every brand call."},"BrandOut":{"properties":{"productsDeferred":{"type":"boolean","title":"Productsdeferred","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"named":{"type":"boolean","title":"Named","description":"False: the brand has no name yet and is shown as \"Your brand\".","default":true},"companyName":{"type":"string","title":"Companyname"},"status":{"type":"string","title":"Status"},"setupProgress":{"type":"integer","title":"Setupprogress"},"readiness":{"type":"integer","title":"Readiness"},"contentLanguage":{"type":"string","title":"Contentlanguage"},"productType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Producttype"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone"},"toneNote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tonenote"},"coreRead":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coreread"},"signals":{"$ref":"#/components/schemas/BrandSignalsOut"},"importantGap":{"anyOf":[{"$ref":"#/components/schemas/GapOut"},{"type":"null"}]},"sources":{"items":{"$ref":"#/components/schemas/SourceIn"},"type":"array","title":"Sources"},"products":{"items":{"$ref":"#/components/schemas/ProductOut"},"type":"array","title":"Products"},"taste":{"$ref":"#/components/schemas/TasteOut"},"scan":{"anyOf":[{"$ref":"#/components/schemas/ScanOut"},{"type":"null"}]},"files":{"type":"integer","title":"Files"},"nextAction":{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"],"title":"Nextaction"}},"type":"object","required":["id","name","companyName","status","setupProgress","readiness","contentLanguage","productType","tone","toneNote","coreRead","signals","importantGap","sources","products","taste","scan","files","nextAction"],"title":"BrandOut"},"BrandPatchIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name","description":"The brand name the user gave. Scans no longer rename a named brand."},"productsDeferred":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Productsdeferred"},"tone":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Tone"},"toneNote":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Tonenote"},"contentLanguage":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Contentlanguage"},"productType":{"anyOf":[{"type":"string","enum":["physical","digital","service","hybrid"]},{"type":"null"}],"title":"Producttype"}},"type":"object","title":"BrandPatchIn"},"BrandSignalsOut":{"properties":{"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice"},"visual":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visual"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audience"},"products":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Products"}},"type":"object","required":["voice","visual","audience","products"],"title":"BrandSignalsOut","description":"Four one-line signals from Brand Brain: voice, visual, audience and products."},"BriefDraftOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"revision":{"type":"integer","title":"Revision"},"state":{"$ref":"#/components/schemas/DraftStateOut"},"submittedContentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Submittedcontentid"},"submittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submittedat"},"analyticsBriefModeInitial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Analyticsbriefmodeinitial"},"analyticsBriefModeCurrent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Analyticsbriefmodecurrent"},"brandName":{"type":"string","title":"Brandname","default":""},"brandNamed":{"type":"boolean","title":"Brandnamed","default":true},"missing":{"items":{"type":"string","enum":["direction","products","format"]},"type":"array","title":"Missing","description":"What the draft still needs before submit_brief_draft: products (pass productIds of 1–3 products with photos to submit_brief_draft). A missing direction or format cannot be set here: agree it with the user and use create_content with the draft's brief and products."},"freeVideoAvailable":{"type":"boolean","title":"Freevideoavailable","default":false},"estimatedCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Estimatedcredits","description":"Expected charge for submitting this draft as it is (story plus render); null while something is missing."},"admissionCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Admissioncredits","description":"Credits the balance and budget checks require to start it; not charged."},"nextAction":{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"],"title":"Nextaction","default":"get_brief_draft"}},"type":"object","required":["id","brandId","revision","state","submittedContentId","submittedAt"],"title":"BriefDraftOut","description":"A brief saved in AISTLabs: by the owner on the Create screen, or by a guest before sign-in\nand moved into the account afterwards."},"BriefDraftSubmitIn":{"properties":{"revision":{"type":"integer","minimum":1.0,"title":"Revision","description":"The draft revision you showed the user (get_brief_draft); if the owner changed it since, the call answers 409."},"productIds":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":3,"minItems":1},{"type":"null"}],"title":"Productids","description":"Optional: first set the draft's products (1–3 products of its brand with photos). Saved to the draft as a new revision, as the product picker does."},"productNames":{"anyOf":[{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","maxItems":3,"minItems":1},{"type":"null"}],"title":"Productnames","description":"Optional: the same, by product name as list_products shows it."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"The approved approvalId when repeating a call that answered approval_required."}},"type":"object","required":["revision"],"title":"BriefDraftSubmitIn","description":"Start the video from a saved brief, exactly as the owner's Generate button does:\nthe brief, products, chosen images and style of the draft go into the order."},"ChangeIn":{"properties":{"kind":{"type":"string","enum":["person","outfit","location","object","product","style"],"title":"Kind","description":"person, outfit, location, object, product, or style (time of day, light or look of the whole shot)."},"target":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Target","description":"Inventory id of what is replaced: a person (P1) for person and outfit, an object (O1) for object. Empty for location, product and style."},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description","description":"The user's words for this change."},"referenceAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Referenceassetid","description":"Approved reference image: generated by generate_multiplier_reference, uploaded, or an imported product photo. Not used for style."},"gender":{"anyOf":[{"type":"string","enum":["female","male"]},{"type":"null"}],"title":"Gender","description":"Person only: the new person's gender, if the user gave it."},"ageBand":{"anyOf":[{"type":"string","enum":["18-29","30-44","45-59","60+","unclear"]},{"type":"null"}],"title":"Ageband","description":"Person only: the new person's age band, if the user gave it."},"voiceId":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Voiceid","description":"Person only, for the ad's only speaker: the new person's voice, an id from list_studio_voices with modelId audio-eleven-v4. Required when the plan shows voiceMissing."}},"additionalProperties":false,"type":"object","required":["kind"],"title":"ChangeIn","description":"One change in a variant."},"ConfirmedDeleteIn":{"properties":{"userConfirmed":{"type":"boolean","title":"Userconfirmed","default":false}},"additionalProperties":false,"type":"object","title":"ConfirmedDeleteIn"},"ConnectRequestIn":{"properties":{"agentName":{"type":"string","maxLength":120,"minLength":1,"title":"Agentname","default":"Company agent"}},"type":"object","title":"ConnectRequestIn"},"ConnectRequestOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"humanUrl":{"type":"string","title":"Humanurl"},"pollUrl":{"type":"string","title":"Pollurl"},"pollToken":{"type":"string","title":"Polltoken"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"instructions":{"type":"string","title":"Instructions"}},"type":"object","required":["id","status","humanUrl","pollUrl","pollToken","expiresAt","instructions"],"title":"ConnectRequestOut"},"ConnectRequestPollOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikey"},"connectionName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connectionname"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"}},"type":"object","required":["id","status","expiresAt"],"title":"ConnectRequestPollOut"},"ConnectionBudgetOut":{"properties":{"limit":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Limit"},"spent":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Spent"},"remaining":{"type":"number","multipleOf":0.1,"title":"Remaining"},"perWorkflow":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Perworkflow"},"askAboveLimit":{"type":"boolean","title":"Askabovelimit"}},"type":"object","required":["limit","spent","remaining","perWorkflow","askAboveLimit"],"title":"ConnectionBudgetOut"},"ContentCreateIn":{"properties":{"approvalMode":{"type":"string","const":"autonomous_gated","title":"Approvalmode","description":"Compatibility field; omit it. Create automatically writes and renders. Spending still obeys connection approval policy.","default":"autonomous_gated"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"direction":{"type":"string","enum":["cinematic","ugc","motion","surreal_vfx","studio","animation","viral"],"title":"Direction"},"durationSeconds":{"type":"integer","title":"Durationseconds"},"aspectRatio":{"type":"string","maxLength":16,"title":"Aspectratio"},"contentLanguage":{"type":"string","maxLength":64,"title":"Contentlanguage","description":"ISO language code from get_create_options; legacy English names remain accepted."},"videoQuality":{"type":"string","enum":["480p","720p"],"title":"Videoquality","default":"720p"},"brief":{"type":"string","maxLength":4000,"title":"Brief","description":"The user's intent in 1–3 sentences: goal, audience, key message, constraints (must/never). Do NOT describe scenes, shots, timings, camera moves or voiceover lines: AISTLabs's concept writer and director decide those. An empty brief is valid: AISTLabs picks the idea from the product and Brand Brain.","default":""},"stylePhotoId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stylephotoid","description":"Optional style: an id from GET /api/v1/taste/library?direction=<direction>. Omit to use the first direction-compatible reference from the brand’s selected taste; otherwise use the direction default."},"useBrandBrain":{"type":"boolean","title":"Usebrandbrain","default":true},"productIds":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":3},{"type":"null"}],"title":"Productids","description":"1–3 products of the brand that have photos (mediaCount > 0 in the product list). Required unless productNames name them."},"productNames":{"anyOf":[{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","maxItems":3},{"type":"null"}],"title":"Productnames","description":"Product names exactly as the product list shows them (case-insensitive). An unknown name is refused with the names of products that have photos; a name shared by several products is refused with their ids (pass productIds)."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"The approved approvalId when repeating a call that answered approval_required."}},"type":"object","required":["brandId","direction","durationSeconds","aspectRatio","contentLanguage"],"title":"ContentCreateIn","description":"Create a brand video from intent and format. Read get_create_options and\nquote_content first; obtain the user's go-ahead before submitting the order."},"ContentOut":{"properties":{"statusVersion":{"type":"string","title":"Statusversion","default":""},"waitTimedOut":{"type":"boolean","title":"Waittimedout","default":false},"stageLabel":{"type":"string","title":"Stagelabel","default":""},"etaSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Etaseconds"},"etaTotalSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Etatotalseconds"},"etaIsEstimate":{"type":"boolean","title":"Etaisestimate","default":true},"warnings":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Warnings"},"agentHint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agenthint"},"accountBalance":{"anyOf":[{"type":"number","multipleOf":0.1},{"type":"null"}],"title":"Accountbalance"},"connectionBudget":{"anyOf":[{"$ref":"#/components/schemas/ConnectionBudgetOut"},{"type":"null"}]},"estimatedCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Estimatedcredits"},"estimatedRenderCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Estimatedrendercredits","description":"When nextAction is start_production or retry_production: credits the render needs at renderQuality (0 for the account's first free video); the story is already paid. Tell the user this cost before start_production. Null otherwise."},"renderQuality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Renderquality","description":"Resolution start_production renders, set with estimatedRenderCredits: the one this order fixed at creation (a different quality argument is ignored), otherwise the default 720p; the first free video is always 720p."},"creditsReserved":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Creditsreserved","default":0},"approvalMode":{"type":"string","title":"Approvalmode","default":"human_concept_approval"},"id":{"type":"string","format":"uuid","title":"Id"},"stage":{"type":"string","title":"Stage"},"intent":{"type":"string","title":"Intent"},"brief":{"type":"string","title":"Brief"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone"},"stylePhotoId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stylephotoid"},"appliedStyle":{"anyOf":[{"$ref":"#/components/schemas/AppliedStyleOut"},{"type":"null"}],"description":"The library style this video uses and its source; null when the direction's own look is used without a library style."},"directionConfirmed":{"type":"boolean","title":"Directionconfirmed","default":false},"conceptsStatus":{"type":"string","title":"Conceptsstatus"},"conceptsError":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conceptserror"},"concepts":{"items":{"$ref":"#/components/schemas/AgentConceptOut"},"type":"array","title":"Concepts"},"selectedConcept":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Selectedconcept"},"directorStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Directorstatus"},"directorError":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Directorerror"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"scenario":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scenario","description":"The concept core: what happens in the video, who or what is on screen, mood and music, and any voice-over or on-screen text. Shortly after the story is ready; until then a one-to-three sentence summary. Show it to the user."},"researchLimitations":{"items":{"type":"string"},"type":"array","title":"Researchlimitations"},"productionNotes":{"items":{"type":"string"},"type":"array","title":"Productionnotes"},"durationSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationseconds"},"beats":{"items":{"$ref":"#/components/schemas/BeatOut"},"type":"array","title":"Beats","description":"Public timeline (seconds, action, voice line, audio) when the story was written beat by beat; omitted when the story is described only in scenario."},"production":{"anyOf":[{"$ref":"#/components/schemas/ProductionOut"},{"type":"null"}]},"humanUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Humanurl","description":"AISTLabs page that opens this video in the player; set from creation."},"downloadLocked":{"type":"boolean","title":"Downloadlocked","description":"True when this account may not download videos yet, known from creation: when the video is ready, production.videoUrl stays null; give the user humanUrl to watch it. The owner unlocks downloads at plansUrl with a plan or a promo code.","default":false},"plansUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plansurl","description":"AISTLabs page where the owner chooses a plan or enters a promo code; null when downloads are open."},"creditsSpent":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Creditsspent"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"nextAction":{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"],"title":"Nextaction"},"job":{"anyOf":[{"$ref":"#/components/schemas/JobOut"},{"type":"null"}]}},"type":"object","required":["id","stage","intent","brief","link","tone","conceptsStatus","conceptsError","concepts","selectedConcept","directorStatus","directorError","title","summary","scenario","durationSeconds","production","creditsSpent","createdAt","nextAction"],"title":"ContentOut"},"ContentQuoteIn":{"properties":{"approvalMode":{"type":"string","const":"autonomous_gated","title":"Approvalmode","description":"Compatibility field; omit it. Create automatically writes and renders. Spending still obeys connection approval policy.","default":"autonomous_gated"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"direction":{"type":"string","enum":["cinematic","ugc","motion","surreal_vfx","studio","animation","viral"],"title":"Direction"},"durationSeconds":{"type":"integer","title":"Durationseconds"},"aspectRatio":{"type":"string","maxLength":16,"title":"Aspectratio"},"contentLanguage":{"type":"string","maxLength":64,"title":"Contentlanguage","description":"ISO language code from get_create_options; legacy English names remain accepted."},"videoQuality":{"type":"string","enum":["480p","720p"],"title":"Videoquality","default":"720p"},"brief":{"type":"string","maxLength":4000,"title":"Brief","description":"The user's intent in 1–3 sentences: goal, audience, key message, constraints (must/never). Do NOT describe scenes, shots, timings, camera moves or voiceover lines: AISTLabs's concept writer and director decide those. An empty brief is valid: AISTLabs picks the idea from the product and Brand Brain.","default":""},"stylePhotoId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Stylephotoid","description":"Optional style: an id from GET /api/v1/taste/library?direction=<direction>. Omit to use the first direction-compatible reference from the brand’s selected taste; otherwise use the direction default."},"useBrandBrain":{"type":"boolean","title":"Usebrandbrain","default":true},"productIds":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":3},{"type":"null"}],"title":"Productids","description":"1–3 products of the brand that have photos (mediaCount > 0 in the product list). Required unless productNames name them."},"productNames":{"anyOf":[{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","maxItems":3},{"type":"null"}],"title":"Productnames","description":"Product names exactly as the product list shows them (case-insensitive). An unknown name is refused with the names of products that have photos; a name shared by several products is refused with their ids (pass productIds)."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"Not needed for a quote; accepted so the create_content arguments pass unchanged."}},"type":"object","required":["brandId","direction","durationSeconds","aspectRatio","contentLanguage"],"title":"ContentQuoteIn","description":"Price check for a video before creating it. Read-only; charges nothing, creates nothing.\nPass exactly the arguments you will pass to create_content."},"ContentQuoteOut":{"properties":{"admissionCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Admissioncredits","description":"Credits the balance and budget checks require to start this video: a conservative upper estimate behind sufficientBalance, approvalRequired and budgetExceeded. It is not charged; the actual charge follows real usage, typically close to estimatedCredits."},"estimateSource":{"type":"string","title":"Estimatesource","description":"recent_settled_median (median of recent comparable videos), conservative_admission_estimate (too few comparable videos yet) or free_entitlement (the account's free first video)."},"estimateSampleCount":{"type":"integer","title":"Estimatesamplecount","description":"How many recent comparable videos the estimate is based on.","default":0},"estimatedCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Estimatedcredits","description":"Expected charge for this video (story plus render). Not a reservation."},"breakdown":{"additionalProperties":{"type":"number","multipleOf":0.1,"minimum":0.0},"type":"object","title":"Breakdown","description":"estimatedCredits split into story and render."},"remainingConnectionBudget":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Remainingconnectionbudget"},"remainingAccountCredits":{"type":"number","multipleOf":0.1,"title":"Remainingaccountcredits"},"connectionBudget":{"$ref":"#/components/schemas/ConnectionBudgetOut"},"freeVideoAvailable":{"type":"boolean","title":"Freevideoavailable"},"approvalRequired":{"type":"boolean","title":"Approvalrequired"},"budgetExceeded":{"type":"boolean","title":"Budgetexceeded"},"sufficientBalance":{"type":"boolean","title":"Sufficientbalance"},"warnings":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Warnings"},"note":{"type":"string","title":"Note","default":"Estimate, not a charge or reservation. The final charge follows actual usage; create rechecks eligibility, balance and limits."},"planRequired":{"type":"boolean","title":"Planrequired","description":"True when create_content would be refused with plan_required: the account's free video is used and it has no plan or promo code. Send the owner plansUrl or apply an owner-provided promo code first.","default":false},"plansUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plansurl","description":"Page where the account owner chooses a plan; set when planRequired is true."}},"type":"object","required":["admissionCredits","estimateSource","estimatedCredits","breakdown","remainingConnectionBudget","remainingAccountCredits","connectionBudget","freeVideoAvailable","approvalRequired","budgetExceeded","sufficientBalance"],"title":"ContentQuoteOut","description":"Estimated price of a video and whether the balance, budget and policy let it start."},"ContentTraceOut":{"properties":{"contentId":{"type":"string","format":"uuid","title":"Contentid"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"observedAt":{"type":"string","format":"date-time","title":"Observedat"},"pollAfterSeconds":{"type":"integer","title":"Pollafterseconds"},"phases":{"items":{"$ref":"#/components/schemas/PhaseTraceOut"},"type":"array","title":"Phases"},"calls":{"items":{"$ref":"#/components/schemas/ModelCallTraceOut"},"type":"array","title":"Calls"},"queueJobs":{"items":{"$ref":"#/components/schemas/QueueTraceOut"},"type":"array","title":"Queuejobs"},"callsTruncated":{"type":"boolean","title":"Callstruncated"},"queueJobsTruncated":{"type":"boolean","title":"Queuejobstruncated"}},"type":"object","required":["contentId","brandId","observedAt","pollAfterSeconds","phases","calls","queueJobs","callsTruncated","queueJobsTruncated"],"title":"ContentTraceOut"},"CreateDirectionOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"}},"type":"object","required":["id","label","description"],"title":"CreateDirectionOut"},"CreateOptionsOut":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"directions":{"items":{"$ref":"#/components/schemas/CreateDirectionOut"},"type":"array","title":"Directions"},"durations":{"items":{"type":"integer"},"type":"array","title":"Durations"},"aspectRatios":{"items":{"type":"string"},"type":"array","title":"Aspectratios"},"languages":{"items":{"type":"string"},"type":"array","title":"Languages"},"videoQualities":{"items":{"type":"string"},"type":"array","title":"Videoqualities"},"formatNote":{"type":"string","title":"Formatnote","default":"The current renderer supports 9:16 and 16:9 at 480p/720p. Square, 4:5 and higher resolutions are not enabled in this production pipeline."}},"type":"object","required":["enabled","directions","durations","aspectRatios","languages","videoQualities"],"title":"CreateOptionsOut","description":"Fast brief options: everything POST /api/v1/content (create_content) accepts."},"DocsOut":{"properties":{"topic":{"type":"string","title":"Topic"},"uri":{"type":"string","title":"Uri"},"text":{"type":"string","title":"Text"}},"type":"object","required":["topic","uri","text"],"title":"DocsOut"},"DraftReference":{"properties":{"media_id":{"type":"string","format":"uuid","title":"Media Id"},"product_id":{"type":"string","format":"uuid","title":"Product Id"},"label":{"type":"string","enum":["main","angle"],"title":"Label"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Sha256"}},"additionalProperties":false,"type":"object","required":["media_id","product_id","label","sha256"],"title":"DraftReference"},"DraftSelection":{"properties":{"direction":{"anyOf":[{"type":"string","enum":["cinematic","ugc","motion","surreal_vfx","studio","animation","viral","product_speak","motion_design","vfx"]},{"type":"null"}],"title":"Direction"},"mode":{"type":"string","enum":["manual","ai","fast"],"title":"Mode","default":"fast"},"intent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intent"},"brief":{"type":"string","maxLength":4000,"title":"Brief","default":""},"product_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":3,"title":"Product Ids","default":[]},"style_photo_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Style Photo Id"},"use_brand_brain":{"type":"boolean","title":"Use Brand Brain","default":true},"brain_use":{"$ref":"#/components/schemas/BrainUse"},"quality":{"anyOf":[{"type":"string","enum":["480p","720p"]},{"type":"null"}],"title":"Quality"}},"additionalProperties":false,"type":"object","title":"DraftSelection"},"DraftStateOut":{"properties":{"schema_version":{"type":"string","const":"creative-brief-draft-v1","title":"Schema Version","default":"creative-brief-draft-v1"},"selection":{"$ref":"#/components/schemas/DraftSelection"},"questionnaire":{"$ref":"#/components/schemas/Questionnaire"},"references":{"items":{"$ref":"#/components/schemas/DraftReference"},"type":"array","title":"References","default":[]},"style":{"anyOf":[{"$ref":"#/components/schemas/DraftStyleOut"},{"type":"null"}]},"style_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style Name"},"style_origin":{"anyOf":[{"type":"string","enum":["user","model"]},{"type":"null"}],"title":"Style Origin"}},"additionalProperties":false,"type":"object","title":"DraftStateOut","description":"Brief draft state as shown to the owner and their agent."},"DraftStyleOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"kind":{"type":"string","enum":["library_analysis","client_document"],"title":"Kind"}},"additionalProperties":false,"type":"object","required":["id","kind"],"title":"DraftStyleOut","description":"The style chosen in the draft: its id and kind."},"ElementCreateIn":{"properties":{"assetId":{"type":"string","format":"uuid","title":"Assetid"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"category":{"type":"string","enum":["character","location","prop"],"title":"Category"},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid","description":"Only this project; null makes it shared across all projects."}},"additionalProperties":false,"type":"object","required":["assetId","name","category"],"title":"ElementCreateIn"},"ElementDeletedOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"deleted":{"type":"boolean","title":"Deleted","default":true}},"additionalProperties":false,"type":"object","required":["id"],"title":"ElementDeletedOut"},"ElementImageBody":{"properties":{"assetId":{"type":"string","format":"uuid","title":"Assetid"}},"additionalProperties":false,"type":"object","required":["assetId"],"title":"ElementImageBody","description":"Set an authorized library image as the Element's image; the previous one stays in history."},"ElementOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name","description":"The token without @: lowercase letters, digits and _."},"category":{"type":"string","enum":["character","location","prop"],"title":"Category"},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid","description":"The project it belongs to; null means shared across all projects."},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assetid","description":"The library file it was made from; it may have left the library since."},"thumbUrl":{"type":"string","title":"Thumburl"},"previewUrl":{"type":"string","title":"Previewurl"},"originalUrl":{"type":"string","title":"Originalurl"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"workspaceId":{"type":"string","format":"uuid","title":"Workspaceid"},"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"reviewStatus":{"type":"string","enum":["none","in_progress","needs_review","approved","rejected"],"title":"Reviewstatus","description":"Review status shared by the whole workspace.","default":"none"},"version":{"type":"integer","minimum":1.0,"title":"Version","description":"Number of the current image version, starting at 1.","default":1}},"additionalProperties":false,"type":"object","required":["id","name","category","projectId","assetId","thumbUrl","previewUrl","originalUrl","createdAt","updatedAt","workspaceId","mediaId"],"title":"ElementOut"},"ElementRenameBody":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"ElementRenameBody"},"ElementReviewBody":{"properties":{"status":{"type":"string","enum":["none","in_progress","needs_review","approved","rejected"],"title":"Status"}},"additionalProperties":false,"type":"object","required":["status"],"title":"ElementReviewBody","description":"Set the shared review status of an Element; none clears it."},"ElementVersionOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"number":{"type":"integer","title":"Number","description":"Version number, starting at 1; the highest is current."},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assetid","description":"The library file the image came from; it may have left the library since."},"thumbUrl":{"type":"string","title":"Thumburl"},"previewUrl":{"type":"string","title":"Previewurl"},"originalUrl":{"type":"string","title":"Originalurl"},"restoredFrom":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Restoredfrom","description":"For a restore, the number of the version whose image came back."},"usedIn":{"type":"integer","title":"Usedin","description":"How many generations used this image of the Element."},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["id","number","assetId","thumbUrl","previewUrl","originalUrl","restoredFrom","usedIn","createdAt"],"title":"ElementVersionOut","description":"One image version of an Element; the list is newest first."},"FactSourceOut":{"properties":{"url":{"type":"string","title":"Url"},"quote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote"},"mediaId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mediaid"},"fileId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Fileid"}},"type":"object","required":["url"],"title":"FactSourceOut","description":"Where a fact comes from: the page and, when available, a quote from it."},"FileImportIn":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":8,"title":"Url"},"role":{"type":"string","enum":["logo","brand_reference","product_image","brandbook"],"title":"Role"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"}},"type":"object","required":["url","role"],"title":"FileImportIn"},"FileOut":{"properties":{"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"role":{"anyOf":[{"type":"string","enum":["logo","brand_reference","product_image","brandbook","homepage_screenshot"]},{"type":"null"}],"title":"Role"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"sizeBytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sizebytes"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"previewUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewurl"},"contentUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contenturl","description":"Absolute URL of GET /api/v1/media/{mediaId}/content, with no secret in it. If your environment strips links with query parameters, download contentUrl with the same Authorization: Bearer as the API; this works for public media too. Add variant=preview for a preview; access is checked on every download."},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiresat"},"availability":{"type":"string","enum":["available","processing","missing","access_denied","temporarily_unavailable"],"title":"Availability"},"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sourceurl"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"isMain":{"type":"boolean","title":"Ismain","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"created":{"type":"boolean","title":"Created","default":true}},"type":"object","required":["mediaId","productId","availability","id","kind","name","category"],"title":"FileOut"},"FolderCreateBody":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"color":{"anyOf":[{"type":"string","enum":["grey","blue","pink","red"]},{"type":"null"}],"title":"Color"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentid"}},"additionalProperties":false,"type":"object","required":["name"],"title":"FolderCreateBody","description":"A new folder; parentId puts it inside another folder of the same project."},"FolderDeletedOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"deleted":{"type":"boolean","const":true,"title":"Deleted","default":true}},"additionalProperties":false,"type":"object","required":["id"],"title":"FolderDeletedOut"},"FolderOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentid"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"pinned":{"type":"boolean","title":"Pinned","default":false},"assetCount":{"type":"integer","title":"Assetcount","default":0},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"additionalProperties":false,"type":"object","required":["id","projectId","parentId","name","createdAt"],"title":"FolderOut","description":"A folder inside a Studio project; assetCount counts its own live files only."},"FolderUpdateBody":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"color":{"anyOf":[{"type":"string","enum":["grey","blue","pink","red"]},{"type":"null"}],"title":"Color"}},"additionalProperties":false,"type":"object","title":"FolderUpdateBody"},"FreeAllowancesOut":{"properties":{"video":{"type":"boolean","title":"Video","description":"The account's first video is free (same as account.freeVideoAvailable)."},"brandScan":{"type":"boolean","title":"Brandscan","description":"The next scan of the account's first brand is free: create_brand with a website when there is no brand yet, otherwise add_brand_sources. It usually takes 1–2 minutes."}},"type":"object","required":["video","brandScan"],"title":"FreeAllowancesOut","description":"What the account can still do for free. A payment or a promo code ends the free brand scan."},"FreeDenied":{"properties":{"reason":{"type":"string","enum":["same_content","disposable_email","account_limit"],"title":"Reason"},"message":{"type":"string","title":"Message"}},"type":"object","required":["reason","message"],"title":"FreeDenied"},"GapOut":{"properties":{"section":{"type":"string","title":"Section"},"field":{"type":"string","title":"Field"},"label":{"type":"string","title":"Label"},"hint":{"type":"string","title":"Hint"},"videoWeight":{"type":"integer","title":"Videoweight"}},"type":"object","required":["section","field","label","hint","videoWeight"],"title":"GapOut"},"GenericStudioInputIn":{"properties":{"role":{"type":"string","enum":["reference_image","first_frame","last_frame","reference_video","reference_audio"],"title":"Role","description":"Role supported by the model's inputModes."},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assetid","description":"Authorized library asset ID."},"elementId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Elementid","description":"Element ID from list_elements; only for role=reference_image, instead of assetId."}},"additionalProperties":false,"type":"object","required":["role"],"title":"GenericStudioInputIn","description":"A library asset, or an element image used as a model reference."},"GenericStudioQuoteIn":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Existing project ID from list_studio_models."},"modelId":{"type":"string","maxLength":64,"minLength":1,"title":"Modelid","description":"Public model ID from list_studio_models; use its supported input mode and options."},"prompt":{"type":"string","maxLength":20000,"title":"Prompt","description":"Required except relation=final: describe the image/video/audio. A final uses its draft's saved prompt.","default":""},"aspectRatio":{"type":"string","maxLength":16,"title":"Aspectratio","description":"Required except relation=final or an extension (relation=extend or inputMode=extend): aspect ratio supported by the model and input mode. An extension keeps its source video's shape.","default":""},"quality":{"type":"string","maxLength":32,"title":"Quality","description":"Required except relation=final: quality ID from the model catalog. A final uses finalQuality.","default":""},"count":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"Count","description":"Required except relation=final: number of outputs within maxOutputs; a final is one video.","default":1},"duration":{"anyOf":[{"type":"integer","maximum":600.0,"minimum":1.0},{"type":"null"}],"title":"Duration","description":"Required only when the selected catalog model exposes durations. Use an offered duration. Omit for prompt-guided video/music, images, speech, final, or edit modes that follow the source video. For an extension (relation=extend or inputMode=extend): the seconds to add, one of the model's extendDurations."},"inputs":{"items":{"$ref":"#/components/schemas/GenericStudioInputIn"},"type":"array","maxItems":64,"title":"Inputs","description":"Authorized studio inputs as {role, assetId}, or {role: reference_image, elementId} from list_elements. Both count toward model inputModes limits. Ignored for relation=final. For relation=extend only reference_image inputs; the source video comes from parentGenerationId. For inputMode=extend exactly one reference_video the user uploaded (origin upload), plus optional reference_image inputs."},"parentGenerationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentgenerationid","description":"Authorized source generation; required for relation=final to select the completed draft and for relation=extend to select the ready video to continue."},"relation":{"anyOf":[{"type":"string","enum":["recreate","variation","reference","final","extend"]},{"type":"null"}],"title":"Relation","description":"Optional source relationship. final creates the completed draft's final version and requires the same modelId. extend continues a ready video generation of the same workspace with a model whose inputModes list extend; it is the only way to extend a studio-made video."},"inputMode":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Inputmode","description":"Optional explicit inputModes[].id from the model catalog; omitted means infer from input roles. Ignored for final and relation=extend. extend here, without relation=extend, continues a video the user uploaded: send it as the one reference_video input."},"settings":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]},"type":"object","maxProperties":16,"title":"Settings","description":"Optional model settings keyed by controls[].id from list_studio_models: a number within min/max for range, one of options for choice. Omitted settings use their default. Send only when the user asks for a change. Ignored for final."},"resolution":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Resolution","description":"Optional image resolution: resolutions[].id from list_studio_models (for example 1k, 2k, 4k). Omitted means defaultResolution. Larger resolutions cost more; check the quote. Auto aspect ratio works only at the default resolution. Ignored for final."}},"additionalProperties":false,"type":"object","required":["projectId","modelId"],"title":"GenericStudioQuoteIn","description":"Quote direct media generation; does not start work or spend credits."},"GenericStudioQuoteOut":{"properties":{"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"catalogVersion":{"type":"string","title":"Catalogversion"},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"modelId":{"type":"string","title":"Modelid"},"mediaType":{"type":"string","enum":["image","video","audio"],"title":"Mediatype"},"confirmationRequired":{"type":"boolean","title":"Confirmationrequired","default":true},"nextAction":{"type":"string","const":"start_studio_generation","title":"Nextaction","default":"start_studio_generation"},"freeDenied":{"anyOf":[{"$ref":"#/components/schemas/FreeDenied"},{"type":"null"}]},"free":{"type":"boolean","title":"Free","description":"The whole order is currently covered by available starter credits. Keep credits as expectedCredits and pass expectedFree=true when starting.","default":false}},"type":"object","required":["credits","catalogVersion","projectId","modelId","mediaType"],"title":"GenericStudioQuoteOut","description":"Exact credit price and current coverage by the account's starter pack."},"GenericStudioStartIn":{"properties":{"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Existing project ID from list_studio_models."},"modelId":{"type":"string","maxLength":64,"minLength":1,"title":"Modelid","description":"Public model ID from list_studio_models; use its supported input mode and options."},"prompt":{"type":"string","maxLength":20000,"title":"Prompt","description":"Required except relation=final: describe the image/video/audio. A final uses its draft's saved prompt.","default":""},"aspectRatio":{"type":"string","maxLength":16,"title":"Aspectratio","description":"Required except relation=final or an extension (relation=extend or inputMode=extend): aspect ratio supported by the model and input mode. An extension keeps its source video's shape.","default":""},"quality":{"type":"string","maxLength":32,"title":"Quality","description":"Required except relation=final: quality ID from the model catalog. A final uses finalQuality.","default":""},"count":{"type":"integer","maximum":4.0,"minimum":1.0,"title":"Count","description":"Required except relation=final: number of outputs within maxOutputs; a final is one video.","default":1},"duration":{"anyOf":[{"type":"integer","maximum":600.0,"minimum":1.0},{"type":"null"}],"title":"Duration","description":"Required only when the selected catalog model exposes durations. Use an offered duration. Omit for prompt-guided video/music, images, speech, final, or edit modes that follow the source video. For an extension (relation=extend or inputMode=extend): the seconds to add, one of the model's extendDurations."},"inputs":{"items":{"$ref":"#/components/schemas/GenericStudioInputIn"},"type":"array","maxItems":64,"title":"Inputs","description":"Authorized studio inputs as {role, assetId}, or {role: reference_image, elementId} from list_elements. Both count toward model inputModes limits. Ignored for relation=final. For relation=extend only reference_image inputs; the source video comes from parentGenerationId. For inputMode=extend exactly one reference_video the user uploaded (origin upload), plus optional reference_image inputs."},"parentGenerationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parentgenerationid","description":"Authorized source generation; required for relation=final to select the completed draft and for relation=extend to select the ready video to continue."},"relation":{"anyOf":[{"type":"string","enum":["recreate","variation","reference","final","extend"]},{"type":"null"}],"title":"Relation","description":"Optional source relationship. final creates the completed draft's final version and requires the same modelId. extend continues a ready video generation of the same workspace with a model whose inputModes list extend; it is the only way to extend a studio-made video."},"inputMode":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Inputmode","description":"Optional explicit inputModes[].id from the model catalog; omitted means infer from input roles. Ignored for final and relation=extend. extend here, without relation=extend, continues a video the user uploaded: send it as the one reference_video input."},"settings":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]},"type":"object","maxProperties":16,"title":"Settings","description":"Optional model settings keyed by controls[].id from list_studio_models: a number within min/max for range, one of options for choice. Omitted settings use their default. Send only when the user asks for a change. Ignored for final."},"resolution":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Resolution","description":"Optional image resolution: resolutions[].id from list_studio_models (for example 1k, 2k, 4k). Omitted means defaultResolution. Larger resolutions cost more; check the quote. Auto aspect ratio works only at the default resolution. Ignored for final."},"expectedCredits":{"type":"number","multipleOf":0.1,"minimum":0.5,"title":"Expectedcredits","description":"Exact credits returned by quote_studio_generation for this unchanged request."},"userConfirmed":{"type":"boolean","title":"Userconfirmed","description":"True only after the user explicitly approves the request and quoted charge.","default":false},"rightsConfirmed":{"type":"boolean","title":"Rightsconfirmed","description":"True only after the user confirms permission to use the prompt and all inputs.","default":false},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"Optional approved budget exception; does not replace confirmation."},"expectedFree":{"type":"boolean","title":"Expectedfree","description":"True when the exact quote returned free=true; refuses paid fallback if coverage changes.","default":false}},"additionalProperties":false,"type":"object","required":["projectId","modelId","expectedCredits"],"title":"GenericStudioStartIn","description":"Start the approved request, resolving element images within its workspace."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HumanLinksOut":{"properties":{"connectAgent":{"type":"string","title":"Connectagent"},"tasteCalibration":{"type":"string","title":"Tastecalibration"},"docs":{"type":"string","title":"Docs"},"plans":{"type":"string","title":"Plans","description":"Where the owner chooses a plan or enters a promo code (unlocks downloads, more videos and brands).","default":""}},"type":"object","required":["connectAgent","tasteCalibration","docs"],"title":"HumanLinksOut","description":"Pages for the account owner: manage agent access and do a step by hand."},"JobErrorOut":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"retryable":{"type":"boolean","title":"Retryable"}},"type":"object","required":["code","message","retryable"],"title":"JobErrorOut"},"JobOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"kind":{"type":"string","title":"Kind"},"status":{"type":"string","enum":["queued","running","done","failed"],"title":"Status"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"resultIds":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Resultids"},"error":{"anyOf":[{"$ref":"#/components/schemas/JobErrorOut"},{"type":"null"}]},"pollAfterSeconds":{"type":"integer","minimum":0.0,"title":"Pollafterseconds"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"}},"type":"object","required":["id","kind","status","stage","resultIds","error","pollAfterSeconds","startedAt","finishedAt"],"title":"JobOut"},"KeyframeOut":{"properties":{"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"seconds":{"type":"number","title":"Seconds"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["mediaId","seconds"],"title":"KeyframeOut"},"LastActivityItemOut":{"properties":{"at":{"type":"string","format":"date-time","title":"At"},"via":{"type":"string","enum":["ui","api"],"title":"Via","description":"ui: the AISTLabs console; api: an agent connection (REST or MCP)."},"actor":{"type":"string","enum":["human","agent","system"],"title":"Actor","description":"human in the console, an agent connection, or AISTLabs's own background work."},"action":{"type":"string","title":"Action"},"summary":{"type":"string","title":"Summary"},"brand":{"anyOf":[{"$ref":"#/components/schemas/ActivityBrandOut"},{"type":"null"}]},"target":{"anyOf":[{"$ref":"#/components/schemas/ActivityTargetOut"},{"type":"null"}]},"connectionName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connectionname"}},"type":"object","required":["at","via","actor","action","summary","brand","target","connectionName"],"title":"LastActivityItemOut","description":"One feed event: what happened, through which channel and by whom."},"LastActivityOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LastActivityItemOut"},"type":"array","title":"Items"},"resume":{"anyOf":[{"$ref":"#/components/schemas/ResumeOut"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"]},{"type":"string","enum":["get_studio_generation","list_studio_assets","list_projects"]}],"title":"Nextaction"}},"additionalProperties":false,"type":"object","required":["items","resume","nextAction"],"title":"LastActivityOut"},"LimitsOut":{"properties":{"brainPatchFields":{"type":"integer","title":"Brainpatchfields"},"brainTextChars":{"type":"integer","title":"Braintextchars"},"brainItemChars":{"type":"integer","title":"Brainitemchars"},"brainBodyBytes":{"type":"integer","title":"Brainbodybytes"},"uploadFileBytes":{"type":"integer","title":"Uploadfilebytes"},"winnerVideoBytes":{"type":"integer","title":"Winnervideobytes"},"connectRequestMinutes":{"type":"integer","title":"Connectrequestminutes"},"accessTokenMinutes":{"type":"integer","title":"Accesstokenminutes"},"pageSizeMax":{"type":"integer","title":"Pagesizemax"},"mediaPageSizeMax":{"type":"integer","title":"Mediapagesizemax"},"mediaUrlTtlSeconds":{"type":"integer","title":"Mediaurlttlseconds"},"viewMediaMaxItems":{"type":"integer","title":"Viewmediamaxitems"},"viewMediaMaxEdge":{"type":"integer","title":"Viewmediamaxedge"},"viewMediaMaxBytes":{"type":"integer","title":"Viewmediamaxbytes"},"monthlyBudgetCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Monthlybudgetcredits"},"perWorkflowCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Perworkflowcredits"},"concurrentJobs":{"type":"integer","title":"Concurrentjobs"},"askAboveLimit":{"type":"boolean","title":"Askabovelimit"}},"type":"object","required":["brainPatchFields","brainTextChars","brainItemChars","brainBodyBytes","uploadFileBytes","winnerVideoBytes","connectRequestMinutes","accessTokenMinutes","pageSizeMax","mediaPageSizeMax","mediaUrlTtlSeconds","viewMediaMaxItems","viewMediaMaxEdge","viewMediaMaxBytes","monthlyBudgetCredits","perWorkflowCredits","concurrentJobs","askAboveLimit"],"title":"LimitsOut","description":"Server-wide limits plus this connection's spending policy."},"Line":{"properties":{"speaker":{"type":"string","title":"Speaker"},"text":{"type":"string","title":"Text"}},"type":"object","required":["speaker","text"],"title":"Line"},"MediaOut":{"properties":{"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"role":{"anyOf":[{"type":"string","enum":["logo","brand_reference","product_image","brandbook","homepage_screenshot"]},{"type":"null"}],"title":"Role"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"sizeBytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sizebytes"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"previewUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewurl"},"contentUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contenturl","description":"Absolute URL of GET /api/v1/media/{mediaId}/content, with no secret in it. If your environment strips links with query parameters, download contentUrl with the same Authorization: Bearer as the API; this works for public media too. Add variant=preview for a preview; access is checked on every download."},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiresat"},"availability":{"type":"string","enum":["available","processing","missing","access_denied","temporarily_unavailable"],"title":"Availability"},"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sourceurl"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"isMain":{"type":"boolean","title":"Ismain","default":false}},"type":"object","required":["mediaId","availability"],"title":"MediaOut"},"MediaPageOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MediaOut"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"type":"object","required":["items"],"title":"MediaPageOut"},"ModelCallTraceOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"operationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Operationid"},"stage":{"anyOf":[{"type":"string","enum":["story","scenario_summary","cover","direction","variations","reference_plan","media_analysis","image","other"]},{"type":"null"}],"title":"Stage"},"service":{"type":"string","enum":["language_model","video_render","video_analysis","data_collection","speech","other"],"title":"Service"},"recordedAt":{"type":"string","format":"date-time","title":"Recordedat"},"durationMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationms"},"success":{"type":"boolean","title":"Success"}},"type":"object","required":["id","operationId","stage","service","recordedAt","durationMs","success"],"title":"ModelCallTraceOut"},"MultiplierGenerateIn":{"properties":{"quality":{"type":"string","enum":["480p","720p","1080p"],"title":"Quality","description":"Video resolution the user picked for the pack."},"expectedCredits":{"type":"number","multipleOf":0.1,"minimum":0.5,"title":"Expectedcredits","description":"prices.pack for that resolution from get_multiplier_pack."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"Owner approval id when the connection's budget asks for one."}},"additionalProperties":false,"type":"object","required":["quality","expectedCredits"],"title":"MultiplierGenerateIn","description":"Make every variant of the saved plan at one video resolution."},"MultiplierPackIn":{"properties":{"sourceAssetId":{"type":"string","format":"uuid","title":"Sourceassetid","description":"Studio video asset id (4–30 seconds) from get_studio_upload or import_studio_url."},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid","description":"Optional brand whose products and voice the variants may use; any brand of the account."},"rightsConfirmed":{"type":"boolean","title":"Rightsconfirmed","description":"True only after the user confirms they may adapt this video, including the people, voices and products in it."},"expectedCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.5},{"type":"null"}],"title":"Expectedcredits","description":"The ad analysis price the user agreed to, in credits. Without it a new pack answers price_changed with the price in credits; the same video's existing pack needs no price."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"Owner approval id when the connection's budget asks for one."}},"additionalProperties":false,"type":"object","required":["sourceAssetId","rightsConfirmed"],"title":"MultiplierPackIn","description":"Start an Ad Multiplier pack from one studio video."},"MultiplierPackListOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MultiplierPackOut"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"MultiplierPackListOut","description":"Recent packs of the account, newest first, without inventories."},"MultiplierPackOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workspaceId":{"type":"string","format":"uuid","title":"Workspaceid"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"sourceAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Sourceassetid"},"status":{"type":"string","enum":["analyzing","ready","failed"],"title":"Status"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Failure code when status is failed; see docs/ad-multiplier.md."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"What to tell the user about a failure."},"probe":{"anyOf":[{"$ref":"#/components/schemas/MultiplierProbeOut"},{"type":"null"}]},"inventory":{"anyOf":[{"$ref":"#/components/schemas/studio_api__services__multiplier_inventory__Inventory"},{"type":"null"}],"description":"Scenes, people, objects, product, on-screen text and audio of the source. Present when ready."},"pollAfterSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pollafterseconds","description":"While analyzing: call get_multiplier_pack again after this many seconds."},"planRevision":{"type":"integer","title":"Planrevision","description":"Pass as expectedRevision to set_multiplier_plan.","default":0},"plan":{"anyOf":[{"$ref":"#/components/schemas/MultiplierPlanOut"},{"type":"null"}]},"references":{"items":{"$ref":"#/components/schemas/MultiplierReferenceOut"},"type":"array","title":"References"},"variants":{"items":{"$ref":"#/components/schemas/MultiplierVariantOut"},"type":"array","title":"Variants"},"prices":{"anyOf":[{"$ref":"#/components/schemas/MultiplierPricesOut"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","workspaceId","brandId","sourceAssetId","status","createdAt","updatedAt"],"title":"MultiplierPackOut","description":"An Ad Multiplier pack: the source video, its measurements and what it shows."},"MultiplierPlanOut":{"properties":{"revision":{"type":"integer","title":"Revision"},"variants":{"items":{"$ref":"#/components/schemas/StoredVariant"},"type":"array","title":"Variants"}},"type":"object","required":["revision","variants"],"title":"MultiplierPlanOut","description":"The approved plan with the flags the platform derived from the inventory."},"MultiplierPricesOut":{"properties":{"reference":{"type":"number","multipleOf":0.1,"title":"Reference","description":"One generated reference image."},"referenceWithPhoto":{"type":"number","multipleOf":0.1,"title":"Referencewithphoto","description":"One generated reference image based on the user's photo."},"pack":{"anyOf":[{"additionalProperties":{"type":"number","multipleOf":0.1},"type":"object"},{"type":"null"}],"title":"Pack","description":"The whole pack of variants by video resolution (480p, 720p, 1080p); present once a plan is saved."}},"type":"object","required":["reference","referenceWithPhoto"],"title":"MultiplierPricesOut","description":"Prices in credits; pass the matching one as expectedCredits."},"MultiplierProbeOut":{"properties":{"duration":{"type":"number","title":"Duration","description":"Picture length in seconds."},"fps":{"type":"number","title":"Fps"},"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"},"ratio":{"type":"string","title":"Ratio","description":"Nearest standard aspect ratio, or adaptive."},"hasAudio":{"type":"boolean","title":"Hasaudio"},"cuts":{"items":{"type":"number"},"type":"array","title":"Cuts","description":"Measured hard cuts, seconds from the start."}},"type":"object","required":["duration","fps","width","height","ratio","hasAudio","cuts"],"title":"MultiplierProbeOut","description":"Measured facts of the source video."},"MultiplierReferenceIn":{"properties":{"variant":{"type":"integer","minimum":1.0,"title":"Variant","description":"Variant number in the plan, from 1."},"change":{"type":"integer","minimum":1.0,"title":"Change","description":"Change number in that variant, from 1."},"photoAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Photoassetid","description":"The user's photo to base the reference on (a studio image asset)."},"revisesReferenceId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Revisesreferenceid","description":"A rejected reference to redo with feedback."},"feedback":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Feedback","description":"With revisesReferenceId: what the user wants changed, in their words."},"expectedCredits":{"type":"number","multipleOf":0.1,"minimum":0.5,"title":"Expectedcredits","description":"prices.reference or prices.referenceWithPhoto from get_multiplier_pack."},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid","description":"Owner approval id when the connection's budget asks for one."}},"additionalProperties":false,"type":"object","required":["variant","change","expectedCredits"],"title":"MultiplierReferenceIn","description":"Generate one reference image for a change in the approved plan."},"MultiplierReferenceOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"packId":{"type":"string","format":"uuid","title":"Packid"},"variant":{"type":"integer","title":"Variant"},"change":{"type":"integer","title":"Change"},"kind":{"type":"string","title":"Kind"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"status":{"type":"string","enum":["writing","generating","ready","failed"],"title":"Status"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"What to tell the user about a failure."},"asset":{"anyOf":[{"$ref":"#/components/schemas/StudioAssetOut"},{"type":"null"}],"description":"The ready image: show it to the user; after approval put asset.id into the plan."},"revisesReferenceId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Revisesreferenceid"},"estimateCredits":{"type":"number","multipleOf":0.1,"title":"Estimatecredits"},"pollAfterSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pollafterseconds"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","packId","variant","change","kind","target","status","estimateCredits","createdAt"],"title":"MultiplierReferenceOut","description":"A generated reference image and its state."},"MultiplierVariantOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"number":{"type":"integer","title":"Number"},"label":{"type":"string","title":"Label"},"quality":{"type":"string","enum":["480p","720p","1080p"],"title":"Quality"},"status":{"type":"string","enum":["writing","queued","rendering","finishing","voicing","mixing","ready","failed"],"title":"Status"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"What to tell the user about a failure."},"asset":{"anyOf":[{"$ref":"#/components/schemas/StudioAssetOut"},{"type":"null"}],"description":"The finished video: send it to the user."},"voicePending":{"type":"boolean","title":"Voicepending","description":"The new voice is being made; the video comes when it is ready.","default":false},"estimateCredits":{"type":"number","multipleOf":0.1,"title":"Estimatecredits"},"pollAfterSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pollafterseconds"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","number","label","quality","status","estimateCredits","createdAt"],"title":"MultiplierVariantOut","description":"A variant being made, and its finished video."},"OAuthRegisterIn":{"properties":{"clientName":{"type":"string","maxLength":200,"minLength":1,"title":"Clientname"},"redirectUris":{"items":{"type":"string"},"type":"array","maxItems":10,"minItems":1,"title":"Redirecturis"}},"type":"object","required":["clientName","redirectUris"],"title":"OAuthRegisterIn"},"OptionOut":{"properties":{"value":{"type":"string","title":"Value"},"label":{"type":"string","title":"Label"}},"type":"object","required":["value","label"],"title":"OptionOut","description":"An allowed value: send `value`; `label` is for display."},"PerformanceAdOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"competitorId":{"type":"string","format":"uuid","title":"Competitorid"},"competitorName":{"type":"string","title":"Competitorname"},"providerAdId":{"type":"string","title":"Provideradid"},"active":{"type":"boolean","title":"Active"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"cta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta"},"landingUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landingurl"},"videoUrl":{"type":"string","title":"Videourl"},"thumbnailUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnailurl"},"platforms":{"items":{"type":"string"},"type":"array","title":"Platforms"},"countries":{"items":{"type":"string"},"type":"array","title":"Countries"},"reachEstimate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reachestimate"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startedat"},"endedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Endedat"},"collationCount":{"type":"integer","title":"Collationcount"},"momentumScore":{"type":"integer","title":"Momentumscore"},"signals":{"items":{"type":"string"},"type":"array","title":"Signals"}},"type":"object","required":["id","competitorId","competitorName","providerAdId","active","body","title","cta","landingUrl","videoUrl","thumbnailUrl","platforms","countries","reachEstimate","startedAt","endedAt","collationCount","momentumScore","signals"],"title":"PerformanceAdOut"},"PerformanceBatchCreate":{"properties":{"referenceAdIds":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":1,"minItems":1,"title":"Referenceadids"},"brief":{"type":"string","maxLength":4000,"title":"Brief","default":""},"directions":{"items":{"type":"string"},"type":"array","maxItems":8,"title":"Directions"},"adaptationRequest":{"type":"string","maxLength":4000,"title":"Adaptationrequest","default":""},"variantCount":{"type":"integer","minimum":1.0,"title":"Variantcount","default":6},"quality":{"type":"string","enum":["480p","720p"],"title":"Quality","default":"720p"},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","required":["referenceAdIds"],"title":"PerformanceBatchCreate"},"PerformanceBatchOut":{"properties":{"revision":{"anyOf":[{"$ref":"#/components/schemas/PerformanceRevisionOut"},{"type":"null"}]},"id":{"type":"string","format":"uuid","title":"Id"},"scanId":{"type":"string","format":"uuid","title":"Scanid"},"referenceAdIds":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Referenceadids"},"brief":{"type":"string","title":"Brief"},"directions":{"items":{"type":"string"},"type":"array","title":"Directions"},"adaptationRequest":{"type":"string","title":"Adaptationrequest","default":""},"productIds":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Productids"},"referenceSelections":{"items":{"$ref":"#/components/schemas/PerformanceReferenceSelection"},"type":"array","title":"Referenceselections"},"patternSummary":{"anyOf":[{"$ref":"#/components/schemas/PerformancePatternSummary"},{"type":"null"}]},"referenceRequirements":{"items":{"$ref":"#/components/schemas/PerformanceReferenceRequirement"},"type":"array","title":"Referencerequirements"},"nextAction":{"type":"string","enum":["wait_for_analysis","retry_analysis","supply_references","start_generation","wait_for_generation","review_results","retry_generation"],"title":"Nextaction"},"canEdit":{"type":"boolean","title":"Canedit","default":false},"generationRequested":{"type":"boolean","title":"Generationrequested","default":false},"variantCount":{"type":"integer","title":"Variantcount"},"quality":{"type":"string","title":"Quality"},"status":{"type":"string","title":"Status"},"percent":{"type":"integer","title":"Percent"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"variations":{"items":{"$ref":"#/components/schemas/PerformanceVariationOut"},"type":"array","title":"Variations"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"job":{"anyOf":[{"$ref":"#/components/schemas/JobOut"},{"type":"null"}]}},"type":"object","required":["id","scanId","referenceAdIds","brief","directions","nextAction","variantCount","quality","status","percent","activity","error","variations","createdAt","updatedAt"],"title":"PerformanceBatchOut"},"PerformanceBatchPatch":{"properties":{"adaptationRequest":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Adaptationrequest"},"variantCount":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Variantcount"},"quality":{"anyOf":[{"type":"string","enum":["480p","720p"]},{"type":"null"}],"title":"Quality"},"productIds":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":3,"minItems":1},{"type":"null"}],"title":"Productids"},"referenceSelections":{"anyOf":[{"items":{"$ref":"#/components/schemas/PerformanceReferenceSelection"},"type":"array","maxItems":12},{"type":"null"}],"title":"Referenceselections"}},"type":"object","title":"PerformanceBatchPatch"},"PerformanceCompetitorOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"competitorType":{"type":"string","title":"Competitortype"},"confidence":{"type":"integer","title":"Confidence"},"status":{"type":"string","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"metaPageId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metapageid"},"metaPageName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metapagename"},"metaCategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metacategory"},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Imageurl"},"instagramUsername":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagramusername"},"facebookLikes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Facebooklikes"},"instagramFollowers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Instagramfollowers"}},"type":"object","required":["id","name","domain","description","competitorType","confidence","status","reason","metaPageId","metaPageName","metaCategory","imageUrl","instagramUsername","facebookLikes","instagramFollowers"],"title":"PerformanceCompetitorOut"},"PerformanceGenerateIn":{"properties":{"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","title":"PerformanceGenerateIn","description":"Start directing and rendering every take of a winner batch."},"PerformancePatternSummary":{"properties":{"title":{"type":"string","title":"Title","default":""},"mechanism":{"type":"string","title":"Mechanism","default":""},"structure":{"type":"string","title":"Structure","default":""},"productRole":{"type":"string","title":"Productrole","default":""}},"type":"object","title":"PerformancePatternSummary"},"PerformanceReferenceEditOut":{"properties":{"reference":{"type":"string","title":"Reference"},"sourceMediaId":{"type":"string","title":"Sourcemediaid"},"startS":{"type":"number","title":"Starts"},"endS":{"type":"number","title":"Ends"},"purpose":{"type":"string","title":"Purpose"},"preserve":{"type":"string","title":"Preserve"},"sceneStartS":{"type":"number","title":"Scenestarts"},"sceneEndS":{"type":"number","title":"Sceneends"},"interaction":{"type":"string","title":"Interaction"},"clipUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clipurl"}},"type":"object","required":["reference","sourceMediaId","startS","endS","purpose","preserve","sceneStartS","sceneEndS","interaction"],"title":"PerformanceReferenceEditOut"},"PerformanceReferenceRequirement":{"properties":{"id":{"type":"string","maxLength":80,"minLength":1,"title":"Id"},"kind":{"type":"string","enum":["product","product_angle","packaging","location","interface","character","asset"],"title":"Kind"},"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label"},"reason":{"type":"string","maxLength":500,"minLength":1,"title":"Reason"},"priority":{"type":"string","enum":["required","recommended","optional"],"title":"Priority"},"minCount":{"type":"integer","maximum":5.0,"minimum":0.0,"title":"Mincount","default":0},"maxCount":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Maxcount","default":1},"skipBehavior":{"type":"string","enum":["blocked","omit","generate_generic"],"title":"Skipbehavior"}},"type":"object","required":["id","kind","label","reason","priority","skipBehavior"],"title":"PerformanceReferenceRequirement"},"PerformanceReferenceSelection":{"properties":{"requirementId":{"type":"string","maxLength":80,"minLength":1,"title":"Requirementid"},"mediaIds":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":10,"title":"Mediaids"},"skipped":{"type":"boolean","title":"Skipped","default":false}},"type":"object","required":["requirementId"],"title":"PerformanceReferenceSelection"},"PerformanceRevisionOut":{"properties":{"parentBatchId":{"type":"string","format":"uuid","title":"Parentbatchid"},"parentContentId":{"type":"string","format":"uuid","title":"Parentcontentid"},"parentTitle":{"type":"string","title":"Parenttitle"},"feedback":{"type":"string","title":"Feedback"}},"type":"object","required":["parentBatchId","parentContentId","parentTitle","feedback"],"title":"PerformanceRevisionOut"},"PerformanceScanCreate":{"properties":{"category":{"type":"string","maxLength":200,"minLength":2,"title":"Category"},"markets":{"items":{"type":"string"},"type":"array","maxItems":6,"minItems":1,"title":"Markets"}},"type":"object","required":["category","markets"],"title":"PerformanceScanCreate"},"PerformanceScanOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"category":{"type":"string","title":"Category"},"markets":{"items":{"type":"string"},"type":"array","title":"Markets"},"status":{"type":"string","title":"Status"},"percent":{"type":"integer","title":"Percent"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"metaEnabled":{"type":"boolean","title":"Metaenabled"},"competitors":{"items":{"$ref":"#/components/schemas/PerformanceCompetitorOut"},"type":"array","title":"Competitors"},"ads":{"items":{"$ref":"#/components/schemas/PerformanceAdOut"},"type":"array","title":"Ads"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"job":{"anyOf":[{"$ref":"#/components/schemas/JobOut"},{"type":"null"}]},"uploadedAdId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Uploadedadid","description":"ID of the ad created by this upload; set only in the upload response."}},"type":"object","required":["id","brandId","category","markets","status","percent","activity","error","metaEnabled","competitors","ads","createdAt","updatedAt"],"title":"PerformanceScanOut"},"PerformanceVariationOut":{"properties":{"index":{"type":"integer","title":"Index"},"title":{"type":"string","title":"Title"},"hook":{"type":"string","title":"Hook"},"mechanism":{"type":"string","title":"Mechanism"},"angle":{"type":"string","title":"Angle"},"contentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contentid"},"status":{"type":"string","title":"Status","default":"planned"},"videoUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Videourl"},"coverUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverurl","description":"Still image of this variation's video, to show before playback."},"durationSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationseconds","description":"Length of this variation's video in seconds."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Why this variation has no video yet, when status is failed. Retrying the batch makes a held-back variation from its saved script"},"downloadLocked":{"type":"boolean","title":"Downloadlocked","description":"True when this account may not download videos yet: videoUrl is null. Give the user humanUrl to watch the video in AISTLabs; the owner unlocks downloads with a promo code or a plan.","default":false},"humanUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Humanurl","description":"AISTLabs page with this batch's results, where the user watches this video."},"referenceEdits":{"items":{"$ref":"#/components/schemas/PerformanceReferenceEditOut"},"type":"array","title":"Referenceedits"}},"type":"object","required":["index","title","hook","mechanism","angle"],"title":"PerformanceVariationOut"},"PersonReplacement":{"properties":{"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"},"target":{"type":"string","title":"Target"},"speaksOnCamera":{"type":"boolean","title":"Speaksoncamera"}},"type":"object","required":["target","speaksOnCamera"],"title":"PersonReplacement"},"PhaseTraceOut":{"properties":{"phase":{"type":"string","enum":["concepts","director"],"title":"Phase"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"executionState":{"type":"string","enum":["queued","running","recovering","idle","unknown"],"title":"Executionstate"},"currentStage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currentstage"},"lastAttemptedStage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastattemptedstage"},"lastCompletedStage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastcompletedstage"},"researchSource":{"anyOf":[{"type":"string","enum":["precomputed","live","unknown"]},{"type":"null"}],"title":"Researchsource"},"enqueuedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enqueuedat"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"elapsedMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Elapsedms"},"knownQueueWaitMs":{"type":"integer","title":"Knownqueuewaitms"},"queueTimingComplete":{"type":"boolean","title":"Queuetimingcomplete"},"checkpoints":{"items":{"$ref":"#/components/schemas/StageCheckpointOut"},"type":"array","title":"Checkpoints"},"stageAttempts":{"items":{"$ref":"#/components/schemas/StageAttemptOut"},"type":"array","title":"Stageattempts"}},"type":"object","required":["phase","status","executionState","currentStage","lastAttemptedStage","lastCompletedStage","researchSource","enqueuedAt","startedAt","finishedAt","elapsedMs","knownQueueWaitMs","queueTimingComplete","checkpoints","stageAttempts"],"title":"PhaseTraceOut"},"PlanIn":{"properties":{"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision","description":"planRevision from get_multiplier_pack; a newer plan is refused."},"variants":{"items":{"$ref":"#/components/schemas/VariantIn"},"type":"array","maxItems":12,"minItems":1,"title":"Variants","description":"One row per variant, at most 12 per pack."}},"additionalProperties":false,"type":"object","required":["expectedRevision","variants"],"title":"PlanIn","description":"The approved plan of a pack. Replaces the previous plan."},"Product":{"properties":{"description":{"type":"string","title":"Description","default":""},"placement":{"type":"string","enum":["worn","held","placed","shown"],"title":"Placement"},"by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"By"},"scenes":{"items":{"type":"integer"},"type":"array","title":"Scenes"}},"type":"object","required":["placement"],"title":"Product"},"ProductCreateIn":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"category":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Category"},"description":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Description"},"photoUrl":{"anyOf":[{"type":"string","maxLength":2000,"minLength":8},{"type":"null"}],"title":"Photourl","description":"Public link to the product image itself. A clean photo works best: text added on the image (slogans, prices, badges) can appear in the video."}},"type":"object","required":["name"],"title":"ProductCreateIn"},"ProductOut":{"properties":{"videoEligible":{"type":"boolean","title":"Videoeligible","description":"True when create_content accepts this product: it has a usable photo and is not a pricing plan.","default":true},"eligibilityNote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibilitynote","description":"Why videoEligible is false."},"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"hasPhoto":{"type":"boolean","title":"Hasphoto"},"photo":{"anyOf":[{"$ref":"#/components/schemas/MediaOut"},{"type":"null"}]},"mediaCount":{"type":"integer","title":"Mediacount","default":0},"status":{"type":"string","title":"Status"},"origin":{"type":"string","title":"Origin"},"saved":{"type":"boolean","title":"Saved","default":true},"photoReady":{"type":"boolean","title":"Photoready","default":false},"reviewStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewstatus"},"warnings":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Warnings","description":"possible_duplicate: the brand already has this product under another spelling."}},"type":"object","required":["id","name","category","description","hasPhoto","status","origin"],"title":"ProductOut"},"ProductPatchIn":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"category":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Category"},"description":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Description"},"photoUrl":{"anyOf":[{"type":"string","maxLength":2000,"minLength":8},{"type":"null"}],"title":"Photourl","description":"Public link to the product image itself. A clean photo works best: text added on the image (slogans, prices, badges) can appear in the video."}},"type":"object","title":"ProductPatchIn"},"ProductPhotosOut":{"properties":{"brandId":{"type":"string","format":"uuid","title":"Brandid"},"items":{"items":{"$ref":"#/components/schemas/StudioProductPhotosOut"},"type":"array","title":"Items"}},"type":"object","required":["brandId","items"],"title":"ProductPhotosOut"},"ProductionOut":{"properties":{"keyframes":{"items":{"$ref":"#/components/schemas/KeyframeOut"},"type":"array","title":"Keyframes"},"coverMediaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Covermediaid"},"inspectionNote":{"type":"string","title":"Inspectionnote","default":"Keyframes are visual samples, not a full quality check. Inspect the video and final frame before approving text or claims."},"status":{"type":"string","enum":["starting","generating","ready","failed"],"title":"Status"},"quality":{"type":"string","title":"Quality"},"durationSeconds":{"type":"integer","title":"Durationseconds"},"creditsUsed":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Creditsused"},"isTrial":{"type":"boolean","title":"Istrial"},"videoUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Videourl","description":"Signed, time-limited link to the video file. Null until the video is ready, and null while downloading is locked on this account (see downloadLocked). When watermarked is true, this is the copy with the AISTLabs watermark."},"watermarked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Watermarked","description":"True when videoUrl is the copy with the AISTLabs watermark: this account has never paid. After the first payment, new links to this video are without the watermark."},"downloadName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Downloadname","description":"File name to save videoUrl under, Latin letters only. Null with videoUrl."},"downloadLocked":{"type":"boolean","title":"Downloadlocked","description":"True when this account may not download videos yet: videoUrl is null. Set from the start of the render. When the video is ready, show the cover and keyframes (view_media) and give the user humanUrl to watch the video in AISTLabs. The owner unlocks downloads at plansUrl with a plan or a promo code; then call download_video.","default":false},"humanUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Humanurl","description":"AISTLabs page that opens this video in the player; the user signs in with this account."},"plansUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plansurl","description":"AISTLabs page where the owner chooses a plan or enters a promo code to unlock downloads; null when downloads are open."},"coverUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverurl"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"job":{"anyOf":[{"$ref":"#/components/schemas/JobOut"},{"type":"null"}]}},"type":"object","required":["status","quality","durationSeconds","creditsUsed","isTrial","videoUrl","coverUrl","error","createdAt"],"title":"ProductionOut"},"ProjectCreateIn":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"color":{"anyOf":[{"type":"string","enum":["neutral","blue","aqua","cian","green","yellow","red","pink","hotpink","purple"]},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"},"workspaceId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workspaceid","description":"Authorized workspace; omitted uses the connection's workspace or Studio home."}},"additionalProperties":false,"type":"object","required":["name"],"title":"ProjectCreateIn"},"ProjectDeletedOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"deleted":{"type":"boolean","title":"Deleted","default":true}},"additionalProperties":false,"type":"object","required":["id"],"title":"ProjectDeletedOut"},"ProjectOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"brandName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brandname"},"isDefault":{"type":"boolean","title":"Isdefault"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"pinned":{"type":"boolean","title":"Pinned","default":false},"workspaceId":{"type":"string","format":"uuid","title":"Workspaceid"},"workspaceName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspacename"}},"additionalProperties":false,"type":"object","required":["id","name","brandId","brandName","isDefault","createdAt","workspaceId"],"title":"ProjectOut"},"ProjectUpdateBody":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"color":{"anyOf":[{"type":"string","enum":["neutral","blue","aqua","cian","green","yellow","red","pink","hotpink","purple"]},{"type":"null"}],"title":"Color"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Description"}},"additionalProperties":false,"type":"object","title":"ProjectUpdateBody"},"PromoActivateIn":{"properties":{"code":{"type":"string","maxLength":128,"minLength":1,"title":"Code"},"termsVersion":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Termsversion"}},"type":"object","required":["code"],"title":"PromoActivateIn"},"PromoActivationOut":{"properties":{"accountPromo":{"anyOf":[{"$ref":"#/components/schemas/AccountPromoOut"},{"type":"null"}]},"promoTrial":{"anyOf":[{"$ref":"#/components/schemas/PromoTrialOut"},{"type":"null"}]},"canDownloadVideos":{"type":"boolean","title":"Candownloadvideos"},"balance":{"type":"number","multipleOf":0.1,"title":"Balance"},"alreadyActivated":{"type":"boolean","title":"Alreadyactivated"}},"type":"object","required":["canDownloadVideos","balance","alreadyActivated"],"title":"PromoActivationOut"},"PromoCodeIn":{"properties":{"code":{"type":"string","maxLength":128,"minLength":1,"title":"Code"}},"type":"object","required":["code"],"title":"PromoCodeIn"},"PromoDownloadOut":{"properties":{"videoUrl":{"type":"string","title":"Videourl"},"generationId":{"type":"string","format":"uuid","title":"Generationid"},"downloadName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Downloadname","description":"File name to save the video under, Latin letters only."}},"type":"object","required":["videoUrl","generationId"],"title":"PromoDownloadOut"},"PromoPreviewOut":{"properties":{"kind":{"type":"string","enum":["trial","discount"],"title":"Kind","default":"trial"},"discountPercent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discountpercent"},"code":{"type":"string","title":"Code"},"sourceName":{"type":"string","title":"Sourcename"},"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"durationDays":{"type":"integer","title":"Durationdays"},"activationDeadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Activationdeadline"},"termsVersion":{"type":"integer","title":"Termsversion"},"alreadyActivated":{"type":"boolean","title":"Alreadyactivated","default":false}},"type":"object","required":["code","sourceName","credits","durationDays","activationDeadline","termsVersion"],"title":"PromoPreviewOut"},"PromoStatusOut":{"properties":{"accountPromo":{"anyOf":[{"$ref":"#/components/schemas/AccountPromoOut"},{"type":"null"}]},"promoTrial":{"anyOf":[{"$ref":"#/components/schemas/PromoTrialOut"},{"type":"null"}]},"canDownloadVideos":{"type":"boolean","title":"Candownloadvideos"},"balance":{"type":"number","multipleOf":0.1,"title":"Balance"}},"type":"object","required":["canDownloadVideos","balance"],"title":"PromoStatusOut"},"PromoTrialOut":{"properties":{"code":{"type":"string","title":"Code"},"sourceName":{"type":"string","title":"Sourcename"},"creditsGranted":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Creditsgranted"},"creditsRemaining":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Creditsremaining"},"activatedAt":{"type":"string","format":"date-time","title":"Activatedat"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"status":{"type":"string","enum":["active","expired","exhausted"],"title":"Status"}},"type":"object","required":["code","sourceName","creditsGranted","creditsRemaining","activatedAt","expiresAt","status"],"title":"PromoTrialOut"},"Questionnaire":{"properties":{"profile":{"type":"string","enum":["full","fast"],"title":"Profile","default":"full"},"schema_version":{"type":"string","enum":["creative-questionnaire-v1","creative-questionnaire-v2"],"title":"Schema Version","default":"creative-questionnaire-v1"},"answers":{"items":{"$ref":"#/components/schemas/Answer"},"type":"array","title":"Answers"}},"additionalProperties":false,"type":"object","required":["answers"],"title":"Questionnaire"},"QueueTraceOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"phase":{"type":"string","title":"Phase"},"status":{"type":"string","title":"Status"},"attempts":{"type":"integer","title":"Attempts"},"enqueuedAt":{"type":"string","format":"date-time","title":"Enqueuedat"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startedat"},"lastStartedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Laststartedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"initialQueueWaitMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Initialqueuewaitms"},"leaseExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Leaseexpiresat"},"leaseActive":{"type":"boolean","title":"Leaseactive"}},"type":"object","required":["id","phase","status","attempts","enqueuedAt","startedAt","lastStartedAt","finishedAt","initialQueueWaitMs","leaseExpiresAt","leaseActive"],"title":"QueueTraceOut"},"ResumeOut":{"properties":{"kind":{"type":"string","enum":["content","brief_draft","studio_generation","studio_project"],"title":"Kind"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"brandName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brandname"},"brandNamed":{"type":"boolean","title":"Brandnamed","default":false},"contentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contentid"},"draftId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Draftid"},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Projectid"},"generationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Generationid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"modelId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelid"},"modelName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelname"},"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mediatype"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updatedat"},"nextAction":{"anyOf":[{"type":"string","enum":["get_brief_draft","submit_brief_draft","create_brand","choose_brand","create_product","wait","calibrate_taste","create_content","retry_concepts","retry_story","start_production","done","retry_production","get_performance_batch"]},{"type":"string","enum":["get_studio_generation","list_studio_assets","list_projects"]}],"title":"Nextaction"},"stage":{"type":"string","title":"Stage"}},"additionalProperties":false,"type":"object","required":["kind","nextAction","stage"],"title":"ResumeOut"},"ScanOut":{"properties":{"status":{"type":"string","title":"Status"},"percent":{"type":"integer","title":"Percent"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"job":{"anyOf":[{"$ref":"#/components/schemas/JobOut"},{"type":"null"}]},"estimatedCredits":{"anyOf":[{"type":"number","multipleOf":0.1,"minimum":0.0},{"type":"null"}],"title":"Estimatedcredits","description":"Credits this scan spends: 0 for the free first brand scan, otherwise a typical scan price; the actual charge follows usage. Whether the next scan is free: get_me freeAllowances.brandScan."},"estimateSource":{"anyOf":[{"type":"string","enum":["free_first_scan","operation_estimate"]},{"type":"null"}],"title":"Estimatesource","description":"free_first_scan: the free scan of a new account's first brand; operation_estimate: a typical scan price."}},"type":"object","required":["status","percent","activity","error"],"title":"ScanOut"},"Scene":{"properties":{"start":{"type":"number","title":"Start"},"end":{"type":"number","title":"End"},"shot":{"type":"string","title":"Shot","default":""},"visible":{"type":"string","title":"Visible","default":""},"speech":{"items":{"$ref":"#/components/schemas/Line"},"type":"array","title":"Speech"}},"type":"object","required":["start","end"],"title":"Scene"},"ScreenText":{"properties":{"text":{"type":"string","minLength":1,"title":"Text"},"start":{"type":"number","title":"Start"},"end":{"type":"number","title":"End"},"position":{"type":"string","title":"Position","default":""}},"type":"object","required":["text","start","end"],"title":"ScreenText"},"SourceIn":{"properties":{"kind":{"type":"string","maxLength":32,"title":"Kind","description":"website, instagram, tiktok, youtube, store, press or other."},"url":{"type":"string","maxLength":2000,"minLength":1,"title":"Url","description":"Address of the source; a social profile may also be an @handle."}},"type":"object","required":["kind","url"],"title":"SourceIn","description":"A public source AISTLabs reads to learn the brand: a web page or a social profile."},"SourcesIn":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/SourceIn"},"type":"array","maxItems":12,"minItems":1,"title":"Sources"},"rescan":{"type":"boolean","title":"Rescan","default":true},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","required":["sources"],"title":"SourcesIn"},"SpendOperationOut":{"properties":{"operation":{"type":"string","title":"Operation"},"jobId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Jobid"},"contentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Contentid"},"credits":{"type":"number","multipleOf":0.1,"title":"Credits"},"balanceAfter":{"anyOf":[{"type":"number","multipleOf":0.1},{"type":"null"}],"title":"Balanceafter"},"at":{"type":"string","format":"date-time","title":"At"}},"type":"object","required":["operation","credits","at"],"title":"SpendOperationOut"},"SpendOut":{"properties":{"monthlyBudgetCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Monthlybudgetcredits"},"spentThisMonth":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Spentthismonth"},"remainingThisMonth":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Remainingthismonth"},"perWorkflowCredits":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Perworkflowcredits"},"concurrentJobs":{"type":"integer","title":"Concurrentjobs"},"activeJobs":{"type":"integer","title":"Activejobs"},"accountCredits":{"type":"number","multipleOf":0.1,"title":"Accountcredits"},"freeVideoAvailable":{"type":"boolean","title":"Freevideoavailable"},"operations":{"items":{"$ref":"#/components/schemas/SpendOperationOut"},"type":"array","title":"Operations"}},"type":"object","required":["monthlyBudgetCredits","spentThisMonth","remainingThisMonth","perWorkflowCredits","concurrentJobs","activeJobs","accountCredits","freeVideoAvailable"],"title":"SpendOut"},"StageAttemptOut":{"properties":{"stage":{"type":"string","title":"Stage"},"status":{"type":"string","enum":["running","ready","failed","interrupted"],"title":"Status"},"startedAt":{"type":"string","format":"date-time","title":"Startedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"durationMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationms"},"errorType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Errortype"}},"type":"object","required":["stage","status","startedAt","finishedAt","durationMs","errorType"],"title":"StageAttemptOut"},"StageCheckpointOut":{"properties":{"stage":{"type":"string","title":"Stage"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startedat"},"finishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finishedat"},"durationMs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationms"}},"type":"object","required":["stage","startedAt","finishedAt","durationMs"],"title":"StageCheckpointOut"},"StartProductionIn":{"properties":{"quality":{"type":"string","enum":["480p","720p"],"title":"Quality","description":"Used only when the order did not fix a resolution at creation; get_content renderQuality shows what will render and estimatedRenderCredits its cost.","default":"720p"},"aspectRatio":{"anyOf":[{"type":"string","enum":["9:16","16:9"]},{"type":"null"}],"title":"Aspectratio"},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","title":"StartProductionIn"},"StoredChange":{"properties":{"kind":{"type":"string","title":"Kind"},"target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"referenceAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Referenceassetid"},"tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"ageBand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ageband"},"voiceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voiceid"}},"type":"object","required":["kind"],"title":"StoredChange"},"StoredVariant":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"request":{"type":"string","title":"Request"},"changes":{"items":{"$ref":"#/components/schemas/StoredChange"},"type":"array","title":"Changes"},"removeText":{"type":"boolean","title":"Removetext","default":false},"wholeFrame":{"type":"boolean","title":"Wholeframe","default":false},"productsKept":{"items":{"type":"string"},"type":"array","title":"Productskept"},"personReplacements":{"items":{"$ref":"#/components/schemas/PersonReplacement"},"type":"array","title":"Personreplacements"},"voiceSwap":{"items":{"type":"string"},"type":"array","title":"Voiceswap"},"voiceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voiceid"},"voiceMissing":{"type":"boolean","title":"Voicemissing","default":false},"missingReferences":{"type":"integer","title":"Missingreferences","default":0}},"type":"object","required":["id","label","request","changes"],"title":"StoredVariant"},"StoryActionIn":{"properties":{"action":{"type":"string","enum":["retry","revise","new_idea"],"title":"Action","default":"retry"},"feedback":{"type":"string","maxLength":4000,"title":"Feedback","default":""},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","title":"StoryActionIn"},"StudioAssetDeleteOut":{"properties":{"assetId":{"type":"string","format":"uuid","title":"Assetid"},"deleted":{"type":"boolean","const":true,"title":"Deleted","default":true}},"type":"object","required":["assetId"],"title":"StudioAssetDeleteOut"},"StudioAssetOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"mediaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mediaid","description":"Authorized media identifier for view_media; not the asset id."},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"mediaType":{"type":"string","enum":["image","video","audio"],"title":"Mediatype"},"origin":{"type":"string","enum":["generated","upload"],"title":"Origin"},"generationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Generationid"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid","description":"Brand product this image is a photo of, if any."},"modelLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modellabel"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","description":"Quality the result was ordered in (catalog quality id)."},"qualityLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qualitylabel","description":"Display label of that quality, for example 720p or High."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"durationSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationseconds"},"thumbUrl":{"type":"string","title":"Thumburl"},"url":{"type":"string","title":"Url"},"originalUrl":{"type":"string","title":"Originalurl"},"watermarkPending":{"type":"boolean","title":"Watermarkpending","default":false},"liked":{"type":"boolean","title":"Liked","description":"Whether the person marked the file as a favourite.","default":false},"downloadName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Downloadname","description":"File name to save the original under, Latin letters only."},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","projectId","mediaType","origin","generationId","modelLabel","width","height","thumbUrl","url","originalUrl","createdAt"],"title":"StudioAssetOut","description":"A library item: a generated result or an upload."},"StudioAssetsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StudioPlacedAssetOut"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"type":"object","required":["items","nextCursor"],"title":"StudioAssetsOut"},"StudioControlOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"kind":{"type":"string","enum":["range","choice","voice"],"title":"Kind"},"default":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"}],"title":"Default"},"description":{"type":"string","title":"Description","default":""},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max"},"step":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Step"},"options":{"items":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"}]},"type":"array","title":"Options"},"appliesToModes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Appliestomodes"}},"type":"object","required":["id","label","kind","default"],"title":"StudioControlOut","description":"A model setting beyond quality and duration; send it in settings by id."},"StudioGenerationsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentStudioGenerationOut"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"type":"object","required":["items","nextCursor"],"title":"StudioGenerationsOut"},"StudioInputImageFrameOut":{"properties":{"mimes":{"items":{"type":"string"},"type":"array","title":"Mimes"},"maxBytes":{"type":"integer","title":"Maxbytes"},"minShort":{"type":"integer","title":"Minshort"},"maxShort":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxshort"},"maxLong":{"type":"integer","title":"Maxlong"},"maxScale":{"type":"number","title":"Maxscale"},"maxOutputLong":{"type":"integer","title":"Maxoutputlong"},"maxRatio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxratio"}},"type":"object","required":["mimes","maxBytes","minShort","maxLong","maxScale","maxOutputLong"],"title":"StudioInputImageFrameOut","description":"Which input image an upscaling model takes and how far it enlarges it."},"StudioInputModeOut":{"properties":{"id":{"type":"string","title":"Id"},"roles":{"items":{"$ref":"#/components/schemas/StudioInputRoleOut"},"type":"array","title":"Roles"},"aspectRatios":{"items":{"type":"string"},"type":"array","title":"Aspectratios"},"followsSource":{"type":"boolean","title":"Followssource","default":false},"maxImagesWithVideo":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maximageswithvideo"},"maxInputs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxinputs"},"silentWithVideo":{"type":"boolean","title":"Silentwithvideo","default":false},"sourceSound":{"type":"boolean","title":"Sourcesound","default":false}},"type":"object","required":["id","roles"],"title":"StudioInputModeOut","description":"A set of input roles the model takes together; a request fits exactly one."},"StudioInputOut":{"properties":{"role":{"type":"string","enum":["reference_image","first_frame","last_frame","reference_video","reference_audio"],"title":"Role"},"position":{"type":"integer","title":"Position"},"source":{"type":"string","enum":["asset","brand_file"],"title":"Source"},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assetid"},"brandFileId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandfileid"},"thumbUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumburl"}},"type":"object","required":["role","position","source","assetId","brandFileId","thumbUrl"],"title":"StudioInputOut","description":"An input that went into a generation."},"StudioInputRoleOut":{"properties":{"role":{"type":"string","enum":["reference_image","first_frame","last_frame","reference_video","reference_audio"],"title":"Role"},"min":{"type":"integer","title":"Min"},"max":{"type":"integer","title":"Max"}},"type":"object","required":["role","min","max"],"title":"StudioInputRoleOut","description":"Which inputs a model takes and how many."},"StudioLibraryProjectOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"rootId":{"type":"string","format":"uuid","title":"Rootid"},"kind":{"type":"string","enum":["social","performance"],"title":"Kind"},"brandId":{"type":"string","format":"uuid","title":"Brandid"},"brandName":{"type":"string","title":"Brandname"},"workspaceId":{"type":"string","format":"uuid","title":"Workspaceid"},"workspaceName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspacename"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"status":{"type":"string","title":"Status"},"liked":{"type":"boolean","title":"Liked"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"resultUrl":{"type":"string","title":"Resulturl"},"nextAction":{"type":"string","enum":["get_content","get_performance_batch"],"title":"Nextaction"}},"type":"object","required":["id","rootId","kind","brandId","brandName","workspaceId","title","status","liked","createdAt","resultUrl","nextAction"],"title":"StudioLibraryProjectOut","description":"Latest version of one Social or Performance project; fetch details by id."},"StudioLibraryProjectsOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StudioLibraryProjectOut"},"type":"array","title":"Items"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"}},"type":"object","required":["items","nextCursor"],"title":"StudioLibraryProjectsOut"},"StudioLikeOut":{"properties":{"target":{"type":"string","enum":["asset","content","performance_batch"],"title":"Target"},"id":{"type":"string","format":"uuid","title":"Id"},"rootId":{"type":"string","format":"uuid","title":"Rootid"},"liked":{"type":"boolean","title":"Liked"}},"type":"object","required":["target","id","rootId","liked"],"title":"StudioLikeOut"},"StudioModelOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"mediaType":{"type":"string","enum":["image","video","audio"],"title":"Mediatype","default":"image"},"aspectRatios":{"items":{"type":"string"},"type":"array","title":"Aspectratios"},"defaultAspectRatio":{"type":"string","title":"Defaultaspectratio"},"qualities":{"items":{"$ref":"#/components/schemas/StudioQualityOut"},"type":"array","title":"Qualities"},"defaultQuality":{"type":"string","title":"Defaultquality"},"resolutions":{"items":{"$ref":"#/components/schemas/StudioResolutionOut"},"type":"array","title":"Resolutions"},"defaultResolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaultresolution"},"maxReferences":{"type":"integer","title":"Maxreferences"},"maxOutputs":{"type":"integer","title":"Maxoutputs"},"maxPromptChars":{"type":"integer","title":"Maxpromptchars"},"inputRoles":{"items":{"$ref":"#/components/schemas/StudioInputRoleOut"},"type":"array","title":"Inputroles"},"inputModes":{"items":{"$ref":"#/components/schemas/StudioInputModeOut"},"type":"array","title":"Inputmodes"},"durations":{"items":{"type":"integer"},"type":"array","title":"Durations"},"defaultDuration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Defaultduration"},"freeVideoSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Freevideoseconds"},"finalQuality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finalquality"},"maxReferenceSeconds":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Maxreferenceseconds"},"maxReferenceAudioSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxreferenceaudioseconds"},"minReferenceSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minreferenceseconds"},"maxEditSeconds":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"null"}],"title":"Maxeditseconds"},"minInputVideoSeconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mininputvideoseconds"},"minExtendSourceSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minextendsourceseconds"},"maxExtendSourceSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxextendsourceseconds"},"extendDurations":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Extenddurations"},"controls":{"items":{"$ref":"#/components/schemas/StudioControlOut"},"type":"array","title":"Controls"},"promptInput":{"anyOf":[{"type":"string","enum":["optional","none"]},{"type":"null"}],"title":"Promptinput","description":"Absent: a prompt is required. optional: a prompt may be sent. none: the model takes no prompt."},"inputImageFrame":{"anyOf":[{"$ref":"#/components/schemas/StudioInputImageFrameOut"},{"type":"null"}]}},"type":"object","required":["id","label","description","aspectRatios","defaultAspectRatio","qualities","defaultQuality","maxReferences","maxOutputs","maxPromptChars","inputRoles","inputModes"],"title":"StudioModelOut","description":"An image model the studio can generate with."},"StudioMoveIn":{"properties":{"target":{"type":"string","enum":["asset","generation"],"title":"Target"},"id":{"type":"string","format":"uuid","title":"Id"},"projectId":{"type":"string","format":"uuid","title":"Projectid","description":"Destination project ID."},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Folderid","description":"Folder of the destination project. A move to another project without it lands in that project's root. Within the same project, a supplied folderId (or null for the root) re-sorts the work; omitting it keeps the current folder."}},"additionalProperties":false,"type":"object","required":["target","id","projectId"],"title":"StudioMoveIn","description":"Move work to an authorized project in the same workspace."},"StudioMoveOut":{"properties":{"target":{"type":"string","enum":["asset","generation"],"title":"Target"},"id":{"type":"string","format":"uuid","title":"Id","description":"Resulting ID; a duplicate upload may reuse an existing file."},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Folderid","description":"Folder of the result in its project; null is the root."}},"type":"object","required":["target","id","projectId"],"title":"StudioMoveOut"},"StudioPlacedAssetOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"mediaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Mediaid","description":"Authorized media identifier for view_media; not the asset id."},"projectId":{"type":"string","format":"uuid","title":"Projectid"},"mediaType":{"type":"string","enum":["image","video","audio"],"title":"Mediatype"},"origin":{"type":"string","enum":["generated","upload"],"title":"Origin"},"generationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Generationid"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid","description":"Brand product this image is a photo of, if any."},"modelLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modellabel"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","description":"Quality the result was ordered in (catalog quality id)."},"qualityLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qualitylabel","description":"Display label of that quality, for example 720p or High."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"durationSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Durationseconds"},"thumbUrl":{"type":"string","title":"Thumburl"},"url":{"type":"string","title":"Url"},"originalUrl":{"type":"string","title":"Originalurl"},"watermarkPending":{"type":"boolean","title":"Watermarkpending","default":false},"liked":{"type":"boolean","title":"Liked","description":"Whether the person marked the file as a favourite.","default":false},"downloadName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Downloadname","description":"File name to save the original under, Latin letters only."},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"folderId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Folderid","description":"Folder inside the project the file lives in; null is its root."},"reviewStatus":{"type":"string","enum":["none","in_progress","needs_review","approved","rejected"],"title":"Reviewstatus","description":"Review status shared by the whole workspace.","default":"none"}},"type":"object","required":["id","projectId","mediaType","origin","generationId","modelLabel","width","height","thumbUrl","url","originalUrl","createdAt"],"title":"StudioPlacedAssetOut","description":"A library item with its folder inside the project."},"StudioProductPhotoOut":{"properties":{"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"thumbUrl":{"type":"string","title":"Thumburl"},"url":{"type":"string","title":"Url"},"isMain":{"type":"boolean","title":"Ismain"}},"type":"object","required":["mediaId","thumbUrl","url","isMain"],"title":"StudioProductPhotoOut","description":"One product photo that can become a studio reference."},"StudioProductPhotosOut":{"properties":{"productId":{"type":"string","format":"uuid","title":"Productid"},"name":{"type":"string","title":"Name"},"photos":{"items":{"$ref":"#/components/schemas/StudioProductPhotoOut"},"type":"array","title":"Photos"}},"type":"object","required":["productId","name","photos"],"title":"StudioProductPhotosOut","description":"A brand product with every photo the studio can take, main first."},"StudioQualityOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"hint":{"type":"string","title":"Hint"},"draft":{"type":"boolean","title":"Draft","default":false},"free":{"type":"boolean","title":"Free","default":false},"freeMaxReferences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Freemaxreferences"}},"type":"object","required":["id","label","hint"],"title":"StudioQualityOut","description":"A quality option of a model. The price of a request comes only from the quote."},"StudioResolutionOut":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"hint":{"type":"string","title":"Hint","default":""},"aspectRatios":{"items":{"type":"string"},"type":"array","title":"Aspectratios"},"free":{"type":"boolean","title":"Free","default":false}},"type":"object","required":["id","label"],"title":"StudioResolutionOut","description":"An image resolution option of a model, chosen next to quality."},"StudioVoiceOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"age":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Age"},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"previewUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewurl","description":"A short sample to listen to."},"standard":{"type":"boolean","title":"Standard","default":false}},"type":"object","required":["id","name"],"title":"StudioVoiceOut","description":"A voice for the model's `voice` setting: send `id` as its value."},"StudioVoicesOut":{"properties":{"voices":{"items":{"$ref":"#/components/schemas/StudioVoiceOut"},"type":"array","title":"Voices"},"hasMore":{"type":"boolean","title":"Hasmore","default":false},"librarySearch":{"type":"boolean","title":"Librarysearch","description":"True: source=library searches a larger voice library for this model.","default":false}},"type":"object","required":["voices"],"title":"StudioVoicesOut","description":"Voices for a model: its voice list or a page of the voice library."},"SubfieldOut":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"hint":{"type":"string","title":"Hint"},"options":{"items":{"$ref":"#/components/schemas/OptionOut"},"type":"array","title":"Options"},"required":{"type":"boolean","title":"Required","default":true}},"type":"object","required":["key","label","hint"],"title":"SubfieldOut","description":"A subfield of a record: what to fill in and which values are allowed."},"TasteOut":{"properties":{"status":{"type":"string","enum":["missing","done"],"title":"Status"},"selected":{"type":"integer","title":"Selected"},"selectedBy":{"anyOf":[{"type":"string","enum":["human","agent"]},{"type":"null"}],"title":"Selectedby"},"humanUrl":{"type":"string","title":"Humanurl"},"libraryUrl":{"type":"string","title":"Libraryurl"},"items":{"items":{"$ref":"#/components/schemas/TasteSelectedPhotoOut"},"type":"array","title":"Items"}},"type":"object","required":["status","selected","selectedBy","humanUrl","libraryUrl"],"title":"TasteOut","description":"The brand's visual taste: selected references and who chose them."},"TastePhotoOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"category":{"type":"string","title":"Category"},"styleSummary":{"type":"string","title":"Stylesummary"},"thumbUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumburl"}},"type":"object","required":["id","category","styleSummary","thumbUrl"],"title":"TastePhotoOut","description":"A library style; choose by `styleSummary` (`thumbUrl` only when the library is public)."},"TasteSelectedPhotoOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"mediaId":{"type":"string","format":"uuid","title":"Mediaid"},"category":{"type":"string","title":"Category"},"styleSummary":{"type":"string","title":"Stylesummary"},"previewUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previewurl"},"selectedBy":{"anyOf":[{"type":"string","enum":["human","agent"]},{"type":"null"}],"title":"Selectedby"}},"type":"object","required":["id","mediaId","category","styleSummary"],"title":"TasteSelectedPhotoOut","description":"A selected taste reference: `id` for referenceIds/stylePhotoId, `mediaId` for view_media."},"TasteSetIn":{"properties":{"referenceIds":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":10,"minItems":1,"title":"Referenceids"},"rationale":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["referenceIds"],"title":"TasteSetIn"},"TasteSuggestIn":{"properties":{"count":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Count","default":10},"approvalId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Approvalid"}},"type":"object","title":"TasteSuggestIn"},"TasteSuggestionsOut":{"properties":{"ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Ids"},"items":{"items":{"$ref":"#/components/schemas/TastePhotoOut"},"type":"array","title":"Items"},"why":{"type":"string","title":"Why"},"accountBalance":{"anyOf":[{"type":"number","multipleOf":0.1},{"type":"null"}],"title":"Accountbalance"},"connectionBudget":{"anyOf":[{"$ref":"#/components/schemas/ConnectionBudgetOut"},{"type":"null"}]}},"type":"object","required":["ids","why"],"title":"TasteSuggestionsOut","description":"Suggested library ids (at most two per category) and a short reason."},"UploadCreateIn":{"properties":{"role":{"type":"string","enum":["logo","brand_reference","product_image","brandbook"],"title":"Role"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"fileName":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Filename"}},"type":"object","required":["role"],"title":"UploadCreateIn"},"UploadCreatedOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"role":{"type":"string","enum":["logo","brand_reference","product_image","brandbook"],"title":"Role"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"status":{"type":"string","enum":["pending","done","expired"],"title":"Status"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"maxBytes":{"type":"integer","title":"Maxbytes"},"accept":{"items":{"type":"string"},"type":"array","title":"Accept"},"uploadUrl":{"type":"string","title":"Uploadurl","description":"PUT the raw bytes here (curl -T); one upload, no Authorization needed."},"pageUrl":{"type":"string","title":"Pageurl","description":"Give this page to the user to drop the files in AISTLabs."},"curl":{"type":"string","title":"Curl","description":"Upload from disk: replace <file> with the path and <file name> with the URL-encoded name to save (curl -T sends neither a name nor a type)."}},"type":"object","required":["id","role","status","expiresAt","maxBytes","accept","uploadUrl","pageUrl","curl"],"title":"UploadCreatedOut"},"UploadLinkOut":{"properties":{"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"brandName":{"type":"string","title":"Brandname"},"projectName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectname"},"role":{"type":"string","enum":["logo","brand_reference","product_image","brandbook","studio_reference"],"title":"Role"},"productName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Productname"},"status":{"type":"string","enum":["pending","done","expired"],"title":"Status"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"maxBytes":{"type":"integer","title":"Maxbytes"},"accept":{"items":{"type":"string"},"type":"array","title":"Accept"}},"type":"object","required":["brandName","role","status","expiresAt","maxBytes","accept"],"title":"UploadLinkOut","description":"What an upload link accepts and where the files go: a brand or the studio."},"UploadOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"role":{"type":"string","enum":["logo","brand_reference","product_image","brandbook"],"title":"Role"},"productId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Productid"},"status":{"type":"string","enum":["pending","done","expired"],"title":"Status"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"},"files":{"items":{"$ref":"#/components/schemas/MediaOut"},"type":"array","title":"Files"}},"type":"object","required":["id","role","status","expiresAt","files"],"title":"UploadOut"},"UploadedFilesOut":{"properties":{"files":{"items":{"$ref":"#/components/schemas/MediaOut"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"UploadedFilesOut"},"UsageOut":{"properties":{"spentThisMonth":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Spentthismonth"},"remainingThisMonth":{"type":"number","multipleOf":0.1,"minimum":0.0,"title":"Remainingthismonth"},"activeJobs":{"type":"integer","title":"Activejobs"}},"type":"object","required":["spentThisMonth","remainingThisMonth","activeJobs"],"title":"UsageOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VariantIn":{"properties":{"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label","description":"Short name the user sees."},"request":{"type":"string","maxLength":2000,"minLength":1,"title":"Request","description":"The user's words for this variant."},"changes":{"items":{"$ref":"#/components/schemas/ChangeIn"},"type":"array","maxItems":8,"minItems":1,"title":"Changes"},"removeText":{"type":"boolean","title":"Removetext","description":"True when the user asked to remove the on-screen text.","default":false}},"additionalProperties":false,"type":"object","required":["label","request","changes"],"title":"VariantIn","description":"One variant of the pack."},"ViralityChangeIn":{"properties":{"kind":{"type":"string","enum":["person","outfit","location","object","style"],"title":"Kind","description":"person, outfit, location, object, or style (light or look of the whole shot)."},"target":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Target","description":"Inventory id: a person (P1) for person and outfit, an object (O1) for object."},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"referenceAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Referenceassetid","description":"Approved reference image: uploaded or generated."},"gender":{"anyOf":[{"type":"string","enum":["female","male"]},{"type":"null"}],"title":"Gender"},"ageBand":{"anyOf":[{"type":"string","enum":["18-29","30-44","45-59","60+","unclear"]},{"type":"null"}],"title":"Ageband"},"mode":{"type":"string","enum":["whole","face"],"title":"Mode","description":"Person only: whole takes face, hair, body and clothes from the image; face keeps the clothes of the video.","default":"whole"}},"additionalProperties":false,"type":"object","required":["kind"],"title":"ViralityChangeIn","description":"One swap in a Virality job."},"ViralityJobOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workspaceId":{"type":"string","format":"uuid","title":"Workspaceid"},"brandId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Brandid"},"sourceAssetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Sourceassetid"},"status":{"type":"string","enum":["analyzing","ready","failed"],"title":"Status"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Failure code when status is failed; see docs/ad-multiplier.md."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"What to tell the user about a failure."},"probe":{"anyOf":[{"$ref":"#/components/schemas/MultiplierProbeOut"},{"type":"null"}]},"inventory":{"anyOf":[{"$ref":"#/components/schemas/studio_api__services__multiplier_inventory__Inventory"},{"type":"null"}],"description":"Scenes, people, objects, product, on-screen text and audio of the source. Present when ready."},"pollAfterSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pollafterseconds","description":"While analyzing: call get_multiplier_pack again after this many seconds."},"planRevision":{"type":"integer","title":"Planrevision","description":"Pass as expectedRevision to set_multiplier_plan.","default":0},"plan":{"anyOf":[{"$ref":"#/components/schemas/MultiplierPlanOut"},{"type":"null"}]},"references":{"items":{"$ref":"#/components/schemas/MultiplierReferenceOut"},"type":"array","title":"References"},"variants":{"items":{"$ref":"#/components/schemas/MultiplierVariantOut"},"type":"array","title":"Variants"},"prices":{"anyOf":[{"$ref":"#/components/schemas/MultiplierPricesOut"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"viralityInventory":{"anyOf":[{"$ref":"#/components/schemas/studio_api__services__virality_inventory__Inventory"},{"type":"null"}],"description":"What is in the video, people first, each with a label to point at; empty until it is analyzed."},"personModes":{"additionalProperties":{"type":"string"},"type":"object","title":"Personmodes","description":"Person id → whole (face, hair, body and clothes from the image) or face (face and hair; the video's clothes stay)."}},"type":"object","required":["id","workspaceId","brandId","sourceAssetId","status","createdAt","updatedAt"],"title":"ViralityJobOut","description":"A Virality job: one video with characters, objects or the location swapped."},"ViralityPlanIn":{"properties":{"expectedRevision":{"type":"integer","minimum":0.0,"title":"Expectedrevision"},"request":{"type":"string","maxLength":2000,"minLength":1,"title":"Request","description":"The user's words."},"changes":{"items":{"$ref":"#/components/schemas/ViralityChangeIn"},"type":"array","maxItems":8,"minItems":1,"title":"Changes"},"removeText":{"type":"boolean","title":"Removetext","default":false},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Note","description":"The person's own words (Anything else), if they wrote any; request carries them too."}},"additionalProperties":false,"type":"object","required":["expectedRevision","request","changes"],"title":"ViralityPlanIn","description":"The approved swaps of a Virality job. Replaces the previous plan."},"WebhookCreateIn":{"properties":{"url":{"type":"string","maxLength":2000,"minLength":8,"title":"Url"},"events":{"items":{"type":"string"},"type":"array","maxItems":32,"title":"Events"}},"type":"object","required":["url"],"title":"WebhookCreateIn"},"WebhookOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"url":{"type":"string","title":"Url"},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"active":{"type":"boolean","title":"Active"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"lastDeliveryAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lastdeliveryat"},"lastStatus":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Laststatus"},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret"}},"type":"object","required":["id","url","events","active","createdAt","lastDeliveryAt","lastStatus"],"title":"WebhookOut"},"WorkflowOut":{"properties":{"id":{"type":"string","title":"Id"},"entryTool":{"type":"string","title":"Entrytool"},"enabled":{"type":"boolean","title":"Enabled"},"description":{"type":"string","title":"Description"}},"type":"object","required":["id","entryTool","enabled","description"],"title":"WorkflowOut"},"studio_api__services__multiplier_inventory__Inventory":{"properties":{"durationS":{"type":"number","title":"Durations"},"scenes":{"items":{"$ref":"#/components/schemas/Scene"},"type":"array","title":"Scenes"},"people":{"items":{"$ref":"#/components/schemas/studio_api__services__multiplier_inventory__Person"},"type":"array","title":"People"},"location":{"type":"string","title":"Location"},"objects":{"items":{"$ref":"#/components/schemas/studio_api__services__multiplier_inventory__Item"},"type":"array","title":"Objects"},"product":{"anyOf":[{"$ref":"#/components/schemas/Product"},{"type":"null"}]},"onScreenText":{"items":{"$ref":"#/components/schemas/ScreenText"},"type":"array","title":"Onscreentext"},"audio":{"$ref":"#/components/schemas/Audio"}},"type":"object","required":["durationS","scenes","people","location","objects","product","onScreenText","audio"],"title":"Inventory"},"studio_api__services__multiplier_inventory__Item":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description","default":""},"scenes":{"items":{"type":"integer"},"type":"array","title":"Scenes"}},"type":"object","required":["id"],"title":"Item"},"studio_api__services__multiplier_inventory__Person":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description","default":""},"gender":{"type":"string","enum":["female","male","unclear"],"title":"Gender"},"ageBand":{"type":"string","enum":["18-29","30-44","45-59","60+","unclear"],"title":"Ageband"},"speaks":{"type":"string","enum":["on_camera","voice_over","no"],"title":"Speaks"},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"outfit":{"type":"string","title":"Outfit","default":""},"scenes":{"items":{"type":"integer"},"type":"array","title":"Scenes"}},"type":"object","required":["id","gender","ageBand","speaks"],"title":"Person"},"studio_api__services__virality_inventory__Inventory":{"properties":{"durationS":{"type":"number","title":"Durations"},"scenes":{"items":{"$ref":"#/components/schemas/Scene"},"type":"array","title":"Scenes"},"people":{"items":{"$ref":"#/components/schemas/studio_api__services__virality_inventory__Person"},"type":"array","title":"People"},"location":{"type":"string","title":"Location"},"objects":{"items":{"$ref":"#/components/schemas/studio_api__services__virality_inventory__Item"},"type":"array","title":"Objects"},"onScreenText":{"items":{"$ref":"#/components/schemas/ScreenText"},"type":"array","title":"Onscreentext"},"audio":{"$ref":"#/components/schemas/Audio"}},"type":"object","required":["durationS","scenes","people","location","objects","onScreenText","audio"],"title":"Inventory"},"studio_api__services__virality_inventory__Item":{"properties":{"id":{"type":"string","title":"Id"},"description":{"type":"string","title":"Description","default":""},"placement":{"type":"string","enum":["worn","held","placed","shown"],"title":"Placement"},"by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"By"},"scenes":{"items":{"type":"integer"},"type":"array","title":"Scenes"}},"type":"object","required":["id","placement"],"title":"Item"},"studio_api__services__virality_inventory__Person":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description","default":""},"gender":{"type":"string","enum":["female","male","unclear"],"title":"Gender"},"ageBand":{"type":"string","enum":["18-29","30-44","45-59","60+","unclear"],"title":"Ageband"},"speaks":{"type":"string","enum":["on_camera","voice_over","no"],"title":"Speaks"},"outfit":{"type":"string","title":"Outfit","default":""},"position":{"type":"string","title":"Position","default":""},"scenes":{"items":{"type":"integer"},"type":"array","title":"Scenes"}},"type":"object","required":["id","label","gender","ageBand","speaks"],"title":"Person"},"AgentError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","docs","requestId","retryable"],"properties":{"code":{"type":"string","description":"Stable code — branch on it."},"message":{"type":"string"},"action":{"type":"string","nullable":true},"docs":{"type":"string","format":"uri"},"requestId":{"type":"string","description":"Same as the X-Request-ID header; quote it when reporting."},"retryable":{"type":"boolean"},"retryAfterSeconds":{"type":"integer","minimum":0},"plansUrl":{"type":"string","format":"uri","description":"AISTLabs page where the owner chooses a plan or enters a promo code."},"path":{"type":"string","description":"Field path; empty for the whole request."},"allowed":{"type":"array","items":{"type":"string"}},"details":{"type":"array","items":{"type":"object","required":["loc","path"],"properties":{"loc":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"path":{"type":"string"},"allowed":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}},"additionalProperties":true}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key (aist_live_…) or OAuth access token (aist_at_…)"},"pollToken":{"type":"http","scheme":"bearer","description":"pollToken from the POST /api/v1/connect/requests response"}},"responses":{"Unauthorized":{"description":"Missing, invalid or revoked credentials — see `unauthorized`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"PaymentRequired":{"description":"Too few credits, a plan is needed or downloads are locked — `not_enough_credits`, `plan_required`, `download_locked` (the last two carry `plansUrl`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"Forbidden":{"description":"Capability off or budget exceeded — `capability_disabled`, `budget_exceeded`; an upload link opened with another account's session — `upload_other_account`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"NotFound":{"description":"Wrong id or not yours — `brand_not_found`, `not_found`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"Conflict":{"description":"Approval needed or state does not allow it — `approval_required`, `conflict`, `upload_in_progress`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"PayloadTooLarge":{"description":"Body over the limit — `payload_too_large`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"Gone":{"description":"Upload link already used or expired — `upload_used`, `upload_expired`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"UnsupportedMediaType":{"description":"File type does not fit the role — `unsupported_media_type`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"ValidationError":{"description":"Bad body or unknown reference — `validation_error`, `unknown_reference`, …","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"RateLimited":{"description":"Too many requests — `rate_limited`, back off.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}},"headers":{"Retry-After":{"description":"Seconds until the rate-limit window permits a retry.","schema":{"type":"integer","minimum":0}}}},"ServiceUnavailable":{"description":"Provider unavailable, nothing charged — `service_unavailable`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}}}},"security":[{"bearerAuth":[]}]}