{"openapi":"3.1.0","info":{"title":"Codacy (BYOK) API","version":"0.1.0","description":"Codacy (BYOK) lets an AI assistant read your own Codacy data through the Codacy API with a key you supply (account API token). Read-only: 7 tools (get_user, list_user_organizations, list_repositories, get_repository_analysis, list_pull_requests, list_branches, list_security_items). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-codacy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-codacy/docs"},"termsOfService":"https://connectorbay.com/byok-codacy/terms"},"servers":[{"url":"https://byok-codacy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-codacy/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/get_user":{"post":{"operationId":"get_user","summary":"Show the Codacy user the account API token belongs to: id, name, admin flag and creation date. Emails are not returned. ","description":"Show the Codacy user the account API token belongs to: id, name, admin flag and creation date. Emails are not returned. Use for \"Which Codacy user is my token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_userArguments","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_user_organizations":{"post":{"operationId":"list_user_organizations","summary":"List the Codacy organizations the user belongs to with provider, type and creation date. Page with the cursor. Use for \"","description":"List the Codacy organizations the user belongs to with provider, type and creation date. Page with the cursor. Use for \"Which Codacy organizations do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: pagination.cursor from the previous answer. Leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many items per page (1 to 100, default 100).","title":"Limit"}},"title":"list_user_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_repositories":{"post":{"operationId":"list_repositories","summary":"List an organization's repositories with Codacy grade, issue count, lines of code, complexity, duplication and coverage.","description":"List an organization's repositories with Codacy grade, issue count, lines of code, complexity, duplication and coverage. Page with the cursor. Use for \"Which of my Codacy repositories have the worst grade\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"description":"Git provider code: gh (GitHub), ghe (GitHub Enterprise), gl (GitLab), gle (GitLab Enterprise), bb (Bitbucket) or bbe (Bitbucket Server).","enum":["gh","ghe","gl","gle","bb","bbe"],"title":"Provider","type":"string"},"organization":{"description":"Organization (account) name on the Git provider, for example 'codacy'.","maxLength":100,"title":"Organization","type":"string"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only repositories whose name contains this text.","title":"Search"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: pagination.cursor from the previous answer. Leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many items per page (1 to 100, default 100).","title":"Limit"}},"required":["provider","organization"],"title":"list_repositoriesArguments","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_repository_analysis":{"post":{"operationId":"get_repository_analysis","summary":"Get one repository's Codacy analysis: grade, issues, lines of code, complexity, duplication, coverage and last analysed ","description":"Get one repository's Codacy analysis: grade, issues, lines of code, complexity, duplication, coverage and last analysed commit, for the default or a chosen branch. Use for \"What is the Codacy grade and coverage of my repository\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"description":"Git provider code: gh (GitHub), ghe (GitHub Enterprise), gl (GitLab), gle (GitLab Enterprise), bb (Bitbucket) or bbe (Bitbucket Server).","enum":["gh","ghe","gl","gle","bb","bbe"],"title":"Provider","type":"string"},"organization":{"description":"Organization (account) name on the Git provider, for example 'codacy'.","maxLength":100,"title":"Organization","type":"string"},"repository":{"description":"Repository name without the organization, for example 'codacy-example'.","maxLength":200,"title":"Repository","type":"string"},"branch":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Branch to report on; defaults to the default branch.","title":"Branch"}},"required":["provider","organization","repository"],"title":"get_repository_analysisArguments","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_pull_requests":{"post":{"operationId":"list_pull_requests","summary":"List a repository's pull requests with Codacy results: whether they meet standards, new and fixed issues, complexity and","description":"List a repository's pull requests with Codacy results: whether they meet standards, new and fixed issues, complexity and coverage change. Page with the cursor. Use for \"Do my open pull requests pass the Codacy quality gate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"description":"Git provider code: gh (GitHub), ghe (GitHub Enterprise), gl (GitLab), gle (GitLab Enterprise), bb (Bitbucket) or bbe (Bitbucket Server).","enum":["gh","ghe","gl","gle","bb","bbe"],"title":"Provider","type":"string"},"organization":{"description":"Organization (account) name on the Git provider, for example 'codacy'.","maxLength":100,"title":"Organization","type":"string"},"repository":{"description":"Repository name without the organization, for example 'codacy-example'.","maxLength":200,"title":"Repository","type":"string"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only pull requests whose title or number matches this text.","title":"Search"},"target_branch":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only pull requests into this branch.","title":"Target Branch"},"include_not_analyzed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include pull requests Codacy did not analyze.","title":"Include Not Analyzed"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: pagination.cursor from the previous answer. Leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many items per page (1 to 100, default 100).","title":"Limit"}},"required":["provider","organization","repository"],"title":"list_pull_requestsArguments","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_branches":{"post":{"operationId":"list_branches","summary":"List a repository's branches known to Codacy with default and enabled flags and last commit. Page with the cursor. Use f","description":"List a repository's branches known to Codacy with default and enabled flags and last commit. Page with the cursor. Use for \"Which branches of my repository does Codacy analyze\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"description":"Git provider code: gh (GitHub), ghe (GitHub Enterprise), gl (GitLab), gle (GitLab Enterprise), bb (Bitbucket) or bbe (Bitbucket Server).","enum":["gh","ghe","gl","gle","bb","bbe"],"title":"Provider","type":"string"},"organization":{"description":"Organization (account) name on the Git provider, for example 'codacy'.","maxLength":100,"title":"Organization","type":"string"},"repository":{"description":"Repository name without the organization, for example 'codacy-example'.","maxLength":200,"title":"Repository","type":"string"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only branches Codacy analyzes.","title":"Enabled"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only branches whose name contains this text.","title":"Search"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: pagination.cursor from the previous answer. Leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many items per page (1 to 100, default 100).","title":"Limit"}},"required":["provider","organization","repository"],"title":"list_branchesArguments","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_security_items":{"post":{"operationId":"list_security_items","summary":"List an organization's security and risk management findings with title, repository, priority, status, category, CVE and","description":"List an organization's security and risk management findings with title, repository, priority, status, category, CVE and due date. Page with the cursor. Use for \"Which critical security findings are open in my Codacy organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"description":"Git provider code: gh (GitHub), ghe (GitHub Enterprise), gl (GitLab), gle (GitLab Enterprise), bb (Bitbucket) or bbe (Bitbucket Server).","enum":["gh","ghe","gl","gle","bb","bbe"],"title":"Provider","type":"string"},"organization":{"description":"Organization (account) name on the Git provider, for example 'codacy'.","maxLength":100,"title":"Organization","type":"string"},"repositories":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only findings of these repositories (comma-separated names).","title":"Repositories"},"priority":{"anyOf":[{"enum":["Low","Medium","High","Critical"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this priority.","title":"Priority"},"status":{"anyOf":[{"enum":["Overdue","OnTrack","DueSoon","ClosedOnTime","ClosedLate","Ignored"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this SLA status.","title":"Status"},"category":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only this security category.","title":"Category"},"scan_type":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only this scan type.","title":"Scan Type"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: pagination.cursor from the previous answer. Leave out for the first page.","title":"Cursor"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many items per page (1 to 100, default 100).","title":"Limit"}},"required":["provider","organization"],"title":"list_security_itemsArguments","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}}}}