{"openapi":"3.1.0","info":{"title":"Render (BYOK) API","version":"0.1.0","description":"Render (BYOK) lets an AI assistant read your own Render data through the Render API with a key you supply (Render API key). Read-only: 9 tools (get_authenticated_user, list_workspaces, list_services, get_service, list_deploys, get_deploy, list_custom_domains, list_postgres_databases, list_projects). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-render.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-render/docs"},"termsOfService":"https://connectorbay.com/byok-render/terms"},"servers":[{"url":"https://byok-render.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-render/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_authenticated_user":{"post":{"operationId":"get_authenticated_user","summary":"Show the Render user the API key belongs to: id, name and email. Use for \"Which Render account is my API key connected t","description":"Show the Render user the API key belongs to: id, name and email. Use for \"Which Render account is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_authenticated_userArguments","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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the Render workspaces (owners) the key can access with id, name, email and type. Workspace ids are used as ownerId ","description":"List the Render workspaces (owners) the key can access with id, name, email and type. Workspace ids are used as ownerId filters elsewhere. Use for \"Which Render workspaces do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only workspaces with this exact name.","title":"Name"},"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_workspacesArguments","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_services":{"post":{"operationId":"list_services","summary":"List Render services (web services, static sites, workers, cron jobs) with type, suspended state, repo, branch, plan, re","description":"List Render services (web services, static sites, workers, cron jobs) with type, suspended state, repo, branch, plan, region and URL. Use for \"Which Render services do I have and are any suspended\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only services with this name.","title":"Name"},"type":{"anyOf":[{"enum":["static_site","web_service","private_service","background_worker","cron_job"],"type":"string"},{"type":"null"}],"default":null,"description":"Only services of this type.","title":"Type"},"region":{"anyOf":[{"enum":["frankfurt","oregon","ohio","singapore","virginia"],"type":"string"},{"type":"null"}],"default":null,"description":"Only services in this region.","title":"Region"},"suspended":{"anyOf":[{"enum":["suspended","not_suspended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only suspended or only running services.","title":"Suspended"},"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only services of this workspace id (for example 'tea-abc123').","title":"Owner Id"},"created_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only services created after this ISO 8601 time, for example 2026-01-01T00:00:00Z.","title":"Created After"},"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_servicesArguments","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_service":{"post":{"operationId":"get_service","summary":"Get one Render service: type, repo, branch, auto-deploy setting, plan, region, URL and dates. Use for \"What plan and reg","description":"Get one Render service: type, repo, branch, auto-deploy setting, plan, region, URL and dates. Use for \"What plan and region does Render service srv-abc123 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_id":{"description":"Id of the Render service, as shown by list_services (for example 'srv-abc123').","maxLength":64,"title":"Service Id","type":"string"}},"required":["service_id"],"title":"get_serviceArguments","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_deploys":{"post":{"operationId":"list_deploys","summary":"List deploys of a service, with status, trigger, commit message and start and finish times. Use for \"Did the last deploy","description":"List deploys of a service, with status, trigger, commit message and start and finish times. Use for \"Did the last deploys of Render service srv-abc123 succeed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_id":{"description":"Id of the Render service, as shown by list_services (for example 'srv-abc123').","maxLength":64,"title":"Service Id","type":"string"},"status":{"anyOf":[{"enum":["created","queued","build_in_progress","update_in_progress","live","deactivated","build_failed","update_failed","canceled","pre_deploy_in_progress","pre_deploy_failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Only deploys with this status.","title":"Status"},"created_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only deploys created after this ISO 8601 time.","title":"Created After"},"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"}},"required":["service_id"],"title":"list_deploysArguments","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_deploy":{"post":{"operationId":"get_deploy","summary":"Get one deploy of a service by id with status, trigger, commit and timestamps. Use for \"What is the status of Render dep","description":"Get one deploy of a service by id with status, trigger, commit and timestamps. Use for \"What is the status of Render deploy dep-abc123 of service srv-abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_id":{"description":"Id of the Render service, as shown by list_services (for example 'srv-abc123').","maxLength":64,"title":"Service Id","type":"string"},"deploy_id":{"description":"Id of the deploy, as shown by list_deploys (for example 'dep-abc123').","maxLength":64,"title":"Deploy Id","type":"string"}},"required":["service_id","deploy_id"],"title":"get_deployArguments","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_custom_domains":{"post":{"operationId":"list_custom_domains","summary":"List custom domains of a service with name, type (apex or subdomain) and verification status. Use for \"Which custom doma","description":"List custom domains of a service with name, type (apex or subdomain) and verification status. Use for \"Which custom domains does Render service srv-abc123 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_id":{"description":"Id of the Render service, as shown by list_services (for example 'srv-abc123').","maxLength":64,"title":"Service Id","type":"string"},"verification_status":{"anyOf":[{"enum":["verified","unverified"],"type":"string"},{"type":"null"}],"default":null,"description":"Only verified or only unverified domains.","title":"Verification Status"},"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"}},"required":["service_id"],"title":"list_custom_domainsArguments","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_postgres_databases":{"post":{"operationId":"list_postgres_databases","summary":"List Render Postgres databases with plan, region, version, status, disk size and suspended state. Connection strings are","description":"List Render Postgres databases with plan, region, version, status, disk size and suspended state. Connection strings are not requested. Use for \"Which Postgres databases do I run on Render\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"enum":["frankfurt","oregon","ohio","singapore","virginia"],"type":"string"},{"type":"null"}],"default":null,"description":"Only databases in this region.","title":"Region"},"suspended":{"anyOf":[{"enum":["suspended","not_suspended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only suspended or only running databases.","title":"Suspended"},"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_postgres_databasesArguments","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_projects":{"post":{"operationId":"list_projects","summary":"List Render projects with the environments they contain, owner and dates. Use for \"Which Render projects do I have\".","description":"List Render projects with the environments they contain, owner and dates. Use for \"Which Render projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"owner_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects 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_projectsArguments","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}}}}