{"openapi":"3.1.0","info":{"title":"Dynu (BYOK) API","version":"0.1.0","description":"Dynu (BYOK) lets an AI assistant read your own Dynu data through the Dynu API with a key you supply (API key). Read-only: 12 tools (list_dns_domains, get_dns_domain, list_dns_records, list_web_redirects, list_ip_update_history, get_hostname_limits, list_registered_domains, get_registered_domain, list_domain_name_servers, list_monitors, list_compute_instances, get_compute_instance). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dynu.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dynu/docs"},"termsOfService":"https://connectorbay.com/byok-dynu/terms"},"servers":[{"url":"https://byok-dynu.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dynu/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_dns_domains":{"post":{"operationId":"list_dns_domains","summary":"List the domains and hostnames in Dynu DNS service with state, IPv4 and IPv6 address, TTL, DNSSEC flag and dates. The pe","description":"List the domains and hostnames in Dynu DNS service with state, IPv4 and IPv6 address, TTL, DNSSEC flag and dates. The per-domain update token is not returned. Use for \"Which hostnames do I have in Dynu DNS and what IPs do they point to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_dns_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/get_dns_domain":{"post":{"operationId":"get_dns_domain","summary":"Get one Dynu DNS domain by id: state, current IP addresses, TTL, group, DNSSEC flag and dates. Use for \"What is the curr","description":"Get one Dynu DNS domain by id: state, current IP addresses, TTL, group, DNSSEC flag and dates. Use for \"What is the current IP of Dynu DNS domain 35836275\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the DNS service domain, as returned by list_dns_domains.","title":"Id","type":"integer"}},"required":["id"],"title":"get_dns_domainArguments","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_dns_records":{"post":{"operationId":"list_dns_records","summary":"List the DNS records of a Dynu DNS domain with node name, hostname, record type, content, state and update time. Use for","description":"List the DNS records of a Dynu DNS domain with node name, hostname, record type, content, state and update time. Use for \"Show all DNS records of my Dynu domain 35836275\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the DNS service domain, as returned by list_dns_domains.","title":"Id","type":"integer"}},"required":["id"],"title":"list_dns_recordsArguments","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_web_redirects":{"post":{"operationId":"list_web_redirects","summary":"List the web redirects configured for a Dynu DNS domain with hostname, target URL, redirect type, state and HTTPS flag. ","description":"List the web redirects configured for a Dynu DNS domain with hostname, target URL, redirect type, state and HTTPS flag. Use for \"Which web redirects exist on Dynu domain 35836275\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the DNS service domain, as returned by list_dns_domains.","title":"Id","type":"integer"}},"required":["id"],"title":"list_web_redirectsArguments","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_update_history":{"post":{"operationId":"list_ip_update_history","summary":"List recent IP address updates received by Dynu dynamic DNS with status, IPv4 and IPv6 address, user agent and time. The","description":"List recent IP address updates received by Dynu dynamic DNS with status, IPv4 and IPv6 address, user agent and time. The query string is not returned. Use for \"When did my dynamic DNS last update and what was the result\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_ip_update_historyArguments","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_hostname_limits":{"post":{"operationId":"get_hostname_limits","summary":"Show how many third-level and top-level hostnames the account has in use and how many remain. Use for \"How many Dynu hos","description":"Show how many third-level and top-level hostnames the account has in use and how many remain. Use for \"How many Dynu hostnames can I still add\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_hostname_limitsArguments","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_registered_domains":{"post":{"operationId":"list_registered_domains","summary":"List domain names registered through Dynu with state, auto-renew, WHOIS protection, expiry and creation dates. Transfer ","description":"List domain names registered through Dynu with state, auto-renew, WHOIS protection, expiry and creation dates. Transfer authorization codes are not returned. Use for \"When do my domains registered at Dynu expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_registered_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/get_registered_domain":{"post":{"operationId":"get_registered_domain","summary":"Get one registered domain by id: state, auto-renew, WHOIS protection, expiry and creation dates. Use for \"Is auto-renew ","description":"Get one registered domain by id: state, auto-renew, WHOIS protection, expiry and creation dates. Use for \"Is auto-renew on for Dynu registered domain 901\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the registered domain, as returned by list_registered_domains.","title":"Id","type":"integer"}},"required":["id"],"title":"get_registered_domainArguments","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_domain_name_servers":{"post":{"operationId":"list_domain_name_servers","summary":"List the name servers set for a registered domain. Use for \"Which name servers does my Dynu registered domain 901 use\".","description":"List the name servers set for a registered domain. Use for \"Which name servers does my Dynu registered domain 901 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the registered domain, as returned by list_registered_domains.","title":"Id","type":"integer"}},"required":["id"],"title":"list_domain_name_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/list_monitors":{"post":{"operationId":"list_monitors","summary":"List uptime monitors (DNS, HTTP, keyword, ping and port checks) with state, interval and last check times. Credentials s","description":"List uptime monitors (DNS, HTTP, keyword, ping and port checks) with state, interval and last check times. Credentials stored in monitors are not returned. Use for \"Are any of my Dynu monitors down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_monitorsArguments","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_compute_instances":{"post":{"operationId":"list_compute_instances","summary":"List Dynu VPS instances with label, operating system, CPU, memory, storage, IP address, state, backup flag and snapshot ","description":"List Dynu VPS instances with label, operating system, CPU, memory, storage, IP address, state, backup flag and snapshot counts. Use for \"What state are my Dynu VPS instances in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_compute_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_compute_instance":{"post":{"operationId":"get_compute_instance","summary":"Get one Dynu VPS instance by id with specs, IP address, state, backup flag and snapshot counts. Use for \"Show details of","description":"Get one Dynu VPS instance by id with specs, IP address, state, backup flag and snapshot counts. Use for \"Show details of my Dynu VPS 77\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Numeric id of the VPS instance, as returned by list_compute_instances.","title":"Id","type":"integer"}},"required":["id"],"title":"get_compute_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}}}}