{"openapi":"3.1.0","info":{"title":"Leaseweb (BYOK) API","version":"0.1.0","description":"Leaseweb (BYOK) lets an AI assistant read your own Leaseweb data through the Leaseweb API with a key you supply (API key). Read-only: 9 tools (list_dedicated_servers, get_dedicated_server, list_cloud_regions, list_cloud_instance_types, list_cloud_instances, get_cloud_instance, list_cloud_load_balancers, list_ip_addresses, list_object_storages). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-leaseweb.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-leaseweb/docs"},"termsOfService":"https://connectorbay.com/byok-leaseweb/terms"},"servers":[{"url":"https://byok-leaseweb.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-leaseweb/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_dedicated_servers":{"post":{"operationId":"list_dedicated_servers","summary":"List dedicated servers with asset id, contract reference and delivery status, data center location, public and internal ","description":"List dedicated servers with asset id, contract reference and delivery status, data center location, public and internal IPs and available features. Filter by reference, IP or site. Use for \"Which dedicated servers do I have at Leaseweb and in which data center\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"reference":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only servers with this contract reference.","title":"Reference"},"ip":{"anyOf":[{"maxLength":45,"type":"string"},{"type":"null"}],"default":null,"description":"Only the server with this IP address.","title":"Ip"},"site":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only servers at this site, for example 'FRA-10'.","title":"Site"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_dedicated_serversArguments","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_dedicated_server":{"post":{"operationId":"get_dedicated_server","summary":"Get one dedicated server: contract terms and price, location, network interfaces, rack, serial number and hardware specs","description":"Get one dedicated server: contract terms and price, location, network interfaces, rack, serial number and hardware specs (CPU, RAM, disks). Use for \"What hardware does Leaseweb dedicated server 12345 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"server_id":{"description":"Dedicated server id as returned by list_dedicated_servers.","maxLength":200,"title":"Server Id","type":"string"}},"required":["server_id"],"title":"get_dedicated_serverArguments","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_cloud_regions":{"post":{"operationId":"list_cloud_regions","summary":"List Leaseweb public cloud regions with their city. Use for \"Which Leaseweb public cloud regions are available\".","description":"List Leaseweb public cloud regions with their city. Use for \"Which Leaseweb public cloud regions are available\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_cloud_regionsArguments","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_cloud_instance_types":{"post":{"operationId":"list_cloud_instance_types","summary":"List the public cloud instance types available in one region with vCPU, memory, network speed, hourly and monthly prices","description":"List the public cloud instance types available in one region with vCPU, memory, network speed, hourly and monthly prices and storage types. Use for \"What Leaseweb cloud instance types can I order in Frankfurt and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region name, for example 'eu-central-1'. Required.","maxLength":30,"title":"Region","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"required":["region"],"title":"list_cloud_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_cloud_instances":{"post":{"operationId":"list_cloud_instances","summary":"List public cloud instances with state, region, type, image, resources, root disk and IP addresses. Filter by state, reg","description":"List public cloud instances with state, region, type, image, resources, root disk and IP addresses. Filter by state, region, IP or reference. Use for \"Which Leaseweb cloud instances are running right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only instances in this state, for example RUNNING, STOPPED, CREATING or FAILED (comma separated for several).","title":"State"},"region":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Public cloud region name, for example 'eu-west-3' (Amsterdam) or 'eu-central-1' (Frankfurt). Use list_cloud_regions for the current list.","title":"Region"},"ip":{"anyOf":[{"maxLength":45,"type":"string"},{"type":"null"}],"default":null,"description":"Only the instance with this IP address.","title":"Ip"},"reference":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only instances with this reference (name).","title":"Reference"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_cloud_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_cloud_instance":{"post":{"operationId":"get_cloud_instance","summary":"Get one public cloud instance: contract, image, IPs with DDoS profile, resources, root disk, ISO, start time and target ","description":"Get one public cloud instance: contract, image, IPs with DDoS profile, resources, root disk, ISO, start time and target groups. Credentials are not part of this endpoint. Use for \"Show Leaseweb cloud instance ace712e9-a166-47f1-9065-4af0f7e7fce1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance_id":{"description":"Public cloud instance UUID as returned by list_cloud_instances.","maxLength":200,"title":"Instance Id","type":"string"}},"required":["instance_id"],"title":"get_cloud_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_cloud_load_balancers":{"post":{"operationId":"list_cloud_load_balancers","summary":"List public cloud load balancers with state, region, type, resources, IP addresses and balancing configuration. Use for ","description":"List public cloud load balancers with state, region, type, resources, IP addresses and balancing configuration. Use for \"Which Leaseweb load balancers do I have and how do they balance traffic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only load balancers in this state, for example RUNNING.","title":"State"},"region":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Public cloud region name, for example 'eu-west-3' (Amsterdam) or 'eu-central-1' (Frankfurt). Use list_cloud_regions for the current list.","title":"Region"},"reference":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only load balancers with this reference.","title":"Reference"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_cloud_load_balancersArguments","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_ip_addresses":{"post":{"operationId":"list_ip_addresses","summary":"List IP addresses with version, type, prefix, reverse lookup, null-route state, assigned equipment and subnet. Filter by","description":"List IP addresses with version, type, prefix, reverse lookup, null-route state, assigned equipment and subnet. Filter by version, type, null route or primary flag. Use for \"Which of my Leaseweb IP addresses are null routed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"version":{"anyOf":[{"enum":[4,6],"type":"integer"},{"type":"null"}],"default":null,"description":"IP version: 4 or 6.","title":"Version"},"ip_type":{"anyOf":[{"enum":["NORMAL_IP","NETWORK","BROADCAST","GATEWAY","ROUTER1","ROUTER2","IPMI"],"type":"string"},{"type":"null"}],"default":null,"description":"IP type.","title":"Ip Type"},"null_routed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for IPs with an active null route, false for the others.","title":"Null Routed"},"primary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for primary IPs only, false for the others.","title":"Primary"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (default 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_ip_addressesArguments","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_object_storages":{"post":{"operationId":"list_object_storages","summary":"List object storage products with committed quantity, description and regional endpoint URL. Use for \"How much object st","description":"List object storage products with committed quantity, description and regional endpoint URL. Use for \"How much object storage do I have committed at Leaseweb\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Return results starting from this offset.","title":"Offset"}},"title":"list_object_storagesArguments","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}}}}