Skip to content
Live demo

Webhooks

Webhooks are the push half of the integration story. MCP is pull: an agent asks when it wants something. Webhooks invert that, so a new article can reach Slack or an automation platform without anything having to poll.

Register an HTTPS endpoint, choose which events reach it, and optionally scope it to a folder or feed. When an event fires, Sparkfeed will POST a signed JSON payload.

Planned events:

EventFires when
article.createdA refresh pulls in an article you have not seen
article.favoritedAn article is favorited, by you or by an agent
feed.failedA feed fails repeatedly and is auto-disabled

These are decisions already made, so integrations built later do not have to be rewritten:

  • Signed. Every delivery carries an HMAC signature over the raw body, so you can verify it came from Sparkfeed rather than trusting the URL to stay secret.
  • Payloads carry ids, not article bodies. A webhook body will identify the article and include its title and link. Full text stays behind get_article, for the same reason list tools return snippets.
  • Retried with backoff. A non-2xx response is retried on a decaying schedule before the endpoint is marked unhealthy.
  • Batched, not per-article. A refresh that pulls thirty articles will deliver one payload containing thirty entries, not thirty requests.

You can already push feeds outward using what exists today:

  • Outbound RSS. Every folder and feed can be published as an XML feed, which any automation platform can poll on a schedule. See Custom Feeds.
  • MCP on a timer. An agent with a Sparkfeed key can be scheduled to call search_articles periodically and act on what is new. Polling rather than push, but no waiting required.