{"openapi":"3.1.0","info":{"title":"RunPod (BYOK) API","version":"0.1.0","description":"RunPod (BYOK) lets an AI assistant read your own RunPod data through the RunPod API with a key you supply (API key). Read-only: 8 tools (list_pods, get_pod, list_endpoints, list_templates, list_network_volumes, get_pod_billing, get_serverless_billing, get_network_volume_billing). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-runpod.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-runpod/docs"},"termsOfService":"https://connectorbay.com/byok-runpod/terms"},"servers":[{"url":"https://byok-runpod.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-runpod/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_pods":{"post":{"operationId":"list_pods","summary":"List your RunPod pods with status, image, GPU type and count, vCPU and memory, hourly cost and last start time. Environm","description":"List your RunPod pods with status, image, GPU type and count, vCPU and memory, hourly cost and last start time. Environment variables are not returned. Use for \"Which of my RunPod pods are running and what do they cost per hour\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"desired_status":{"anyOf":[{"enum":["RUNNING","EXITED","TERMINATED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only pods in this state.","title":"Desired Status"},"compute_type":{"anyOf":[{"enum":["GPU","CPU"],"type":"string"},{"type":"null"}],"default":null,"description":"Only GPU or CPU pods.","title":"Compute Type"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only pods with exactly this name.","title":"Name"}},"title":"list_podsArguments","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_pod":{"post":{"operationId":"get_pod","summary":"Get one RunPod pod by id: status, image, GPU, memory, disk sizes, hourly cost and start times. Use for \"What is the stat","description":"Get one RunPod pod by id: status, image, GPU, memory, disk sizes, hourly cost and start times. Use for \"What is the status of my RunPod pod xedezhzb9la3ye\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pod_id":{"description":"Pod id, for example 'xedezhzb9la3ye'.","maxLength":200,"title":"Pod Id","type":"string"}},"required":["pod_id"],"title":"get_podArguments","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_endpoints":{"post":{"operationId":"list_endpoints","summary":"List your RunPod serverless endpoints with GPU types, worker scaling settings, timeouts and template id. Use for \"Which ","description":"List your RunPod serverless endpoints with GPU types, worker scaling settings, timeouts and template id. Use for \"Which serverless endpoints do I have on RunPod and how are they scaled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_endpointsArguments","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 your RunPod templates (container image, disk sizes, serverless flag). Add include_public to see public ones. Use fo","description":"List your RunPod templates (container image, disk sizes, serverless flag). Add include_public to see public ones. Use for \"Which RunPod templates have I saved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_public_templates":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include public community templates.","title":"Include Public Templates"},"include_runpod_templates":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include templates made by RunPod.","title":"Include Runpod Templates"}},"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/list_network_volumes":{"post":{"operationId":"list_network_volumes","summary":"List your RunPod network volumes with name, size in GB and data center. Use for \"How big are my RunPod network volumes a","description":"List your RunPod network volumes with name, size in GB and data center. Use for \"How big are my RunPod network volumes and where are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_network_volumesArguments","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_pod_billing":{"post":{"operationId":"get_pod_billing","summary":"Show RunPod pod billing history: amount billed, billed time and disk, grouped by GPU type or pod, in time buckets. Use f","description":"Show RunPod pod billing history: amount billed, billed time and disk, grouped by GPU type or pod, in time buckets. Use for \"How much did I spend on RunPod pods this month by day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bucket_size":{"anyOf":[{"enum":["hour","day","week","month","year"],"type":"string"},{"type":"null"}],"default":"day","description":"Group costs by hour, day, week, month or year.","title":"Bucket Size"},"start_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the billing period, ISO 8601 UTC, for example 2026-10-01T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the billing period, ISO 8601 UTC.","title":"End Time"},"grouping":{"anyOf":[{"enum":["podId","gpuTypeId"],"type":"string"},{"type":"null"}],"default":"gpuTypeId","description":"Group rows by gpuTypeId or podId.","title":"Grouping"},"pod_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this pod.","title":"Pod Id"}},"title":"get_pod_billingArguments","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_serverless_billing":{"post":{"operationId":"get_serverless_billing","summary":"Show RunPod serverless billing history: amount billed and billed time, grouped by endpoint, pod or GPU type, in time buc","description":"Show RunPod serverless billing history: amount billed and billed time, grouped by endpoint, pod or GPU type, in time buckets. Use for \"How much did my RunPod serverless endpoints cost last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bucket_size":{"anyOf":[{"enum":["hour","day","week","month","year"],"type":"string"},{"type":"null"}],"default":"day","description":"Group costs by hour, day, week, month or year.","title":"Bucket Size"},"start_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the billing period, ISO 8601 UTC, for example 2026-10-01T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the billing period, ISO 8601 UTC.","title":"End Time"},"grouping":{"anyOf":[{"enum":["endpointId","podId","gpuTypeId"],"type":"string"},{"type":"null"}],"default":"endpointId","description":"Group rows by endpointId, podId or gpuTypeId.","title":"Grouping"},"endpoint_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this endpoint.","title":"Endpoint Id"}},"title":"get_serverless_billingArguments","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_network_volume_billing":{"post":{"operationId":"get_network_volume_billing","summary":"Show RunPod network volume storage billing history in time buckets. Use for \"How much do my RunPod network volumes cost ","description":"Show RunPod network volume storage billing history in time buckets. Use for \"How much do my RunPod network volumes cost per month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"bucket_size":{"anyOf":[{"enum":["hour","day","week","month","year"],"type":"string"},{"type":"null"}],"default":"day","description":"Group costs by hour, day, week, month or year.","title":"Bucket Size"},"start_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the billing period, ISO 8601 UTC, for example 2026-10-01T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the billing period, ISO 8601 UTC.","title":"End Time"}},"title":"get_network_volume_billingArguments","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}}}}