Skip to main content
GET
List learnings for an organization
Programmatic access to an organization’s CodeRabbit Learnings. Results are available as paginated JSON or a CSV download.
The public API does not create Learnings. Use Path Instructions to define durable review guidance for repositories and file paths.
Results are ordered by creation time and then by Learning ID, both descending. A page can contain up to 1,000 records. Responses larger than 16 MB are rejected; narrow the filters or request a smaller page.

Filter Learnings

Text search performs a case-insensitive substring match against Learning text. You can also filter by up to 10 exact file paths or by usage state:
  • Active: used in the last 30 days.
  • Never used: no recorded usage.
  • Created this week: created in the last 7 days.
Repository ID and user filters are resolved within each Learning’s own organization and Git provider. These filters narrow the existing listing scope. They do not independently verify a person’s repository access.

Repository access with a full path

Use the full repository path when selecting a repository by name. GitHub requires owner/repository. GitLab requires the entire namespace, including every subgroup, such as group/platform/tools/repository. A short name such as repository is not unique. Paths match exactly and are case-sensitive, and URLs are not accepted. The name-based request requires a user-scoped organization API key for GitHub Cloud or GitLab Cloud and that user’s connected provider account. The API identifies one active repository within the key’s organization and checks the connected user’s repository read permission before querying Learnings. It does not substitute organization administrator privileges or installation-wide access for the user’s permission. Legacy organization keys, workspace keys, self-hosted requests, unsupported providers, missing user identities and ambiguous repository matches are rejected on this path. Denied or unverifiable access returns no Learnings. Verification failures do not fall back to a broader listing. An authorized repository can still return an empty page when no Learnings match the other filters. Keep the same full path when following pagination. Authorization is checked again for each request. If you also supply repository IDs, they must include the verified repository ID. Stored historical names can differ after a rename, so an empty result does not prove that no relevant guidance exists.
Requests without the repository-name filter retain their existing organization/workspace access rules. The additional user repository check applies to name-based requests only.

CSV format

CSV responses use a flat structure with one row per Learning. For the complete list of CSV columns and field descriptions, see Data Export - Exported fields. For a guided overview of learnings, see the Learnings documentation.

Authorizations

x-coderabbitai-api-key
string
header
required

API key for authentication. You can create an API key from the CodeRabbit dashboard.

Headers

x-coderabbitai-api-key
string
required

API key for authentication

Query Parameters

org_id
string

Workspace-scoped API tokens only. When provided, scopes learnings to that single git-provider organization within the token's workspace; when omitted, aggregates every organization in the workspace. Ignored for organization and self-hosted keys.

repository_ids
string

Comma-separated provider repository IDs (max 10).

Example:

"1027529638,987654321"

user_ids
string

Comma-separated provider user IDs (max 10).

Example:

"87397876,12345678"

Case-insensitive substring search over learning text.

file_paths
string

Comma-separated exact file paths (max 10).

Example:

"src/api.ts,src/auth.ts"

stat_filter
enum<string>
default:total

Filter by recent usage, zero usage, or creation in the last seven days.

Available options:
total,
active,
never_used,
created_this_week
organization_ids
string

Comma-separated provider organization IDs (max 10). Self-hosted instances only.

Example:

"184456712,103539130"

limit
integer
default:1000

Maximum number of records to return.

Required range: 1 <= x <= 1000
cursor
string

Pagination cursor returned as next_cursor on the previous page.

format
enum<string>
default:json

Response format. json (default) returns paginated JSON; csv returns a CSV download.

Available options:
json,
csv

Response

Successfully retrieved learnings.

data
object[]
required
next_cursor
string | null
required