{"openapi":"3.1.0","info":{"title":"Certifier (BYOK) API","version":"0.1.0","description":"Certifier (BYOK) lets an AI assistant read your own Certifier data through the Certifier API with a key you supply (Certifier access token). Read-only: 8 tools (list_credentials, get_credential, get_credential_designs, list_credential_interactions, list_credential_templates, get_credential_template, list_design_templates, get_design_template). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-certifier.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-certifier/docs"},"termsOfService":"https://connectorbay.com/byok-certifier/terms"},"servers":[{"url":"https://byok-certifier.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-certifier/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_credentials":{"post":{"operationId":"list_credentials","summary":"List issued certificates and badges with status, issue and expiry dates and the credential template they belong to. Reci","description":"List issued certificates and badges with status, issue and expiry dates and the credential template they belong to. Recipient names and emails are not returned. Use for \"Which credentials have been issued in Certifier\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's pagination.next to fetch the next page.","title":"Cursor"}},"title":"list_credentialsArguments","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_credential":{"post":{"operationId":"get_credential","summary":"Get one credential with its status, issue and expiry dates and credential template. Recipient details are not returned. ","description":"Get one credential with its status, issue and expiry dates and credential template. Recipient details are not returned. Use for \"Show me this Certifier credential\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the credential, from list_credentials.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_credentialArguments","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_credential_designs":{"post":{"operationId":"get_credential_designs","summary":"List the certificate and badge designs of one credential with PNG or PDF preview links. Use for \"What designs does this ","description":"List the certificate and badge designs of one credential with PNG or PDF preview links. Use for \"What designs does this Certifier credential have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the credential, from list_credentials.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_credential_designsArguments","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_credential_interactions":{"post":{"operationId":"list_credential_interactions","summary":"List how issued credentials were used: viewed, downloaded, verified or shared to social networks, with time and who trig","description":"List how issued credentials were used: viewed, downloaded, verified or shared to social networks, with time and who triggered it. Use for \"How are my Certifier credentials being viewed and shared\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"credential_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only interactions of this credential.","title":"Credential Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's pagination.next to fetch the next page.","title":"Cursor"}},"title":"list_credential_interactionsArguments","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_credential_templates":{"post":{"operationId":"list_credential_templates","summary":"List credential templates (groups) with the course or learning event link and the linked certificate and badge designs. ","description":"List credential templates (groups) with the course or learning event link and the linked certificate and badge designs. Use for \"Which credential templates exist in Certifier\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's pagination.next to fetch the next page.","title":"Cursor"}},"title":"list_credential_templatesArguments","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_credential_template":{"post":{"operationId":"get_credential_template","summary":"Get one credential template (group) with its learning event link and linked designs. Use for \"Show me this Certifier cre","description":"Get one credential template (group) with its learning event link and linked designs. Use for \"Show me this Certifier credential template\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the credential template, from list_credential_templates.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_credential_templateArguments","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_design_templates":{"post":{"operationId":"list_design_templates","summary":"List the certificate and badge design templates in the workspace with a preview link. Use for \"Which certificate designs","description":"List the certificate and badge design templates in the workspace with a preview link. Use for \"Which certificate designs do I have in Certifier\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Records per page (default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous page's pagination.next to fetch the next page.","title":"Cursor"}},"title":"list_design_templatesArguments","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_design_template":{"post":{"operationId":"get_design_template","summary":"Get one certificate or badge design template with type and preview link. Use for \"Show me this Certifier design\".","description":"Get one certificate or badge design template with type and preview link. Use for \"Show me this Certifier design\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"ID of the design template, from list_design_templates.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_design_templateArguments","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}}}}