{"openapi":"3.1.0","info":{"title":"Cloudflare SSL Certificates (BYOK) API","version":"0.1.0","description":"Cloudflare SSL Certificates (BYOK) lets an AI assistant read your own Cloudflare SSL Certificates data through the Cloudflare SSL Certificates API with a key you supply (Cloudflare API token with SSL and Certificates read permission). Read-only: 12 tools (list_certificate_packs, get_certificate_pack, get_pack_quota, list_custom_certificates, get_custom_certificate, get_universal_ssl_settings,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cloudflare-ssl-certificates.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cloudflare-ssl-certificates/docs"},"termsOfService":"https://connectorbay.com/byok-cloudflare-ssl-certificates/terms"},"servers":[{"url":"https://byok-cloudflare-ssl-certificates.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cloudflare-ssl-certificates/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_certificate_packs":{"post":{"operationId":"list_certificate_packs","summary":"List the certificate packs of a zone (universal, advanced, custom) with hosts, certificate authority, status, validation","description":"List the certificate packs of a zone (universal, advanced, custom) with hosts, certificate authority, status, validation method and validity. The certificate text and private material are left out. Use for \"Which TLS certificates does my Cloudflare zone have and when do they expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"status":{"anyOf":[{"const":"all","type":"string"},{"type":"null"}],"default":null,"description":"Use 'all' to include packs in every state, not only active ones.","title":"Status"},"per_page":{"anyOf":[{"maximum":50,"minimum":5,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (5 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; result_info.total_count says how many exist.","title":"Page"}},"required":["zone_id"],"title":"list_certificate_packsArguments","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_certificate_pack":{"post":{"operationId":"get_certificate_pack","summary":"Get one certificate pack with hosts, certificate authority, status, validation method and its member certificates. The c","description":"Get one certificate pack with hosts, certificate authority, status, validation method and its member certificates. The certificate text and private material are left out. Use for \"What is the status of certificate pack 3822ff90\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"certificate_pack_id":{"description":"Certificate pack id (32-character hex string), as returned by list_certificate_packs.","maxLength":40,"title":"Certificate Pack Id","type":"string"}},"required":["zone_id","certificate_pack_id"],"title":"get_certificate_packArguments","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_pack_quota":{"post":{"operationId":"get_pack_quota","summary":"Show how many advanced certificate packs a zone may have (allocated) and how many it uses. Use for \"How many advanced ce","description":"Show how many advanced certificate packs a zone may have (allocated) and how many it uses. Use for \"How many advanced certificate packs can I still order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_pack_quotaArguments","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_custom_certificates":{"post":{"operationId":"list_custom_certificates","summary":"List the custom (uploaded) certificates of a zone with hosts, issuer, status, bundle method and expiry. The certificate ","description":"List the custom (uploaded) certificates of a zone with hosts, issuer, status, bundle method and expiry. The certificate text and private material are left out. Use for \"Which custom certificates are uploaded to my zone and which are expiring\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"status":{"anyOf":[{"enum":["active","expired","deleted","pending","initializing"],"type":"string"},{"type":"null"}],"default":null,"description":"Only certificates in this status.","title":"Status"},"per_page":{"anyOf":[{"maximum":50,"minimum":5,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (5 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; result_info.total_count says how many exist.","title":"Page"}},"required":["zone_id"],"title":"list_custom_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/get_custom_certificate":{"post":{"operationId":"get_custom_certificate","summary":"Get one custom certificate of a zone: hosts, issuer, status, bundle method, priority and dates. The certificate text and","description":"Get one custom certificate of a zone: hosts, issuer, status, bundle method, priority and dates. The certificate text and private material are left out. Use for \"When does custom certificate 0f405ba2 expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"},"custom_certificate_id":{"description":"Custom certificate id (32-character hex string), as returned by list_custom_certificates.","maxLength":40,"title":"Custom Certificate Id","type":"string"}},"required":["zone_id","custom_certificate_id"],"title":"get_custom_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/get_universal_ssl_settings":{"post":{"operationId":"get_universal_ssl_settings","summary":"Show whether Universal SSL is enabled for a zone. Use for \"Is Universal SSL enabled on my zone\".","description":"Show whether Universal SSL is enabled for a zone. Use for \"Is Universal SSL enabled on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_universal_ssl_settingsArguments","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_ssl_verification":{"post":{"operationId":"get_ssl_verification","summary":"List the certificate validation status of a zone: validation method, certificate status and the DNS or HTTP record neede","description":"List the certificate validation status of a zone: validation method, certificate status and the DNS or HTTP record needed to finish validation. Use for \"Why is my Cloudflare certificate stuck pending validation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_ssl_verificationArguments","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_total_tls":{"post":{"operationId":"get_total_tls","summary":"Show the Total TLS setting of a zone: enabled flag, certificate authority and validity period. Use for \"Is Total TLS ena","description":"Show the Total TLS setting of a zone: enabled flag, certificate authority and validity period. Use for \"Is Total TLS enabled for my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_total_tlsArguments","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_authenticated_origin_pull_setting":{"post":{"operationId":"get_authenticated_origin_pull_setting","summary":"Show whether zone-level Authenticated Origin Pulls (client certificate to your origin) is enabled. Use for \"Is Authentic","description":"Show whether zone-level Authenticated Origin Pulls (client certificate to your origin) is enabled. Use for \"Is Authenticated Origin Pull enabled on my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Cloudflare zone id (32-character hex string, from the Cloudflare connector's list_zones).","maxLength":40,"title":"Zone Id","type":"string"}},"required":["zone_id"],"title":"get_authenticated_origin_pull_settingArguments","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_origin_ca_certificates":{"post":{"operationId":"list_origin_ca_certificates","summary":"List Cloudflare Origin CA certificates issued for a zone with hostnames, request type, requested validity and expiry. Th","description":"List Cloudflare Origin CA certificates issued for a zone with hostnames, request type, requested validity and expiry. The certificate text and private material are left out. Use for \"Which Origin CA certificates do I have for my zone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zone_id":{"description":"Zone id (32-character hex string) to list Origin CA certificates for.","maxLength":40,"title":"Zone Id","type":"string"},"per_page":{"anyOf":[{"maximum":50,"minimum":5,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (5 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; result_info.total_count says how many exist.","title":"Page"}},"required":["zone_id"],"title":"list_origin_ca_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/get_origin_ca_certificate":{"post":{"operationId":"get_origin_ca_certificate","summary":"Get one Origin CA certificate: hostnames, request type, requested validity and expiry. The certificate text and private ","description":"Get one Origin CA certificate: hostnames, request type, requested validity and expiry. The certificate text and private material are left out. Use for \"When does my Origin CA certificate expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"certificate_id":{"description":"Origin CA certificate id, as returned by list_origin_ca_certificates.","maxLength":64,"title":"Certificate Id","type":"string"}},"required":["certificate_id"],"title":"get_origin_ca_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_mtls_certificates":{"post":{"operationId":"list_mtls_certificates","summary":"List the account's mTLS certificates (Access, Gateway or custom) with issuer, serial number, type, CA flag, upload and e","description":"List the account's mTLS certificates (Access, Gateway or custom) with issuer, serial number, type, CA flag, upload and expiry dates. The certificate text and private material are left out. Use for \"Which mTLS certificates exist in my Cloudflare account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Cloudflare account id (32-character hex string shown in the dashboard URL, or from the Cloudflare connector's list_accounts).","maxLength":40,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"list_mtls_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}}}}