Authentication
All API requests require a Bearer token:Base URL
Endpoints
Account
| Method | Path | Description |
|---|---|---|
GET | /me | Get the current authenticated account |
GET | /orgs/ | Get your organization |
API Keys
| Method | Path | Description |
|---|---|---|
POST | /api_keys/ | Create a new API key |
GET | /api_keys/ | List API keys |
GET | /api_keys/{apiKeyID}/ | Get a specific API key |
DELETE | /api_keys/{apiKeyID}/ | Delete an API key |
Subscriptions
| Method | Path | Description |
|---|---|---|
POST | /subscriptions/ | Subscribe to an image or package |
GET | /subscriptions/ | List your subscriptions |
GET | /subscriptions/{subscriptionID}/ | Get a specific subscription |
DELETE | /subscriptions/ | Remove a subscription |
Patches
| Method | Path | Description |
|---|---|---|
GET | /patches | List CVE patches with filtering |
/patches:
| Parameter | Type | Description |
|---|---|---|
cve_id | string | Filter by CVE ID (e.g., CVE-2024-1234) |
package_src_name | string | Filter by source package name |
ecosystem | string | Filter by ecosystem (alpine, debian, ubuntu, pypi, npm, maven) |
severities | string | Comma-separated severities (critical, high, medium, low) |
ticket_statuses | string | Comma-separated statuses (open, in_progress, done, deferred) |
order | string | Sort order (e.g., created_at:desc) |
limit | integer | Page size (default: 100, max: 1000) |
after | string | Cursor for pagination |
Image Catalog
| Method | Path | Description |
|---|---|---|
GET | /images/ | List images in Root Image Catalog |
GET | /images/{rriID} | Get image details |
GET | /images/{imageRepo}/tags | List tags for an image |
GET | /tags/ | List all tags |
GET | /tags/{rrtID} | Get details for a specific tag |
GET | /tags/{rrtID}/sbom | Get SBOM download URL for a tag |
GET | /tags/{rrtID}/vex | Get VEX download URL for a tag |
GET | /tags/{rrtID}/provenance | Get provenance attestation for a tag |
Packages
| Method | Path | Description |
|---|---|---|
GET | /packages/ | List packages |
GET | /packages/{pkgID}/ | Get package details |
GET | /packages/{pkgID}/artifacts/patches | Get patches applied to a package |
GET | /packages/{pkgID}/artifacts/provenance | Get provenance for a package |
AVR Artifacts
AVR (Artifact Vulnerability Remediation) endpoints provide access to artifacts from Root’s remediation pipeline:| Method | Path | Description |
|---|---|---|
GET | /avrs/{avrID}/artifacts/sbom | Get SBOM for a remediated artifact |
GET | /avrs/{avrID}/artifacts/vex | Get VEX for a remediated artifact |
GET | /avrs/{avrID}/artifacts/provenance | Get SLSA provenance |
Public Feeds (No Auth Required)
| Method | Path | Description |
|---|---|---|
GET | /external/patch_feed | Public patch feed (filterable by ecosystem) |
GET | /external/cve_feed | Public CVE feed |
GET | /external/osv/{id}.json | OSV-format record for a specific CVE |
GET | /external/globals/sys_matrix | Supported ecosystems and distros |
| Parameter | Description |
|---|---|
ecosystem | Filter by ecosystem (alpine, debian, ubuntu, pypi, npm, maven) |
os_distro_major | Filter by OS distro version (e.g., 22.04) |
package_src_name | Filter by package source name |
Rate Limits
API requests are rate-limited. If you exceed the limit, you’ll receive a429 Too Many Requests response. The response headers include:
X-RateLimit-Limit- requests allowed per windowX-RateLimit-Remaining- requests remaining in the current windowRetry-After- seconds to wait before retrying
limit + after cursor) rather than making many small requests.