{"openapi":"3.1.0","info":{"title":"Defined Networking (BYOK) API","version":"0.1.0","description":"Defined Networking (BYOK) lets an AI assistant read your own Defined Networking data through the Defined Networking API with a key you supply (Defined Networking API key (with list and read scopes)). Read-only: 10 tools (get_current_api_key, list_hosts, get_host, list_roles, list_tags, list_networks, get_network, list_routes, list_audit_logs, list_software_downloads). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-defined-networking.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-defined-networking/docs"},"termsOfService":"https://connectorbay.com/byok-defined-networking/terms"},"servers":[{"url":"https://byok-defined-networking.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-defined-networking/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_current_api_key":{"post":{"operationId":"get_current_api_key","summary":"Show the organization and API key the request is authenticated with: organization name and plan, key name and creation t","description":"Show the organization and API key the request is authenticated with: organization name and plan, key name and creation time. Use for \"Which Defined Networking organization is my API key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_api_keyArguments","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_hosts":{"post":{"operationId":"list_hosts","summary":"List hosts with network, role, overlay IP addresses, lighthouse and relay flags, blocked state, tags and last check-in (","description":"List hosts with network, role, overlay IP addresses, lighthouse and relay flags, blocked state, tags and last check-in (version, platform, OS, update availability). Filter by text, blocked, lighthouse, relay, role or network. Use for \"Which Nebula hosts have not checked in recently or are blocked\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_counts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also return the total record count and the page position in metadata.","title":"Include Counts"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only hosts whose name, IP address, role name or a tag key or value contains this text.","title":"Search"},"is_blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only blocked hosts, false for only unblocked.","title":"Is Blocked"},"is_lighthouse":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only lighthouses, false for only other hosts.","title":"Is Lighthouse"},"is_relay":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only relays, false for only other hosts.","title":"Is Relay"},"update_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only hosts with a client update available, false for up-to-date hosts.","title":"Update Available"},"role_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only hosts with this role id.","title":"Role Id"},"network_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only hosts in this network id.","title":"Network Id"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_hostsArguments","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_host":{"post":{"operationId":"get_host","summary":"Get one host by id: name, network, role, overlay IPs, flags, tags and last check-in details. Use for \"What is the state ","description":"Get one host by id: name, network, role, overlay IPs, flags, tags and last check-in details. Use for \"What is the state of Nebula host host-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"host_id":{"description":"Host id (from list_hosts).","maxLength":200,"title":"Host Id","type":"string"}},"required":["host_id"],"title":"get_hostArguments","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_roles":{"post":{"operationId":"list_roles","summary":"List roles with description, number of firewall rules and number of hosts using each. Use for \"Which Defined Networking ","description":"List roles with description, number of firewall rules and number of hosts using each. Use for \"Which Defined Networking roles exist and how many hosts use them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_counts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also return the total record count and the page position in metadata.","title":"Include Counts"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_rolesArguments","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_tags":{"post":{"operationId":"list_tags","summary":"List host tags with description, priority, host count, firewall rule count and route subscriptions. Use for \"Which tags ","description":"List host tags with description, priority, host count, firewall rule count and route subscriptions. Use for \"Which tags are used on Nebula hosts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_counts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also return the total record count and the page position in metadata.","title":"Include Counts"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_tagsArguments","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_networks":{"post":{"operationId":"list_networks","summary":"List networks with CIDR ranges, certificate version, curve, host count and lighthouse settings. Use for \"Which Nebula ne","description":"List networks with CIDR ranges, certificate version, curve, host count and lighthouse settings. Use for \"Which Nebula networks do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_counts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also return the total record count and the page position in metadata.","title":"Include Counts"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_networksArguments","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":{"post":{"operationId":"get_network","summary":"Get one network by id: CIDR ranges, certificate version, curve, host count and lighthouse settings. Use for \"What CIDR r","description":"Get one network by id: CIDR ranges, certificate version, curve, host count and lighthouse settings. Use for \"What CIDR ranges does Nebula network net-1 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_id":{"description":"Network id (from list_networks).","maxLength":200,"title":"Network Id","type":"string"}},"required":["network_id"],"title":"get_networkArguments","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_routes":{"post":{"operationId":"list_routes","summary":"List routes with description, router host id and routable CIDR ranges. Use for \"Which routes are configured in Defined N","description":"List routes with description, router host id and routable CIDR ranges. Use for \"Which routes are configured in Defined Networking\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_counts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to also return the total record count and the page position in metadata.","title":"Include Counts"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_routesArguments","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_audit_logs":{"post":{"operationId":"list_audit_logs","summary":"List audit log events: when, which entity type and id was changed and the event type. Filter by target type or id. Use f","description":"List audit log events: when, which entity type and id was changed and the event type. Filter by target type or id. Use for \"What changed recently in my Defined Networking account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"target_type":{"anyOf":[{"enum":["apiKey","host","network","role","user","ca","oidcProvider","tag","organization","route","endpointOIDC","domain"],"type":"string"},{"type":"null"}],"default":null,"description":"Only events for this kind of entity.","title":"Target Type"},"target_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only events for the entity with this id.","title":"Target Id"},"page_size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Records per page (1 to 500).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.nextCursor (or prevCursor) of the previous response; leave empty for the first page.","title":"Cursor"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order: asc or desc (each list sorts on its own key).","title":"Sort Direction"}},"title":"list_audit_logsArguments","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_software_downloads":{"post":{"operationId":"list_software_downloads","summary":"Show the latest Nebula client versions and download links per platform. Use for \"What is the latest Defined Networking c","description":"Show the latest Nebula client versions and download links per platform. Use for \"What is the latest Defined Networking client version\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_software_downloadsArguments","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}}}}