{"openapi":"3.1.0","info":{"title":"Certman (BYOK) API","version":"0.1.0","description":"Certman (BYOK) lets an AI assistant read your own Certman data through the Certman API with a key you supply (Certman API key (starts with cm_; a key with read permissions is enough)). Read-only: 5 tools (whoami, list_certificate_authorities, get_certificate_authority, get_ca_chain, list_certificates). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-certman.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-certman/docs"},"termsOfService":"https://connectorbay.com/byok-certman/terms"},"servers":[{"url":"https://byok-certman.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-certman/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/whoami":{"post":{"operationId":"whoami","summary":"Show which workspace and API key you are using and the per-CA permissions of the key. Use for \"Which Certman workspace d","description":"Show which workspace and API key you are using and the per-CA permissions of the key. Use for \"Which Certman workspace does my key belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"whoamiArguments","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_certificate_authorities":{"post":{"operationId":"list_certificate_authorities","summary":"List private certificate authorities with name, subject, key algorithm, validity, parent CA and depth in the hierarchy; ","description":"List private certificate authorities with name, subject, key algorithm, validity, parent CA and depth in the hierarchy; filter by root or intermediate or by parent. Use for \"Which certificate authorities do I have in Certman\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"enum":["root","intermediate","all"],"type":"string"},{"type":"null"}],"default":"all","description":"Only this kind of CA.","title":"Type"},"parent_ca_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only the children of this CA id.","title":"Parent Ca Id"}},"title":"list_certificate_authoritiesArguments","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_authority":{"post":{"operationId":"get_certificate_authority","summary":"Get the details of one certificate authority by id. Use for \"Show the details of Certman CA ca_1\".","description":"Get the details of one certificate authority by id. Use for \"Show the details of Certman CA ca_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ca_id":{"description":"CA id from list_certificate_authorities.","maxLength":100,"title":"Ca Id","type":"string"}},"required":["ca_id"],"title":"get_certificate_authorityArguments","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_ca_chain":{"post":{"operationId":"get_ca_chain","summary":"Get the PEM encoded public certificate chain of a certificate authority, from the CA up to the root. Use for \"Give me th","description":"Get the PEM encoded public certificate chain of a certificate authority, from the CA up to the root. Use for \"Give me the certificate chain of Certman CA ca_1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ca_id":{"description":"CA id from list_certificate_authorities.","maxLength":100,"title":"Ca Id","type":"string"}},"required":["ca_id"],"title":"get_ca_chainArguments","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_certificates":{"post":{"operationId":"list_certificates","summary":"List issued certificates with common name, alternative names, key algorithm, validity, serial number and revocation stat","description":"List issued certificates with common name, alternative names, key algorithm, validity, serial number and revocation state; filter by CA, status, name, creation date or days until expiry. Use for \"Which Certman certificates expire in the next 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ca_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only certificates of this CA id.","title":"Ca Id"},"status":{"anyOf":[{"enum":["active","revoked","all"],"type":"string"},{"type":"null"}],"default":"all","description":"Only certificates with this status.","title":"Status"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the common name (case-insensitive).","title":"Search"},"created_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only certificates created on or after this ISO 8601 date.","title":"Created From"},"created_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only certificates created on or before this ISO 8601 date.","title":"Created To"},"expiring_in_days":{"anyOf":[{"maximum":3650,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only certificates expiring within this many days.","title":"Expiring In Days"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Certificates per page (1 to 100).","title":"Page Size"}},"title":"list_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}}}}