curl --request GET \
--url https://api.coderabbit.ai/v1/triage/changes/{id}/history \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/triage/changes/{id}/history"
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/{id}/history', 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/{id}/history",
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/{id}/history"
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/{id}/history")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/triage/changes/{id}/history")
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>",
"occurred_at": "2023-11-07T05:31:56Z",
"source": "calculated",
"actor": {
"id": "<string>",
"identity_type": "coderabbit",
"name": "<string>"
},
"reason": "<string>",
"type": "priority",
"previous_value": "p0",
"new_value": "p0"
}
],
"next_cursor": "<string>",
"meta": {
"request_id": "<string>",
"org_id": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"total_count": 4503599627370495,
"limit": 50,
"change_id": "<string>",
"type": "all",
"history_complete": true
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}List Triage change history
curl --request GET \
--url https://api.coderabbit.ai/v1/triage/changes/{id}/history \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/triage/changes/{id}/history"
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/{id}/history', 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/{id}/history",
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/{id}/history"
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/{id}/history")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/triage/changes/{id}/history")
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>",
"occurred_at": "2023-11-07T05:31:56Z",
"source": "calculated",
"actor": {
"id": "<string>",
"identity_type": "coderabbit",
"name": "<string>"
},
"reason": "<string>",
"type": "priority",
"previous_value": "p0",
"new_value": "p0"
}
],
"next_cursor": "<string>",
"meta": {
"request_id": "<string>",
"org_id": "<string>",
"generated_at": "2023-11-07T05:31:56Z",
"total_count": 4503599627370495,
"limit": 50,
"change_id": "<string>",
"type": "all",
"history_complete": true
}
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}{
"type": "about:blank",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"code": "invalid_parameter",
"request_id": "<string>",
"invalid_params": [
{
"name": "<string>",
"reason": "<string>"
}
]
}meta.history_complete before treating the result as complete. See pagination guidance for cursor handling.Authorizations
API key for authentication. You can create an API key from the CodeRabbit dashboard.
Path Parameters
Opaque CodeRabbit change ID, not a native provider PR/MR/change number.
255Query Parameters
One native provider organization ID; required for workspace and instance keys. Organization keys default to their bound organization. ALL is rejected. Response meta.org_id uses this same native identifier namespace. Native IDs that identify multiple active organizations in the key's workspace or instance are denied. Workspace keys retain existing consumption rules: the recorded owner must resolve through a unique selected-provider external account to a current workspace admin. Clerk-only owners and native IDs from another provider are not implicitly translated.
1 <= x <= 100Returned opaque cursor. Repeat the same filters, grouping, order, limit, and organization. Expires after 15 minutes; live pages may repeat/skip changes after reranking.
4096Retained recommendation transitions, not a provider audit trail. Paging cannot recover discarded history.
all, priority, close_candidacy Was this page helpful?