{"openapi":"3.1.0","info":{"title":"Shadeform (BYOK) API","version":"0.1.0","description":"Shadeform (BYOK) lets an AI assistant read your own Shadeform data through the Shadeform API with a key you supply (API key). Read-only: 11 tools (list_instances, get_instance, list_instance_types, list_clusters, get_cluster, list_cluster_types, list_volumes, get_volume, list_volume_types, list_templates, list_featured_templates). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-shadeform.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-shadeform/docs"},"termsOfService":"https://connectorbay.com/byok-shadeform/terms"},"servers":[{"url":"https://byok-shadeform.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-shadeform/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_instances":{"post":{"operationId":"list_instances","summary":"List the account's GPU instances that are not deleted, with name, cloud, region, GPU type and count, status, address and","description":"List the account's GPU instances that are not deleted, with name, cloud, region, GPU type and count, status, address and cost so far. Prices are in cents per hour. Use for \"Which GPU instances are running on my Shadeform account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_instancesArguments","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_instance":{"post":{"operationId":"get_instance","summary":"Get one GPU instance: configuration, status, rental type, SSH user and port, boot time, tags and cost estimate. Use for ","description":"Get one GPU instance: configuration, status, rental type, SSH user and port, boot time, tags and cost estimate. Use for \"What is the status of my Shadeform instance d290f1ee\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance_id":{"description":"Shadeform instance id (a UUID taken from list_instances).","maxLength":200,"title":"Instance Id","type":"string"}},"required":["instance_id"],"title":"get_instanceArguments","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_instance_types":{"post":{"operationId":"list_instance_types","summary":"List GPU instance types that can be rented, with GPU model and count, CPU, memory, per-region availability and hourly pr","description":"List GPU instance types that can be rented, with GPU model and count, CPU, memory, per-region availability and hourly price in cents. Can be filtered by cloud, region, GPU model or availability. Use for \"Which A100 80GB instances are available on Shadeform and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cloud":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this underlying cloud provider, for example 'aws'.","title":"Cloud"},"region":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this region, for example 'us-east-1a'.","title":"Region"},"num_gpus":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only instance types with this many GPUs, for example '1' or '8'.","title":"Num Gpus"},"gpu_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this GPU model, for example 'A100_80G'.","title":"Gpu Type"},"shade_instance_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this Shadeform standardized instance type, for example 'A100_80G'.","title":"Shade Instance Type"},"available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"When true, keep only availability entries that are available now.","title":"Available"},"sort":{"anyOf":[{"const":"price","type":"string"},{"type":"null"}],"default":null,"description":"Set to price to sort cheapest first.","title":"Sort"}},"title":"list_instance_typesArguments","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_clusters":{"post":{"operationId":"list_clusters","summary":"List the account's multi-node GPU clusters that are not deleted, with cloud, region, status, hourly price in cents and m","description":"List the account's multi-node GPU clusters that are not deleted, with cloud, region, status, hourly price in cents and member instances. Use for \"Do I have any GPU clusters on Shadeform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_clustersArguments","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_cluster":{"post":{"operationId":"get_cluster","summary":"Get one GPU cluster with status, region, cost estimate and the instances that make it up. Use for \"What is the status an","description":"Get one GPU cluster with status, region, cost estimate and the instances that make it up. Use for \"What is the status and cost of my Shadeform cluster d290f1ee\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"description":"Shadeform cluster id (taken from list_clusters).","maxLength":200,"title":"Cluster Id","type":"string"}},"required":["cluster_id"],"title":"get_clusterArguments","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_cluster_types":{"post":{"operationId":"list_cluster_types","summary":"List GPU cluster types that can be rented, with node count, region availability and the per-node instance type and hourl","description":"List GPU cluster types that can be rented, with node count, region availability and the per-node instance type and hourly price in cents. Use for \"Which GPU cluster configurations can I rent on Shadeform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_cluster_typesArguments","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_volumes":{"post":{"operationId":"list_volumes","summary":"List the account's persistent storage volumes with cloud, region, size in GB, estimated cost and the instance that has i","description":"List the account's persistent storage volumes with cloud, region, size in GB, estimated cost and the instance that has it mounted. Use for \"What storage volumes do I have on Shadeform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_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_volume":{"post":{"operationId":"get_volume","summary":"Get one storage volume: cloud, region, size, cost estimate and what it is mounted on. Use for \"How big is my Shadeform v","description":"Get one storage volume: cloud, region, size, cost estimate and what it is mounted on. Use for \"How big is my Shadeform volume d290f1ee and where is it mounted\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"volume_id":{"description":"Shadeform storage volume id (taken from list_volumes).","maxLength":200,"title":"Volume Id","type":"string"}},"required":["volume_id"],"title":"get_volumeArguments","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_volume_types":{"post":{"operationId":"list_volume_types","summary":"List storage volume offerings by cloud and region with the price per GB per hour and whether volumes are fixed size or m","description":"List storage volume offerings by cloud and region with the price per GB per hour and whether volumes are fixed size or multi-mount. Use for \"How much does storage cost per GB on Shadeform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_volume_typesArguments","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 launch templates saved in the account: name, description, author and visibility. Environment variables and regi","description":"List the launch templates saved in the account: name, description, author and visibility. Environment variables and registry credentials are not returned. Use for \"Which launch templates have I saved on Shadeform\".","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/list_featured_templates":{"post":{"operationId":"list_featured_templates","summary":"List Shadeform's featured public launch templates with name, description and author. Use for \"What featured launch templ","description":"List Shadeform's featured public launch templates with name, description and author. Use for \"What featured launch templates does Shadeform offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_featured_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}}}}