{"openapi":"3.1.0","info":{"title":"Render Workflows (BYOK) API","version":"0.1.0","description":"Render Workflows (BYOK) lets an AI assistant read your own Render Workflows data through the Render Workflows API with a key you supply (API key). Read-only: 6 tools (list_workflows, get_workflow, list_workflow_versions, list_tasks, list_task_runs, get_task_run). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-render-workflows.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-render-workflows/docs"},"termsOfService":"https://connectorbay.com/byok-render-workflows/terms"},"servers":[{"url":"https://byok-render-workflows.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-render-workflows/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_workflows":{"post":{"operationId":"list_workflows","summary":"List Render Workflows with name, slug, region, runtime, repository and branch, run command and auto-deploy trigger. Use ","description":"List Render Workflows with name, slug, region, runtime, repository and branch, run command and auto-deploy trigger. Use for \"Which Render workflows do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only workflows with this name.","title":"Name"},"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workspace id.","title":"Owner Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the 'cursor' value of the last item of the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_workflowsArguments","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_workflow":{"post":{"operationId":"get_workflow","summary":"Get one Render Workflow: region, runtime, build configuration, run command and auto-deploy trigger. Use for \"How is my R","description":"Get one Render Workflow: region, runtime, build configuration, run command and auto-deploy trigger. Use for \"How is my Render workflow built and run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"description":"Id of the Render workflow, as returned by list_workflows (for example 'wfl-abc123').","maxLength":64,"title":"Workflow Id","type":"string"}},"required":["workflow_id"],"title":"get_workflowArguments","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_workflow_versions":{"post":{"operationId":"list_workflow_versions","summary":"List the versions of Render Workflows with status (building, ready, failed) and creation time. Use for \"Is the latest ve","description":"List the versions of Render Workflows with status (building, ready, failed) and creation time. Use for \"Is the latest version of my Render workflow ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workflow id.","title":"Workflow Id"},"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workspace id.","title":"Owner Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the 'cursor' value of the last item of the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_workflow_versionsArguments","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 tasks registered by Render Workflow versions with name, workflow and version. Use for \"Which tasks does my Rend","description":"List the tasks registered by Render Workflow versions with name, workflow and version. Use for \"Which tasks does my Render workflow define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workflow id.","title":"Workflow Id"},"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workspace id.","title":"Owner Id"},"task_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks with this slug.","title":"Task Slug"},"workflow_version_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks of this workflow version.","title":"Workflow Version Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the 'cursor' value of the last item of the previous answer; leave empty for the first page.","title":"Cursor"}},"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/list_task_runs":{"post":{"operationId":"list_task_runs","summary":"List workflow task runs with status, start and completion time, retries and parent run. Inputs and results are left out.","description":"List workflow task runs with status, start and completion time, retries and parent run. Inputs and results are left out. Use for \"Which workflow task runs failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workflow id.","title":"Workflow Id"},"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this workspace id.","title":"Owner Id"},"task_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs of tasks with this slug.","title":"Task Slug"},"root_task_run_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs under this root run.","title":"Root Task Run Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the 'cursor' value of the last item of the previous answer; leave empty for the first page.","title":"Cursor"}},"title":"list_task_runsArguments","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_run":{"post":{"operationId":"get_task_run","summary":"Get one workflow task run: status, timing, retries, error message and attempts (statuses and times). Inputs and results ","description":"Get one workflow task run: status, timing, retries, error message and attempts (statuses and times). Inputs and results are left out. Use for \"Why did task run trn-abc123 fail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"task_run_id":{"description":"Id of a workflow task run, as returned by list_task_runs.","maxLength":64,"title":"Task Run Id","type":"string"}},"required":["task_run_id"],"title":"get_task_runArguments","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}}}}