Webhook vs API Polling — What's the Difference?

A webhook is a server-to-server callback where the source system pushes data to your endpoint as soon as an event happens; polling means repeatedly requestin...

Published October 5, 2026

With polling your app repeatedly asks an API whether anything changed; with a webhook the other service calls your URL the moment something happens. Webhooks are faster and cheaper, polling is simpler and works anywhere.

The concept

Polling wastes requests when nothing changed and adds delay up to the polling interval.

A webhook is an HTTP POST sent to an endpoint you register. You must expose a public URL, verify the signature, respond quickly and handle retries and duplicates.

Who initiates

pushqueueProviderevent happensYour endpointPOST /webhookYour appprocesses
Webhook: the provider pushes. Polling: you pull.

Practical examples

Polling

setInterval(async () => {
  const r = await fetch('/api/orders?since=' + last)
  handle(await r.json())
}, 30000)

Webhook receiver with signature check

app.post('/webhook', express.raw({ type: '*/*' }), (req, res) => {
  const sig = req.headers['x-signature']
  if (!valid(req.body, sig)) return res.sendStatus(401)
  queue.add(JSON.parse(req.body))
  res.sendStatus(200)
})

Test locally

Use this site's Webhook Tester to see exactly what a provider sends.

curl -X POST https://example.com/webhook -d '{"event":"paid"}' -H 'Content-Type: application/json'

Common mistakes

  • Doing slow work before responding, causing provider timeouts and retries.
  • Not verifying signatures.
  • Not handling duplicate deliveries (use event IDs).
  • Using webhooks with no polling fallback for critical data.

Key takeaways

  • Webhook = push, polling = pull.
  • Verify, respond fast, be idempotent.
  • Keep a reconciliation poll for safety.

FAQ

What if my endpoint is down?

Most providers retry with backoff; reconcile missed events via the API.

Can I use webhooks locally?

Use a tunnel or a webhook inspection tool.

More General articles