curl --request GET \
--url https://api.coderabbit.ai/v1/triage/changes \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/triage/changes"
headers = {"x-coderabbitai-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-coderabbitai-api-key': '<api-key>'}};
fetch('https://api.coderabbit.ai/v1/triage/changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.coderabbit.ai/v1/triage/changes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-coderabbitai-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coderabbit.ai/v1/triage/changes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-coderabbitai-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coderabbit.ai/v1/triage/changes")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/triage/changes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-coderabbitai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"external_id": "<string>",
"provider": "github",
"provider_host": "<string>",
"url": "<string>",
"repository": {
"id": "<string>",
"owner": "<string>",
"name": "<string>"
},
"title": "<string>",
"state": "open",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>"
},
"head_revision": "<string>",
"latest_commit_at": "2023-11-07T05:31:56Z",
"latest_reviewable_observed_at": "2023-11-07T05:31:56Z",
"opened_at": "2023-11-07T05:31:56Z",
"age_seconds": 4503599627370495,
"last_activity_at": "2023-11-07T05:31:56Z",
"last_human_activity_at": "2023-11-07T05:31:56Z",
"change_type": "bugfix",
"focus_state": "now",
"priority": {
"level": "p0",
"source": "calculated",
"reason": "<string>",
"reason_codes": [
"<string>"
],
"score": 50,
"confidence": 0.5,
"override": {
"level": "p0"
}
},
"close_candidate": {
"value": true,
"status": "available",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>",
"source": "manual",
"reason": "<string>"
},
"requires_attention": true,
"attention_reason_codes": [
"<string>"
],
"next_action": {
"kind": "merge",
"responsible_role": "author",
"responsible_users": [
{
"id": "<string>",
"username": "<string>",
"name": "<string>"
}
],
"reason_codes": [
"<string>"
],
"status": "available"
},
"review_status": {
"status": "available",
"value": "reviewed",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"approval_status": {
"status": "available",
"value": "approved",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"blast_radius": {
"status": "available",
"value": "low",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"merge_risk": {
"status": "available",
"value": {
"level": "low",
"score": 0.5,
"basis": "direct",
"reason": "<string>"
},
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"security_risk": {
"status": "available",
"value": {
"level": "minimal",
"reason": "<string>"
},
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"review_effort": {
"status": "available",
"value": 0.5,
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"review_depth": {
"status": "available",
"value": "light",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"group_key": "<string>",
"subgroup_key": "<string>"
}
],
"groups": [
{
"key": "<string>",
"label": "<string>",
"count": 4503599627370495,
"subgroups": [
{
"key": "<string>",
"label": "<string>",
"count": 4503599627370495
}
]
}
],
"next_cursor": "<string>",
"meta": {
"request_id": "<string>",
"org_id": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"total_count": 4503599627370495,
"limit": 50,
"view": "mine",
"team_id": "<string>",
"group_by": "none",
"subgroup_by": "none",
"order_by": "triage",
"order_direction": "asc"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "forbidden",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "not_found",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "head_changed",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "precondition_failed",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "internal_error",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "unavailable",
"message": "<string>",
"retry_after": 4503599627370495
}
}List the caller's accessible Triage changes
Returns existing Triage observations and filters under the current viewer’s product and repository access. Unknown and stale evidence retain their recorded status.
curl --request GET \
--url https://api.coderabbit.ai/v1/triage/changes \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/triage/changes"
headers = {"x-coderabbitai-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-coderabbitai-api-key': '<api-key>'}};
fetch('https://api.coderabbit.ai/v1/triage/changes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.coderabbit.ai/v1/triage/changes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-coderabbitai-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.coderabbit.ai/v1/triage/changes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-coderabbitai-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.coderabbit.ai/v1/triage/changes")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/triage/changes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-coderabbitai-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"external_id": "<string>",
"provider": "github",
"provider_host": "<string>",
"url": "<string>",
"repository": {
"id": "<string>",
"owner": "<string>",
"name": "<string>"
},
"title": "<string>",
"state": "open",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>"
},
"head_revision": "<string>",
"latest_commit_at": "2023-11-07T05:31:56Z",
"latest_reviewable_observed_at": "2023-11-07T05:31:56Z",
"opened_at": "2023-11-07T05:31:56Z",
"age_seconds": 4503599627370495,
"last_activity_at": "2023-11-07T05:31:56Z",
"last_human_activity_at": "2023-11-07T05:31:56Z",
"change_type": "bugfix",
"focus_state": "now",
"priority": {
"level": "p0",
"source": "calculated",
"reason": "<string>",
"reason_codes": [
"<string>"
],
"score": 50,
"confidence": 0.5,
"override": {
"level": "p0"
}
},
"close_candidate": {
"value": true,
"status": "available",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>",
"source": "manual",
"reason": "<string>"
},
"requires_attention": true,
"attention_reason_codes": [
"<string>"
],
"next_action": {
"kind": "merge",
"responsible_role": "author",
"responsible_users": [
{
"id": "<string>",
"username": "<string>",
"name": "<string>"
}
],
"reason_codes": [
"<string>"
],
"status": "available"
},
"review_status": {
"status": "available",
"value": "reviewed",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"approval_status": {
"status": "available",
"value": "approved",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"blast_radius": {
"status": "available",
"value": "low",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"merge_risk": {
"status": "available",
"value": {
"level": "low",
"score": 0.5,
"basis": "direct",
"reason": "<string>"
},
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"security_risk": {
"status": "available",
"value": {
"level": "minimal",
"reason": "<string>"
},
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"review_effort": {
"status": "available",
"value": 0.5,
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"review_depth": {
"status": "available",
"value": "light",
"observed_at": "2023-11-07T05:31:56Z",
"revision": "<string>"
},
"group_key": "<string>",
"subgroup_key": "<string>"
}
],
"groups": [
{
"key": "<string>",
"label": "<string>",
"count": 4503599627370495,
"subgroups": [
{
"key": "<string>",
"label": "<string>",
"count": 4503599627370495
}
]
}
],
"next_cursor": "<string>",
"meta": {
"request_id": "<string>",
"org_id": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"total_count": 4503599627370495,
"limit": 50,
"view": "mine",
"team_id": "<string>",
"group_by": "none",
"subgroup_by": "none",
"order_by": "triage",
"order_direction": "asc"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "forbidden",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "not_found",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "head_changed",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "precondition_failed",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "internal_error",
"message": "<string>",
"retry_after": 4503599627370495
}
}{
"error": {
"code": "unavailable",
"message": "<string>",
"retry_after": 4503599627370495
}
}Authorizations
API key for authentication. You can create an API key from the CodeRabbit dashboard.
Query Parameters
1 - 255^[^,\s/\p{Cc}]+$1 <= x <= 1001 - 4096^[A-Za-z0-9_-]+$mine selects your personal inbox; team selects a requested-team review view; organization selects all tracked open changes within your repository access.
mine, team, organization 1 - 255^[^,\s/\p{Cc}]+$Provider usernames, or me for the authenticated author. Values are ORed; other filters and the selected view still apply. Display names are not matched.
11 - 255^[^,\s/\p{Cc}]+$Provider usernames with an active requested-reviewer, reviewer, approver, or change-requester role; me selects the authenticated person. Values are ORed within this filter.
11 - 255^[^,\s/\p{Cc}]+$11 - 255^[^,\s/\p{Cc}]+$1github, gitlab, bitbucket, azure-devops, gerrit 1p0, p1, p2, p3, none, unassigned true, false, unknown 1bugfix, feature, refactor, unclassified 1low, medium, high, unknown 1low, medium, high, unknown 1now, next, unassigned Whether the authenticated caller needs to act. Author/reviewer filters do not impersonate another person or change this perspective.
all, required, waiting, unknown none, focus_state, priority, repository, author none, focus_state, priority, repository, author triage, priority, last_activity_at, opened_at, external_id, title asc, desc Was this page helpful?