{"openapi":"3.1.0","info":{"title":"Shotstack (BYOK) API","version":"0.1.0","description":"Shotstack (BYOK) lets an AI assistant read your own Shotstack data through the Shotstack API with a key you supply (Shotstack production (v1) API key). Read-only: 8 tools (get_render_status, list_templates, get_template, list_generation_models, get_hosted_asset, get_assets_by_render, list_sources, get_source). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-shotstack.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-shotstack/docs"},"termsOfService":"https://connectorbay.com/byok-shotstack/terms"},"servers":[{"url":"https://byok-shotstack.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-shotstack/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_render_status":{"post":{"operationId":"get_render_status","summary":"Get the status of a Shotstack render (queued, fetching, rendering, saving, done or failed) with the output, poster and t","description":"Get the status of a Shotstack render (queued, fetching, rendering, saving, done or failed) with the output, poster and thumbnail URLs and render time. Production (v1) keys only. Use for \"Is my Shotstack render finished and where is the video\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Shotstack render ID (a UUID, from the original render request or webhook).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_render_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_templates":{"post":{"operationId":"list_templates","summary":"List the templates saved in the Shotstack account (production stage) with id, name and created and updated times. Use fo","description":"List the templates saved in the Shotstack account (production stage) with id, name and created and updated times. Use for \"What Shotstack templates have I saved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_template":{"post":{"operationId":"get_template","summary":"Get the name and owner of one saved Shotstack template by ID (its full edit JSON is left out). Use for \"What is the name","description":"Get the name and owner of one saved Shotstack template by ID (its full edit JSON is left out). Use for \"What is the name of this Shotstack template\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Shotstack template ID (a UUID, from list_templates).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_templateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_generation_models":{"post":{"operationId":"list_generation_models","summary":"List the image, video and audio generation models the Shotstack account could use, with type, name and whether the plan ","description":"List the image, video and audio generation models the Shotstack account could use, with type, name and whether the plan allows each. Listing does not generate anything. Use for \"Which Shotstack generation models does my plan allow\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_generation_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_hosted_asset":{"post":{"operationId":"get_hosted_asset","summary":"Get one asset hosted by the Shotstack Serve API by asset ID (not the render ID): file name, URL, status and times. Use f","description":"Get one asset hosted by the Shotstack Serve API by asset ID (not the render ID): file name, URL, status and times. Use for \"Where is this Shotstack hosted asset and is it ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Shotstack asset ID (a UUID, different from the render ID).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_hosted_assetArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_assets_by_render":{"post":{"operationId":"get_assets_by_render","summary":"List the hosted files (video, thumbnail, poster) produced by one Shotstack render, with URL and status. Use for \"Which f","description":"List the hosted files (video, thumbnail, poster) produced by one Shotstack render, with URL and status. Use for \"Which files did this Shotstack render produce\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Shotstack render ID (a UUID, from the original render request or webhook).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_assets_by_renderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sources":{"post":{"operationId":"list_sources","summary":"List source files (video, image, audio, fonts) ingested into the Shotstack account with status and media size. Use for \"","description":"List source files (video, image, audio, fonts) ingested into the Shotstack account with status and media size. Use for \"Which source files have I ingested into Shotstack\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sourcesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_source":{"post":{"operationId":"get_source","summary":"Get one ingested Shotstack source file by ID: origin URL, status, dimensions, duration and frame rate. Use for \"Is this ","description":"Get one ingested Shotstack source file by ID: origin URL, status, dimensions, duration and frame rate. Use for \"Is this Shotstack source file ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Shotstack source ID (from list_sources).","maxLength":60,"title":"Id","type":"string"}},"required":["id"],"title":"get_sourceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}