{"openapi":"3.1.0","info":{"title":"RunConvert (BYOK) API","version":"0.1.0","description":"RunConvert (BYOK) lets an AI assistant read your own RunConvert data through the RunConvert API with a key you supply (RunConvert API key (starts with sk_live_)). Read-only: 7 tools (list_jobs, get_job, list_tasks, get_task, list_conversion_formats, list_webhooks, get_webhook). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-runconvert.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-runconvert/docs"},"termsOfService":"https://connectorbay.com/byok-runconvert/terms"},"servers":[{"url":"https://byok-runconvert.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-runconvert/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/list_jobs":{"post":{"operationId":"list_jobs","summary":"List conversion jobs of the account, optionally by status (waiting, processing, finished, error) or tag, in pages. The a","description":"List conversion jobs of the account, optionally by status (waiting, processing, finished, error) or tag, in pages. The answer shape is passed through as the provider sends it, trimmed to a size limit. Use for \"Which of my conversion jobs failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["waiting","processing","finished","error"],"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs with this status.","title":"Status"},"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs carrying this tag.","title":"Tag"},"include":{"anyOf":[{"const":"tasks","type":"string"},{"type":"null"}],"default":null,"description":"Pass 'tasks' to embed each job's tasks.","title":"Include"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (default 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_jobsArguments","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_job":{"post":{"operationId":"get_job","summary":"Get one conversion job by id: status, tag, credits used, metadata and timing. With include=tasks it also lists the job's","description":"Get one conversion job by id: status, tag, credits used, metadata and timing. With include=tasks it also lists the job's tasks. Use for \"What is the status of job job_01hx4k9m2p\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"job_id":{"description":"Job id (starts with job_), from list_jobs.","maxLength":64,"title":"Job Id","type":"string"},"include":{"anyOf":[{"const":"tasks","type":"string"},{"type":"null"}],"default":null,"description":"Pass 'tasks' to include the job's task objects.","title":"Include"}},"required":["job_id"],"title":"get_jobArguments","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_tasks":{"post":{"operationId":"list_tasks","summary":"List the individual tasks (import, convert, export steps) across jobs, optionally for one job, status or operation, in p","description":"List the individual tasks (import, convert, export steps) across jobs, optionally for one job, status or operation, in pages. The answer shape is passed through as the provider sends it, trimmed to a size limit. Use for \"Which conversion tasks of job job_01hx4k9m2p ran\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"job_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks of this job id.","title":"Job Id"},"status":{"anyOf":[{"enum":["waiting","processing","finished","error"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks with this status.","title":"Status"},"operation":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks of this operation type, for example convert.","title":"Operation"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (default 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_tasksArguments","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_task":{"post":{"operationId":"get_task","summary":"Get one task by id: operation, status, progress percent, message, engine and version, credits and timing. Download links","description":"Get one task by id: operation, status, progress percent, message, engine and version, credits and timing. Download links are not returned. Use for \"How far along is task task_9xkq2v\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"task_id":{"description":"Task id (starts with task_), from list_tasks or get_job.","maxLength":64,"title":"Task Id","type":"string"}},"required":["task_id"],"title":"get_taskArguments","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_conversion_formats":{"post":{"operationId":"list_conversion_formats","summary":"Discover supported file conversions: with only input, the formats it can become and the credit cost; with input and outp","description":"Discover supported file conversions: with only input, the formats it can become and the credit cost; with input and output, the engines and their options; with category, all formats of that category. Use for \"Which formats can an mp4 be converted to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"input":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Input format extension, for example mp4.","title":"Input"},"output":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Output format extension; combine with input to get engines and options.","title":"Output"},"category":{"anyOf":[{"enum":["video","audio","image","document","ebook","presentation","spreadsheet","vector","cad","archive","font"],"type":"string"},{"type":"null"}],"default":null,"description":"Only formats of this category.","title":"Category"}},"title":"list_conversion_formatsArguments","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_webhooks":{"post":{"operationId":"list_webhooks","summary":"List the account's webhook endpoints with url, subscribed events and enabled flag. Secrets are masked by the provider an","description":"List the account's webhook endpoints with url, subscribed events and enabled flag. Secrets are masked by the provider and not returned here. Use for \"Which webhook endpoints do I have set up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_webhooksArguments","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_webhook":{"post":{"operationId":"get_webhook","summary":"Get one webhook endpoint by id: url, description, subscribed events, enabled flag and times. Use for \"Is webhook wh_01hx","description":"Get one webhook endpoint by id: url, description, subscribed events, enabled flag and times. Use for \"Is webhook wh_01hx4k9m2p enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webhook_id":{"description":"Webhook id (starts with wh_), from list_webhooks.","maxLength":64,"title":"Webhook Id","type":"string"}},"required":["webhook_id"],"title":"get_webhookArguments","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}}}}