{"openapi":"3.1.0","info":{"title":"Kinsta (BYOK) API","version":"0.1.0","description":"Kinsta (BYOK) lets an AI assistant read your own Kinsta data through the Kinsta API with a key you supply (Kinsta API key). Read-only: 12 tools (validate_api_key, list_sites, get_site, list_site_environments, list_environment_domains, list_backups, list_company_domains, list_dns_records, list_plugins, list_themes, get_site_usage, get_site_bandwidth_usage). The BYOK key travels with each request,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-kinsta.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-kinsta/docs"},"termsOfService":"https://connectorbay.com/byok-kinsta/terms"},"servers":[{"url":"https://byok-kinsta.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-kinsta/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/validate_api_key":{"post":{"operationId":"validate_api_key","summary":"Check the API key: its name, status, expiry time and company id. Use it to find the company id the other tools need. Use","description":"Check the API key: its name, status, expiry time and company id. Use it to find the company id the other tools need. Use for \"Is my Kinsta API key valid and which company does it belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"validate_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_sites":{"post":{"operationId":"list_sites","summary":"List the WordPress sites of a company with id, name, display name, status and labels (environments are not included; use","description":"List the WordPress sites of a company with id, name, display name, status and labels (environments are not included; use list_site_environments). Use for \"Which WordPress sites do I host on Kinsta\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your Kinsta company id (a UUID, shown in MyKinsta company settings).","maxLength":64,"title":"Company","type":"string"}},"required":["company"],"title":"list_sitesArguments","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_site":{"post":{"operationId":"get_site","summary":"Get one site by id with its name, status, company and environments (live, staging) including each environment's domains.","description":"Get one site by id with its name, status, company and environments (live, staging) including each environment's domains. Use for \"Show my Kinsta site s1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Kinsta site id (a UUID) from list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"get_siteArguments","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_site_environments":{"post":{"operationId":"list_site_environments","summary":"List a site's environments with name, blocked flag, premium flag, WordPress version, web root, domains, primary domain, ","description":"List a site's environments with name, blocked flag, premium flag, WordPress version, web root, domains, primary domain, PHP engine and SSH port. Use for \"Which WordPress and PHP version does my Kinsta site s1 run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Kinsta site id (a UUID) from list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_site_environmentsArguments","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_environment_domains":{"post":{"operationId":"list_environment_domains","summary":"List the domains attached to one environment with id, name and whether Cloudflare DNS is used. Use for \"Which domains po","description":"List the domains attached to one environment with id, name and whether Cloudflare DNS is used. Use for \"Which domains point at my Kinsta live environment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"env_id":{"description":"Kinsta environment id (a UUID) from list_site_environments.","maxLength":64,"title":"Env Id","type":"string"}},"required":["env_id"],"title":"list_environment_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/list_backups":{"post":{"operationId":"list_backups","summary":"List manual, scheduled and system backups of one environment with id, name, note, type and creation time (Unix time). Us","description":"List manual, scheduled and system backups of one environment with id, name, note, type and creation time (Unix time). Use for \"When was my Kinsta site last backed up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"env_id":{"description":"Kinsta environment id (a UUID) from list_site_environments.","maxLength":64,"title":"Env Id","type":"string"}},"required":["env_id"],"title":"list_backupsArguments","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_company_domains":{"post":{"operationId":"list_company_domains","summary":"List the domains registered in Kinsta DNS for a company with id, name, linked site and active flag. Use for \"Which domai","description":"List the domains registered in Kinsta DNS for a company with id, name, linked site and active flag. Use for \"Which domains do I have in Kinsta DNS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your Kinsta company id (a UUID, shown in MyKinsta company settings).","maxLength":64,"title":"Company","type":"string"}},"required":["company"],"title":"list_company_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/list_dns_records":{"post":{"operationId":"list_dns_records","summary":"List the DNS records of a Kinsta DNS domain with type, name, TTL and values. Use for \"What DNS records does my Kinsta DN","description":"List the DNS records of a Kinsta DNS domain with type, name, TTL and values. Use for \"What DNS records does my Kinsta DNS domain d1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain_id":{"description":"Kinsta DNS domain id (a UUID) from list_company_domains.","maxLength":64,"title":"Domain Id","type":"string"}},"required":["domain_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_plugins":{"post":{"operationId":"list_plugins","summary":"List the WordPress plugins of one environment with title, status, version, available update, vulnerability flags and aut","description":"List the WordPress plugins of one environment with title, status, version, available update, vulnerability flags and auto-update type. Use for \"Which plugins on my Kinsta site need updates or have vulnerabilities\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"env_id":{"description":"Kinsta environment id (a UUID) from list_site_environments.","maxLength":64,"title":"Env Id","type":"string"}},"required":["env_id"],"title":"list_pluginsArguments","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_themes":{"post":{"operationId":"list_themes","summary":"List the WordPress themes of one environment with title, status, version, available update and vulnerability flags. Use ","description":"List the WordPress themes of one environment with title, status, version, available update and vulnerability flags. Use for \"Which themes does my Kinsta site use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"env_id":{"description":"Kinsta environment id (a UUID) from list_site_environments.","maxLength":64,"title":"Env Id","type":"string"}},"required":["env_id"],"title":"list_themesArguments","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_site_usage":{"post":{"operationId":"get_site_usage","summary":"Get a site's visits this month (a count). Use for \"How many visits has my Kinsta site s1 had this month\".","description":"Get a site's visits this month (a count). Use for \"How many visits has my Kinsta site s1 had this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Kinsta site id (a UUID) from list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"get_site_usageArguments","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_site_bandwidth_usage":{"post":{"operationId":"get_site_bandwidth_usage","summary":"Get a site's server bandwidth used this month (a number in the unit the API reports). Use for \"How much server bandwidth","description":"Get a site's server bandwidth used this month (a number in the unit the API reports). Use for \"How much server bandwidth has my Kinsta site s1 used this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Kinsta site id (a UUID) from list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"get_site_bandwidth_usageArguments","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}}}}