API Documentation
Full FeedBin API compatibility for third-party RSS clients and integrations.
Quick Start
Get connected to the API in three simple steps.
1 Use your Sublime Feed credentials
The API uses HTTP Basic Authentication with your Sublime Feed email and password. No special API tokens needed.
2 Test the connection
Make a GET request to verify your credentials work:
curl -u "[email protected]:password" \
https://sublimefeed.com/api/v2/authentication.json
A successful response returns HTTP 200 OK with an empty body.
3 Start using the API
Use your Sublime Feed email and password with any FeedBin-compatible client or integration. Set the server URL to https://sublimefeed.com/api/v2.
Authentication
All API requests use standard HTTP Basic Authentication.
All API requests require HTTP Basic Authentication using your Sublime Feed credentials:
Authorization: Basic BASE64(email:password)
The API follows RFC 7617. Most HTTP clients handle this automatically.
Security Note
Always use HTTPS when connecting to the API.
Endpoints
Complete reference for the FeedBin-compatible API v2.
/api/v2/authentication.json
Verify credentials are valid. Returns HTTP 200 OK on success, 401 Unauthorized on failure.
curl -u "[email protected]:password" \
https://sublimefeed.com/api/v2/authentication.json
/api/v2/subscriptions.json
List all your feed subscriptions.
Query Parameters
| Parameter | Description |
|---|---|
| since | ISO 8601 timestamp to filter subscriptions created after this time |
Response
[
{
"id": 123,
"created_at": "2024-01-15T10:30:00.000Z",
"feed_id": 456,
"title": "My Custom Feed Name",
"feed_url": "https://example.com/feed.xml",
"site_url": "https://example.com"
}
]
/api/v2/subscriptions/:id.json
Get details for a specific subscription.
curl -u "[email protected]:password" \
https://sublimefeed.com/api/v2/subscriptions/123.json
/api/v2/subscriptions.json
Subscribe to a new feed. If multiple feeds are detected, returns 300 Multiple Choices with available options.
Request Body
{
"feed_url": "https://example.com/feed.xml"
}
Response Status Codes
| Status | Meaning |
|---|---|
| 201 Created | New subscription created |
| 302 Found | Already subscribed |
| 300 Multiple Choices | Multiple feeds detected, choose one |
| 404 Not Found | No feed found at URL |
/api/v2/subscriptions/:id.json
Update a subscription (e.g., rename it).
curl -X PATCH -u "[email protected]:password" \
-H "Content-Type: application/json" \
-d '{"title": "New Name"}' \
https://sublimefeed.com/api/v2/subscriptions/123.json
/api/v2/subscriptions/:id.json
Unsubscribe from a feed. Returns 204 No Content on success.
curl -X DELETE -u "[email protected]:password" \
https://sublimefeed.com/api/v2/subscriptions/123.json
/api/v2/feeds/:id.json
Get feed metadata.
Response
{
"id": 456,
"title": "Example Blog",
"feed_url": "https://example.com/feed.xml",
"site_url": "https://example.com"
}
/api/v2/entries.json
List all entries (posts) from your subscribed feeds.
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| per_page | 20 | Number of entries per page (max 100) |
| page | 1 | Page number |
| since | — | ISO 8601 timestamp to filter entries |
| ids | — | Comma-separated list of entry IDs (max 100) |
| read | — | Filter by read status: true or false |
Response
[
{
"id": 789,
"feed_id": 456,
"title": "Post Title",
"url": "https://example.com/post",
"author": "Author Name",
"content": "HTML content...
",
"summary": "Plain text summary...",
"published": "2024-01-15T10:30:00.000Z",
"created_at": "2024-01-15T10:30:00.000Z"
}
]
/api/v2/entries/:id.json
Get a single entry by ID.
curl -u "[email protected]:password" \
https://sublimefeed.com/api/v2/entries/789.json
/api/v2/feeds/:feed_id/entries.json
List entries from a specific feed. Same pagination and filter parameters as /api/v2/entries.json.
curl -u "[email protected]:password" \
"https://sublimefeed.com/api/v2/feeds/456/entries.json?per_page=50&page=2"
/api/v2/unread_entries.json
Get a list of unread entry IDs.
Response
[789, 790, 791, 792, 793]
/api/v2/unread_entries.json
Mark entries as unread (remove read status). Returns the IDs that were changed.
Request Body
{
"unread_entries": [789, 790, 791]
}
Maximum 1,000 IDs per request.
/api/v2/unread_entries.json
Mark entries as read. Returns the IDs that were marked as read.
Request Body
{
"unread_entries": [789, 790, 791]
}
Maximum 1,000 IDs per request.
FeedBin API
Sublime Feed implements the FeedBin API v2 for third-party client compatibility.
Base URL
Configure your FeedBin-compatible client to use this base URL:
https://sublimefeed.com/api/v2
Authentication
Use your Sublime Feed email address and password for HTTP Basic Authentication. Select "FeedBin" or "Feedbin" as the account type in your client if prompted.
Error Responses
Common HTTP status codes you may encounter.
| Status | Meaning |
|---|---|
| 401 Unauthorized | Invalid email or password |
| 403 Forbidden | Valid credentials but not authorized for this resource |
| 404 Not Found | Resource not found |
| 400 Bad Request | Missing required parameters |
| 422 Unprocessable | Validation error |
Rate Limiting
The API has rate limiting to ensure fair usage. If you exceed the limits, you'll receive a 429 Too Many Requests response. Contact support if you need higher limits.
Need Help?
If you have questions about the API or need assistance with FeedBin-compatible integrations, feel free to reach out. We're here to help you get the most out of Sublime Feed.
Contact Support