Appearance
Add / Remove Feed from Bundle
FreshThese endpoints manage the feed membership within a bundle. Adding a feed makes its content appear in the bundle's combined RSS stream. Removing a feed stops its content from appearing without deleting the feed itself.
Add Feed to Bundle
PUT /v1/bundles/:id/feeds/:feedId
Adds an existing feed to a bundle.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The bundle ID |
feedId | string | Yes | The feed ID to add |
Code Example
js
const axios = require('axios');
const apiClient = axios.create({
baseURL: 'https://api.rss.app/v1',
headers: {
Authorization: 'Bearer YOUR_API_KEY:YOUR_API_SECRET',
},
});
await apiClient.put('/bundles/bundle_xyz789/feeds/feed_new111');
console.log('Feed added to bundle');Adding multiple feeds:
js
async function addFeedsToBundle(bundleId, feedIds) {
for (const feedId of feedIds) {
await apiClient.put(`/bundles/${bundleId}/feeds/${feedId}`);
console.log(`Added feed ${feedId}`);
}
}
await addFeedsToBundle('bundle_xyz789', [
'feed_new111',
'feed_new222',
'feed_new333',
]);Response
HTTP 200 on success.
Error Responses
| Status | Meaning |
|---|---|
| 401 | Authentication failed |
| 404 | Bundle not found or feed not found |
| 409 | Feed is already a member of this bundle |
Remove Feed from Bundle
DELETE /v1/bundles/:id/feeds/:feedId
Removes a feed from a bundle. The feed itself is not deleted — it remains in your account and can be added to other bundles.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The bundle ID |
feedId | string | Yes | The feed ID to remove |
Code Example
js
await apiClient.delete('/bundles/bundle_xyz789/feeds/feed_old222');
console.log('Feed removed from bundle');Removing all feeds from a bundle:
js
async function clearBundle(bundleId) {
const bundleResponse = await apiClient.get(`/bundles/${bundleId}`);
const feedIds = bundleResponse.data.feeds;
for (const feedId of feedIds) {
await apiClient.delete(`/bundles/${bundleId}/feeds/${feedId}`);
console.log(`Removed feed ${feedId}`);
}
console.log(`Bundle ${bundleId} cleared`);
}Replacing bundle feeds:
js
async function replaceBundleFeeds(bundleId, newFeedIds) {
// Get current members
const current = await apiClient.get(`/bundles/${bundleId}`);
const existingIds = current.data.feeds;
// Remove feeds not in the new list
const toRemove = existingIds.filter((id) => !newFeedIds.includes(id));
for (const feedId of toRemove) {
await apiClient.delete(`/bundles/${bundleId}/feeds/${feedId}`);
}
// Add new feeds not already present
const toAdd = newFeedIds.filter((id) => !existingIds.includes(id));
for (const feedId of toAdd) {
await apiClient.put(`/bundles/${bundleId}/feeds/${feedId}`);
}
console.log(`Bundle updated: removed ${toRemove.length}, added ${toAdd.length}`);
}Response
HTTP 200 on success.
Error Responses
| Status | Meaning |
|---|---|
| 401 | Authentication failed |
| 404 | Bundle not found or feed not in this bundle |