{"openapi":"3.1.0","info":{"title":"DigiCert (BYOK) API","version":"0.1.0","description":"DigiCert (BYOK) lets an AI assistant read your own DigiCert data through the DigiCert API with a key you supply (DigiCert CertCentral API key). Read-only: 8 tools (list_orders, list_domains, list_organizations, list_divisions, list_products, get_expiring_domains_count, get_expiring_orders_report, get_request_summary). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-digicert.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-digicert/docs"},"termsOfService":"https://connectorbay.com/byok-digicert/terms"},"servers":[{"url":"https://byok-digicert.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-digicert/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_orders":{"post":{"operationId":"list_orders","summary":"List certificate orders with common name, status, expiry date, days remaining, product, organization and division. Filte","description":"List certificate orders with common name, status, expiry date, days remaining, product, organization and division. Filter by status, domain, product or text. Use for \"Which active DigiCert certificates expire soonest\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["pending","issued","rejected","revoked","waiting_pickup","reissue_pending","canceled","active_issued"],"type":"string"},{"type":"null"}],"default":null,"description":"Order status: pending, issued, rejected, revoked, waiting_pickup, reissue_pending, canceled or active_issued (issued and not yet expired).","title":"Status"},"common_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders with exactly this common name.","title":"Common Name"},"domain_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders whose common name or alternative names include this domain.","title":"Domain Name"},"product_name_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Product id such as ssl_basic or ssl_plus (see list_products).","title":"Product Name Id"},"valid_till":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Expiry filter: a date, a range 2026-11-01...2026-12-31, or <2026-12-31 for before that date.","title":"Valid Till"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text matched against common name and email; prefix with %25 for contains.","title":"Search"},"sort":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Sort by order_id, status, common_name, date_created or product_name_id; prefix - for descending.","title":"Sort"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many orders to return (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first record to return, for paging.","title":"Offset"}},"title":"list_ordersArguments","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_domains":{"post":{"operationId":"list_domains","summary":"List domains registered for validation with active flag, domain control validation method and expiry, organization and d","description":"List domains registered for validation with active flag, domain control validation method and expiry, organization and division. Use for \"Which of my DigiCert domains have validation expiring\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","inactive"],"type":"string"},{"type":"null"}],"default":null,"description":"Only active or inactive domains.","title":"Status"},"dcv_method":{"anyOf":[{"enum":["email","dns-cname-token","dns-txt-token","http-token","http-token-dynamic"],"type":"string"},{"type":"null"}],"default":null,"description":"Only domains validated by this method: email, dns-cname-token, dns-txt-token, http-token or http-token-dynamic.","title":"Dcv Method"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text contained in the domain name, for example example.","title":"Search"},"include_validation_reuse_status":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to add OV and EV validation status fields to dcv_expiration.","title":"Include Validation Reuse Status"},"sort":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Sort by id, name, date_created, dcv_method or organization_name; prefix - for descending.","title":"Sort"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first record to return, for paging.","title":"Offset"}},"title":"list_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_organizations":{"post":{"operationId":"list_organizations","summary":"List organizations in the account with status, display name, country and division (contact details are left out). Use fo","description":"List organizations in the account with status, display name, country and division (contact details are left out). Use for \"Which organizations are active in my DigiCert account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","inactive"],"type":"string"},{"type":"null"}],"default":null,"description":"Only active or inactive organizations.","title":"Status"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Organization id (exact) or part of the name.","title":"Search"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first record to return, for paging.","title":"Offset"}},"title":"list_organizationsArguments","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_divisions":{"post":{"operationId":"list_divisions","summary":"List divisions (containers) of the account with parent, active flag and the domain names they may order for. Use for \"Wh","description":"List divisions (containers) of the account with parent, active flag and the domain names they may order for. Use for \"What divisions exist in my DigiCert account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_divisionsArguments","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_products":{"post":{"operationId":"list_products","summary":"List the certificate products the account can order with product id, group, allowed validity years and whether a CSR is ","description":"List the certificate products the account can order with product id, group, allowed validity years and whether a CSR is required. Use for \"Which certificate products can I order from DigiCert\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_productsArguments","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_expiring_domains_count":{"post":{"operationId":"get_expiring_domains_count","summary":"Count domains whose validation is expired or expiring within 30, 60 and 90 days. Use for \"How many of my domains need re","description":"Count domains whose validation is expired or expiring within 30, 60 and 90 days. Use for \"How many of my domains need revalidation soon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_expiring_domains_countArguments","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_expiring_orders_report":{"post":{"operationId":"get_expiring_orders_report","summary":"Count certificate orders by days until expiry (30, 60, 90 and recently expired), optionally with certificate counts and ","description":"Count certificate orders by days until expiry (30, 60, 90 and recently expired), optionally with certificate counts and for one division. Use for \"How many certificates expire within 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"anyOf":[{"maximum":999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit to one division id (see list_divisions).","title":"Container Id"},"include_expiring_certs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include the expiring certificates count next to the orders count.","title":"Include Expiring Certs"}},"title":"get_expiring_orders_reportArguments","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_request_summary":{"post":{"operationId":"get_request_summary","summary":"Count certificate requests by type (new request, revoke, duplicate, reissue) for the account or one division. Use for \"H","description":"Count certificate requests by type (new request, revoke, duplicate, reissue) for the account or one division. Use for \"How many new certificate requests came in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"anyOf":[{"maximum":999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit to one division id (see list_divisions).","title":"Container Id"}},"title":"get_request_summaryArguments","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}}}}