curl --request GET \
--url https://api.coderabbit.ai/v1/linked-repositories \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/linked-repositories"
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/linked-repositories', 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/linked-repositories",
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/linked-repositories"
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/linked-repositories")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/linked-repositories")
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": [
{
"repository": {
"id": "12345",
"name": "acme/api",
"organization_id": "550e8400-e29b-41d4-a716-446655440000"
},
"linked_repositories": [
{
"id": "67890",
"name": "acme/shared",
"organization_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "MANUAL"
}
]
}
],
"next_cursor": null
}List linked repositories
Lists manual configured candidates derived only from saved UI settings and stored automatic links filtered by saved UI settings. The manual projection approximates saved UI inheritance and overrides and normalizes at most 20 entries per settings layer. This is not a complete manual graph, effective configuration, or a record of review usage. Repository and central YAML-derived links are not read; custom sources and per-review overrides are also unavailable. These sources can change both manual associations and automatic mode. Repository and organization filters select a union of source repositories; omitted or empty filters select the full scope. Targets are resolvable active repositories in the source organization, within the authorized scope. Requires Enterprise, an authenticated CodeRabbit administrator (cr_admin), and both repository management and repository settings read permissions. Organization keys require an organization administrator; workspace keys require a workspace administrator. Self-hosted keys without user context are denied.
curl --request GET \
--url https://api.coderabbit.ai/v1/linked-repositories \
--header 'x-coderabbitai-api-key: <api-key>'import requests
url = "https://api.coderabbit.ai/v1/linked-repositories"
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/linked-repositories', 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/linked-repositories",
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/linked-repositories"
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/linked-repositories")
.header("x-coderabbitai-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coderabbit.ai/v1/linked-repositories")
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": [
{
"repository": {
"id": "12345",
"name": "acme/api",
"organization_id": "550e8400-e29b-41d4-a716-446655440000"
},
"linked_repositories": [
{
"id": "67890",
"name": "acme/shared",
"organization_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "MANUAL"
}
]
}
],
"next_cursor": null
}cr_admin) with both repository_management:read and repository_settings:read permissions. Organization API key owners must also be organization administrators; workspace API key owners must be workspace administrators. Legacy organization keys, agentic keys, and self-hosted keys without user context are not supported.Filter by organization
Use a CodeRabbit organization UUID from theid field returned by List organizations, not the Git provider’s organization ID. The API key must already have access to the organization; a filter does not expand its scope.
curl -G 'https://api.coderabbit.ai/v1/linked-repositories' \
-H "x-coderabbitai-api-key: $CODERABBIT_API_KEY" \
--data-urlencode 'organization_ids=550e8400-e29b-41d4-a716-446655440000'
Interpret associations
MANUAL entries are candidates derived from saved UI settings. The manual projection approximates UI inheritance and overrides and normalizes at most 20 entries per settings layer. AUTO entries are stored automatic links filtered by saved UI settings; disabled automatic links are excluded. Targets must resolve to active repositories in the source organization and authorized scope.
This is not a complete manual graph, effective configuration, or a record of review usage. Repository and central YAML-derived links, custom sources, and per-review overrides are not included; these sources can change manual associations and automatic mode.
Pagination
Whennext_cursor is not null, pass it as the next request’s cursor. Keep the same filters and limit across requests.Authorizations
API key for authentication. You can create an API key from the CodeRabbit dashboard.
Query Parameters
Provider repository IDs, comma-separated or repeated.
CodeRabbit organization UUIDs, comma-separated or repeated.
1 <= x <= 100Pagination cursor from the previous response. Keep filters and limit unchanged.
Was this page helpful?