A POST-based HTTP API that fetches RSS feeds from multiple sources and returns their content as structured JSON.
Returns comprehensive API documentation and usage examples.
curl https://your-endpoint.com/
Fetches RSS feeds based on the provided feed entries.
Content-Type: application/json
Request Body Format:
[ { "url": "https://example.com/feed", "authorName": "Author Name" } ]
curl -X POST https://your-endpoint.com/ \ -H "Content-Type: application/json" \ -d '[ { "url": "https://jtbx.substack.com/feed", "authorName": "JTBX" } ]'
curl -X POST https://your-endpoint.com/ \ -H "Content-Type: application/json" \ -d '[ { "url": "https://jtbx.substack.com/feed", "authorName": "JTBX" }, { "url": "https://stratechery.substack.com/feed", "authorName": "Ben Thompson" } ]'
Each feed entry must include:
{ "success": true, "feeds": [ { "url": "https://jtbx.substack.com/feed", "authorName": "JTBX", "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>...", "fetchedAt": "2025-05-31T18:49:29.163Z", "success": true } ], "errors": [], "totalRequested": 1, "totalSuccessful": 1, "totalFailed": 0, "fetchedAt": "2025-05-31T18:49:29.163Z" }
The API handles various error scenarios gracefully:
{ "success": false, "error": "Request body must be an array of feed entries", "expectedFormat": [ { "url": "https://example.com/feed", "authorName": "Author Name" } ], "timestamp": "2025-05-31T18:49:29.163Z" }
{ "success": false, "error": "Each feed entry must have 'url' and 'authorName' string properties", "invalidEntry": { "url": "https://example.com/feed" }, "timestamp": "2025-05-31T18:49:29.163Z" }
{ "success": false, "error": "Invalid URL: not-a-valid-url", "authorName": "Author Name", "timestamp": "2025-05-31T18:49:29.163Z" }
{ "success": false, "error": "Method not allowed. Use GET for API documentation or POST to fetch feeds.", "timestamp": "2025-05-31T18:49:29.163Z" }
When some feeds fail but others succeed, failed feeds appear in the errors array while successful ones appear in the feeds array.
Promise.all() for concurrent feed fetchingThe endpoint respects standard HTTP rate limiting. For high-volume usage, consider implementing caching strategies or batching requests appropriately.