The Releasebot API lets you query vendors, products, and release notes programmatically. It is designed for developers building integrations, dashboards, or automations on top of Releasebot data.
Getting an API key
Generate your API key on the Alerts & Integrations page. Your key starts with rb_ and is shown only once, so store it somewhere safe.
Pass it with every request as a Bearer token:
Authorization: Bearer rb_your_key_here
Credits
API credits are consumed on the /releases, /releases/search, /all, and /feed endpoints: 1 credit per release returned, with a minimum of 1 credit per request. The /search endpoint is always free. The X-Credits-Remaining response header tells you your current balance after each call.
Credits are shared with the MCP server and CLI. See the full credits breakdown.
Endpoints
Search
GET https://releasebot.io/api/v1/search
Search for vendors and products by keyword. This endpoint is free and does not consume credits.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
q |
string (required) | Search query |
limit |
integer | Max results to return (default: 20, max: 100) |
offset |
integer | Pagination offset (default: 0) |
Example:
GET /api/v1/search?q=apple&limit=10
Authorization: Bearer rb_...
Response:
{
"query": "apple",
"total": 6,
"fallbackUsed": false,
"results": [
{
"type": "vendor",
"id": 2782,
"display_name": "Apple",
"slug": "apple"
}
]
}
Releases
GET https://releasebot.io/api/v1/releases
Fetch releases for a vendor or product. Costs 1 credit per release returned.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
vendorSlug |
string | Vendor slug (e.g. apple) |
vendorId |
integer | Vendor ID |
productSlug |
string | Product slug (e.g. testflight) |
productId |
integer | Product ID |
limit |
integer | Max results (default: 20, max: 100) |
offset |
integer | Pagination offset (default: 0) |
before |
ISO date string | Only return releases discovered on or before this date |
since |
ISO date string | Only return releases discovered on or after this date |
At least one of vendorSlug, vendorId, productSlug, or productId is required.
Example:
GET /api/v1/releases?vendorSlug=apple&limit=5&before=2026-01-01
Authorization: Bearer rb_...
Response:
{
"releases": [
{
"id": 34284,
"slug": "may-28-2026-79737",
"releaseDate": "2026-05-28T00:00:00",
"createdAt": "2026-05-30T01:19:56.136392+00:00",
"releaseDetails": {
"is_release": true,
"release_name": "May 28, 2026",
"release_summary": "..."
},
"formattedContent": "...",
"product": {
"id": 4222,
"slug": "testflight",
"name": "App Store Connect"
},
"vendor": { "id": 2782, "slug": "apple", "name": "Apple" },
"source": { "id": 123, "url": "https://developer.apple.com/..." }
}
],
"nextOffset": 20,
"total": 5
}
Use nextOffset from the response as your next offset value. When nextOffset is null, you have reached the end.
Search releases
GET https://releasebot.io/api/v1/releases/search
General keyword search across the full text of every release note, regardless of vendor or product. Matching is case-insensitive substring matching, and results are returned newest-first. Use this when you don't know which vendor or product to scope to (e.g. CVE-2024, dark mode, breaking change). Costs 1 credit per release returned.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
q |
string (required) | Keyword or phrase to match against release content |
limit |
integer | Max results (default: 20, max: 100) |
offset |
integer | Pagination offset (default: 0) |
before |
ISO date string | Only return releases discovered on or before this date |
since |
ISO date string | Only return releases discovered on or after this date |
Example:
GET /api/v1/releases/search?q=dark%20mode&limit=10
Authorization: Bearer rb_...
Response:
{
"query": "dark mode",
"releases": [
{
"id": 34284,
"slug": "may-28-2026-79737",
"releaseDate": "2026-05-28T00:00:00",
"createdAt": "2026-05-30T01:19:56.136392+00:00",
"releaseDetails": {
"is_release": true,
"release_name": "May 28, 2026",
"release_summary": "..."
},
"formattedContent": "...",
"product": { "id": 4222, "slug": "testflight", "name": "App Store Connect" },
"vendor": { "id": 2782, "slug": "apple", "name": "Apple" },
"source": { "id": 123, "url": "https://developer.apple.com/..." }
}
],
"nextOffset": 10,
"total": 10
}
Use nextOffset from the response as your next offset value. When nextOffset is null, you have reached the end.
Feed
GET https://releasebot.io/api/v1/feed
Fetch releases from your personal feed. Returns the same releases you see on your dashboard, based on the vendors and products you follow. Costs 1 credit per release returned.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
limit |
integer | Max results (default: 20, max: 100) |
offset |
integer | Pagination offset (default: 0) |
before |
ISO date string | Only return releases discovered on or before this date |
since |
ISO date string | Only return releases discovered on or after this date |
Example:
GET /api/v1/feed?limit=10&before=2026-01-01
Authorization: Bearer rb_...
Use nextOffset from the response as your next offset value. When nextOffset is null, you have reached the end.
Polling for new releases: pass the timestamp of your last check as since to fetch only releases discovered after it. For example, a weekly job can request GET /api/v1/feed?since=2026-06-30T00:00:00Z&limit=100 and page with nextOffset until it returns null.
All releases
GET https://releasebot.io/api/v1/all
Fetch every release across all vendors and products, newest-first (same default ordering as /releases). Costs 1 credit per release returned.
Query parameters:
| Parameter | Type | Description |
|---|---|---|
limit |
integer | Max results (default: 20, max: 100) |
offset |
integer | Pagination offset (default: 0) |
before |
ISO date string | Only return releases discovered on or before this date |
since |
ISO date string | Only return releases discovered on or after this date |
Example:
GET /api/v1/all?limit=50&before=2026-01-01
Authorization: Bearer rb_...
The response shape matches /releases. Use nextOffset from the response as your next offset value. When nextOffset is null, you have reached the end.
Error responses
| Status | Meaning |
|---|---|
| 400 | Missing or invalid parameters |
| 401 | Invalid or missing API key |
| 402 | Credits exhausted |
| 404 | Vendor or product not found |
| 500 | Server error |
Questions?
Reach out at [email protected].