Get a review
Returns one review in full: the whole body, the structured findings with file, line, severity and what each rests on, and the team's ratings.
api_key viewAuthorizationBearer <token>A team API key, made by an admin under Settings, API keys. Send it as Authorization: Bearer chk_....
Scope: view
sk*stringThe review's sk, from a list of reviews.
The review.
application/json- response
A pull request review by CoderHelm's reviewer.
action_summary*stringWhat the reviewer did besides reviewing, such as arming auto-merge.
"Requested changes; auto-merge stays off until they are fixed."applied_standards*array<string>The team standards the review was given in full ("always apply").
[ "api-error-format"]body*stringThe review as posted, in Markdown. Cut to about 4,000 characters in a list.
"**Request changes.** The attempt counter is never reset after a successful login, so a user who mistypes their password nine times is locked out on their next good attempt."created_at*stringWhen it was written (RFC 3339).
"2026-10-22T14:20:05Z"findings?array<>|The structured findings. Null in a list (get the review for them) and on older reviews.
[ { "blocks": false, "body": "After a good password the counter for the IP stays where it was.", "category": "bug", "end_line": 44, "evidence": "verified-defect", "file": "src/auth/login.ts", "line": 42, "lookups": [], "severity": "high", "suggestion": "attempts.delete(ip);", "title": "The attempt counter is never reset after a successful login" }]head_sha*stringThe commit reviewed.
"9fceb02d0ae598e95dc970b74767f19372d61af8"posted_as*stringThe GitHub review event it was posted as: APPROVE,
REQUEST_CHANGES or COMMENT.
"REQUEST_CHANGES"pr_number*integerThe pull request number.
int640 <= value318pr_title*stringThe pull request's title. Empty on older reviews.
"Rate-limit the login form"rating_comments*array<>Ratings with comments.
repo*stringThe repository, owner/name.
"acme/web"risk*stringThe risk the reviewer gave the change: LOW, MEDIUM or HIGH.
"MEDIUM"sk*stringThe review's key: pass it as sk to get the review.
"REVIEW#acme/web#318#2026-10-22T14:20:05Z"thumbs_down*integerThumbs down from the team.
int640 <= value0thumbs_up*integerThumbs up from the team.
int640 <= value2trigger*stringWhat asked for it, such as label, rerequest, reply or sweep.
"label"verdict*stringThe reviewer's verdict: APPROVE or REQUEST_CHANGES.
"REQUEST_CHANGES"curl -X GET 'https://api.coderhelm.com/api/reviewer/review?sk=REVIEW%23acme%2Fweb%23318%232026-10-22T14%3A20%3A05Z' \ -H "Authorization: Bearer $CODERHELM_API_KEY"{ "action_summary": "Requested changes; auto-merge stays off until they are fixed.", "applied_standards": [ "api-error-format" ], "body": "**Request changes.** The attempt counter is never reset after a successful login, so a user who mistypes their password nine times is locked out on their next good attempt.", "created_at": "2026-10-22T14:20:05Z", "findings": [ { "blocks": false, "body": "After a good password the counter for the IP stays where it was.", "category": "bug", "end_line": 44, "evidence": "verified-defect", "file": "src/auth/login.ts", "line": 42, "lookups": [], "severity": "high", "suggestion": "attempts.delete(ip);", "title": "The attempt counter is never reset after a successful login" } ], "head_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", "posted_as": "REQUEST_CHANGES", "pr_number": 318, "pr_title": "Rate-limit the login form", "rating_comments": [ { "at": "2026-10-22T15:01:44+00:00", "by": "octocat", "rating": "up", "text": "Good catch on the counter." } ], "repo": "acme/web", "risk": "MEDIUM", "sk": "REVIEW#acme/web#318#2026-10-22T14:20:05Z", "thumbs_down": 0, "thumbs_up": 2, "trigger": "label", "verdict": "REQUEST_CHANGES"}List repositories GET
Lists the repositories connected to the team through the CoderHelm GitHub App, whether CoderHelm works on each, and where its tickets come from. Not paged: a team's repositories come back in one answer.
List reviews GET
Lists the reviewer's pull request reviews, newest first, one page at a time, for the whole team or one repository. Bodies are cut to about 4,000 characters and findings are left out; get a review by its `sk` for both.