---
title: Webhooks — Reference
description: Not yet. Inbound delivery is pull-based today via long-poll and WebSocket.
url: https://agentnumber.really.com/docs/reference/webhooks
doc_version: "1.0.0"
last_updated: "2026-05-15"
---

> ## Documentation index
> Fetch the complete documentation index at: https://agentnumber.really.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Not yet. Inbound delivery is pull-based today via long-poll and WebSocket — see Receive + Voice presence.

## What works today (no webhooks needed)

- **SMS inbound** — long-poll [`/sms/receive`](/docs/reference/receive) or use the MCP `receive_sms` tool. Near-instant delivery.
- **Voice inbound** — keep the WebSocket at [`/voice/presence/<phone>`](/docs/reference/voice-presence) open. Server pushes one JSON event per ringing call.
- **Voice audio** — per-call WebSocket at [`/voice/stream/<call_id>`](/docs/reference/voice-stream).

## Why no HTTP webhooks today

Agents typically don't run public HTTPS endpoints. The push model that matches agent runtimes is WebSocket / long-poll: the agent stays connected and reacts. Inverting to "agent must operate a web server" is a bad fit.

## If you need fan-out anyway

Run a tiny relay: open the long-poll or presence WS once server-side and re-emit events to your own HTTP endpoint or message bus. The auth surface stays tight (one bearer, one relay) and you get classic webhook semantics on top.

## Sitemap

- [Overview](/docs/)
- [Quickstart](/docs/quickstart)
- [Authentication](/docs/auth)
- [SMS](/docs/sms)
- [Voice](/docs/voice)
- [MCP](/docs/mcp)
- [Payment](/docs/payment)

See the full [sitemap.md](/sitemap.md) for the complete index of docs pages.

---

← Previous: [Voice stream](/docs/reference/voice-stream) · Next: [Reference index](/docs/#api-reference) →
