FeedForge API
A tiny REST API. Authenticate with a bearer token (grab it on the dashboard). Public feed output needs no auth — the unguessable feed id is the key.
Quickstart
Create a feed and poll it:
curl -X POST https://feedforge.aiskillhub.info/api/feeds \
-H "authorization: Bearer $FEEDFORGE_TOKEN" \
-H "content-type: application/json" \
-d '{"url":"https://news.ycombinator.com"}'
# → { "feed": { "id": "feed_…" }, "feedUrl": "https://feedforge.aiskillhub.info/api/f/feed_…" }# poll the JSON Feed (1.1) curl https://feedforge.aiskillhub.info/api/f/feed_xxx # or RSS 2.0 curl "https://feedforge.aiskillhub.info/api/f/feed_xxx?format=rss"
Endpoints
/api/extractPreview the feed a URL would produce. No auth, rate-limited. Body: { url }.
/api/feedsList your feeds.
/api/feedsCreate a feed. Body: { url, title?, refreshSeconds?, webhookUrl? }.
/api/feeds/:idFeed detail with items + recent runs.
/api/feeds/:idUpdate refresh interval, webhook, status, or title.
/api/feeds/:idDelete a feed.
/api/feeds/:id/refreshForce an immediate refresh.
/api/f/:idPublic feed output. ?format=rss for RSS, default JSON Feed.
Webhooks (Pro)
Set webhookUrl on a feed and FeedForge POSTs you only the new items when something changes:
POST your-endpoint
{
"event": "feed.updated",
"feedId": "feed_xxx",
"healed": false,
"newItems": [
{ "guid": "…", "title": "…", "url": "…", "date": "2026-06-03T…Z" }
]
}Self-healing
On every refresh FeedForge re-derives the extraction recipe from the live page. If the structure changed, the run is marked healed: true — your feed keeps flowing while brittle scrapers would have returned nothing.
Item shape
{
"id": "stable-guid",
"title": "string",
"url": "https://…",
"summary": "string",
"image": "https://…",
"date_published": "ISO 8601"
}