{"openapi":"3.1.0","info":{"title":"Netlify TLS and Hooks (BYOK) API","version":"0.1.0","description":"Netlify TLS and Hooks (BYOK) lets an AI assistant read your own Netlify TLS and Hooks data through the Netlify TLS and Hooks API with a key you supply (personal access token). Read-only: 9 tools (get_site_tls_certificate, list_site_certificates, list_build_hooks, list_notification_hooks, list_hook_types, list_site_files, list_site_assets, list_addon_services, get_addon_service). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-netlify-ssl-hooks.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-netlify-ssl-hooks/docs"},"termsOfService":"https://connectorbay.com/byok-netlify-ssl-hooks/terms"},"servers":[{"url":"https://byok-netlify-ssl-hooks.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-netlify-ssl-hooks/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_site_tls_certificate":{"post":{"operationId":"get_site_tls_certificate","summary":"Show the TLS certificate state of a Netlify site: state, covered domains, creation, update and expiry time. Use for \"Whe","description":"Show the TLS certificate state of a Netlify site: state, covered domains, creation, update and expiry time. Use for \"When does the TLS certificate of my Netlify site expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID, as returned by the Netlify connector's list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"get_site_tls_certificateArguments","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_certificates":{"post":{"operationId":"list_site_certificates","summary":"List the TLS certificates Netlify holds for one domain of a site, with state, covered domains and expiry. Use for \"Which","description":"List the TLS certificates Netlify holds for one domain of a site, with state, covered domains and expiry. Use for \"Which certificates exist for www.example.com on my Netlify site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID, as returned by the Netlify connector's list_sites.","maxLength":64,"title":"Site Id","type":"string"},"domain":{"description":"Domain name to look up, for example 'www.example.com'.","maxLength":253,"title":"Domain","type":"string"}},"required":["site_id","domain"],"title":"list_site_certificatesArguments","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_build_hooks":{"post":{"operationId":"list_build_hooks","summary":"List the build hooks of a Netlify site with title, branch and creation time. The secret trigger URL is not returned. Use","description":"List the build hooks of a Netlify site with title, branch and creation time. The secret trigger URL is not returned. Use for \"What build hooks does my Netlify site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID, as returned by the Netlify connector's list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_build_hooksArguments","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_notification_hooks":{"post":{"operationId":"list_notification_hooks","summary":"List the deploy notification hooks of a Netlify site with type, event, disabled flag and dates. Hook settings are not re","description":"List the deploy notification hooks of a Netlify site with type, event, disabled flag and dates. Hook settings are not returned. Use for \"Which deploy notifications are set up for my Netlify site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID whose notification hooks to list.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_notification_hooksArguments","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_hook_types":{"post":{"operationId":"list_hook_types","summary":"List the notification hook types Netlify supports with the events each can react to. Use for \"What kinds of notification","description":"List the notification hook types Netlify supports with the events each can react to. Use for \"What kinds of notification hooks can I add on Netlify\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_hook_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_site_files":{"post":{"operationId":"list_site_files","summary":"List the files of the site's current deploy with path, MIME type, size and content hash. Use for \"Which files are publis","description":"List the files of the site's current deploy with path, MIME type, size and content hash. Use for \"Which files are published on my Netlify site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID, as returned by the Netlify connector's list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_site_filesArguments","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_assets":{"post":{"operationId":"list_site_assets","summary":"List the uploaded asset records of a Netlify site with name, state, content type, size and visibility. Download URLs and","description":"List the uploaded asset records of a Netlify site with name, state, content type, size and visibility. Download URLs and keys are not returned. Use for \"What assets are uploaded to my Netlify site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Site ID, as returned by the Netlify connector's list_sites.","maxLength":64,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_site_assetsArguments","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_addon_services":{"post":{"operationId":"list_addon_services","summary":"Search the Netlify add-on (extension service) catalog, optionally by text, with name, slug, description, tags and enviro","description":"Search the Netlify add-on (extension service) catalog, optionally by text, with name, slug, description, tags and environments. Use for \"Which Netlify add-ons are available for monitoring\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match against add-on names and descriptions.","title":"Search"}},"title":"list_addon_servicesArguments","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_addon_service":{"post":{"operationId":"get_addon_service","summary":"Get one Netlify add-on from the catalog by its slug: name, description, tags and environments. Use for \"Tell me about th","description":"Get one Netlify add-on from the catalog by its slug: name, description, tags and environments. Use for \"Tell me about the example-addon Netlify add-on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"addon_name":{"description":"Add-on slug, as returned by list_addon_services.","maxLength":100,"title":"Addon Name","type":"string"}},"required":["addon_name"],"title":"get_addon_serviceArguments","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}}}}