{"openapi":"3.1.0","info":{"title":"Accredible (BYOK) API","version":"0.1.0","description":"Accredible (BYOK) lets an AI assistant read your own Accredible data through the Accredible API with a key you supply (Accredible API key (US data center)). Read-only: 7 tools (list_groups, get_group, list_credentials, list_skill_frameworks, list_skill_categories, get_department, get_issuer). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-accredible.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-accredible/docs"},"termsOfService":"https://connectorbay.com/byok-accredible/terms"},"servers":[{"url":"https://byok-accredible.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-accredible/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_groups":{"post":{"operationId":"list_groups","summary":"List credential groups (courses or qualifications) with course name, description, link, language, expiry rule and skill ","description":"List credential groups (courses or qualifications) with course name, description, link, language, expiry rule and skill category. Use for \"Which credential groups exist in Accredible\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_groupsArguments","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_group":{"post":{"operationId":"get_group","summary":"Get one credential group with course details, language, expiry rule and skill category. Use for \"Show me this Accredible","description":"Get one credential group with course details, language, expiry rule and skill category. Use for \"Show me this Accredible group\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Group ID, from list_groups.","maxLength":200,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_groupArguments","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_credentials":{"post":{"operationId":"list_credentials","summary":"List issued credentials with group, issue and expiry date, completion state and privacy flag. Recipient names, emails, g","description":"List issued credentials with group, issue and expiry date, completion state and privacy flag. Recipient names, emails, grades and custom data are not returned. Use for \"Which Accredible credentials were issued recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only credentials of this group ID.","title":"Group Id"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only credentials issued after this date (YYYY-MM-DD).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only credentials issued before this date (YYYY-MM-DD).","title":"End Date"},"start_updated_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only credentials updated after this date (YYYY-MM-DD).","title":"Start Updated Date"},"end_updated_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only credentials updated before this date (YYYY-MM-DD).","title":"End Updated Date"},"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":50,"description":"Records per page.","title":"Page Size"}},"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/list_skill_frameworks":{"post":{"operationId":"list_skill_frameworks","summary":"List skill frameworks of a department with source, taxonomy, skill count and versions. Use for \"Which skill frameworks d","description":"List skill frameworks of a department with source, taxonomy, skill count and versions. Use for \"Which skill frameworks does my Accredible department use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"department_id":{"description":"Department ID to list frameworks for.","title":"Department Id","type":"integer"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":10,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"Records per page (maximum 10).","title":"Page Size"}},"required":["department_id"],"title":"list_skill_frameworksArguments","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_skill_categories":{"post":{"operationId":"list_skill_categories","summary":"List the skill categories that credential groups can be tagged with. Use for \"Which skill categories exist in Accredible","description":"List the skill categories that credential groups can be tagged with. Use for \"Which skill categories exist in Accredible\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_skill_categoriesArguments","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_department":{"post":{"operationId":"get_department","summary":"Get one department (a sub-organization) with name, website and whether credentials are private by default. Use for \"Show","description":"Get one department (a sub-organization) with name, website and whether credentials are private by default. Use for \"Show me this Accredible department\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"department_id":{"description":"Department ID.","maxLength":200,"title":"Department Id","type":"string"}},"required":["department_id"],"title":"get_departmentArguments","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_issuer":{"post":{"operationId":"get_issuer","summary":"Show the issuing organization of the key: name, website, language and remaining credit balance. Use for \"Which Accredibl","description":"Show the issuing organization of the key: name, website, language and remaining credit balance. Use for \"Which Accredible organization is my key for and how many credits are left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_issuerArguments","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}}}}