Releasebot API v1 Documentation
The Releasebot API lets you query vendors, products, and release notes programmatically. It's 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 in the Authorization header:
Authorization: Bearer rb_your_key_here
Credits
API Credits are consumed on the /releases and /feed endpoint: 1 credit per release returned, with a minimum of 1 credit per request. The /search endpoint is free. The X-Credits-Remaining response header tells you your current balance after each call. Search is free and never consumes credits.
Credits reset monthly:
| Plan | Credits per month |
|---|---|
| Free | 500 |
| Pro | 5,000 |
| Max | 100,000 |
Credits also apply to the MCP server. Both the API and MCP draw from the same pool.
Endpoints
Search
GET https://releasebot.io/api/v1/search
Search for vendors and products by keyword. This endpoint is free — it 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 |
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
}
Pagination: Use nextOffset from the response as your next offset value. When nextOffset is null, you've reached the end.
Feed
GET https://releasebot.io/api/v1/feed
Fetch releases from your personal feed. This 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 |
Example:
GET /api/v1/feed?limit=10&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": 10
}
Pagination: Use nextOffset from the response as your next offset value. When nextOffset is null, you've 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].