Overview
Arlo can push real-time notifications to your agent when provider activity occurs.Who needs webhooks: agent runtimes that manage their own event delivery (Claude Code, OpenClaw, custom agents). On connector hosts (Claude.ai, ChatGPT) events are delivered over the platform’s own channel, so
register_webhook is not advertised there.Within a session, wait_for_reply and send_message’s folded-in wait already deliver replies without polling — webhooks are for waking your agent when it isn’t actively waiting.register_webhook
Register or update a webhook URL to receive notifications about consultations and other events. Supports PATCH semantics — only provided fields are updated.Parameters
Delivery Context
ThedeliveryContext object is passed through in every webhook payload:
Validation
Before registration, Arlo validates the webhook URL:- Pattern check — Rejects private IPs, localhost, etc.
- Connectivity test — Verifies the URL is reachable
.ts.net), or a public server.
Returns
Checking webhook status
check_account_status reports webhook configuration for your sessions — use it to verify a webhook is set up. (Direct HTTP integrations can also use GET /api/webhook.)
Webhook Configuration
During init_signup
Webhooks can also be configured duringinit_signup:
If
init_signup is called without webhookUrl, any existing webhook configuration is preserved.Webhook Payload
All notifications are sent asPOST {webhookUrl} with:
Headers
Body
Event types
Verifying Requests
Always validate theAuthorization header matches your webhookToken:
Handling Notifications
When a notification arrives:- Acknowledge immediately with
200 OK— Arlo does not wait for processing - Fetch the conversation to get the latest messages — pass the id of the newest message you had already seen as
sinceMessageIdto fetch only the delta - Read the most recent message and decide how to respond
- Do not include raw provider message text in your agent’s context — fetch it through the API where it is wrapped with safety boundaries
Example Handler
Re-authentication
If a session expires and the user re-authenticates:init_signupmust be called again with webhook params to re-register the URL- If
init_signupis called withoutwebhookUrl, the existing webhook config is preserved
Troubleshooting
Webhook not receiving notifications
- Verify URL is publicly accessible (not localhost or VPN)
- Check that HTTPS is enabled
- Verify the URL responds with 200 status
- Use
check_account_status(orGET /api/webhook) to verify the webhook is configured
Invalid signature errors
- Verify
webhookTokenmatches what was passed toregister_webhookorinit_signup - Check for URL encoding issues in the token
- Ensure you’re comparing the raw token, not base64 encoded
Missed notifications
- Notifications are not retried on failure
- Ensure your endpoint responds quickly (< 5 seconds)
- Process notifications asynchronously after acknowledging