AsyncAPI Specification
generated: '2026-10-24'
method: searched
generator: extract-docs-artifacts.py (local)
source: https://docs.phone.inc/api/webhooks.md
sources:
- https://docs.phone.inc/api/webhooks.md
- https://docs.phone.inc/api/webhooks
description: 'Phone.inc webhooks deliver JSON POSTs to a registered HTTPS endpoint. Deliveries include a Content-Type: application/json header
and a User-Agent: PhoneInc-Webhooks/1.0 header. No signature header is used; security relies on HTTPS. If the endpoint does not return a 2xx
status code, Phone.inc will retry up to 5 times with exponential backoff.'
events:
- event: call.initiated
description: A new inbound or outbound call has started. The call exists but hasn't been answered yet.
- event: call.outside_business_hours
description: An inbound call arrived outside the business number's configured business hours. Existing `call.outside_opening_hours` subscriptions
are migrated to this name, and payloads now use `call.outside_business_hours`.
- event: call.queued
description: The caller joined the employee wait queue. The payload is the existing call envelope; `state` is `queued` and `answered_at` is
still null. Fires once per call.
- event: call.answered
description: The call was answered by an employee. `answered_at` is now set on the call, and `employees` includes the employee who answered.
- event: call.ended
description: The call has ended, regardless of outcome. Fires for every call that reaches the `ended` state — answered, missed, or rejected.
- event: call.lost
description: The call ended without being answered and without a spoken voicemail message. This includes recordings containing only silence
or sound effects. Discarding a sound‑only recording emits this event unless it was already emitted for the call.
- event: call.transcription_done
description: The call recording has been transcribed. The `transcription` and `transcription_segments` fields are now populated on the call.
The summary is generated afterwards, so do not rely on `summary` being populated in this event. Subscribe to `call.summary_done` to receive
it.
- event: call.summary_done
description: The AI summary of the call has been saved. The payload includes `summary`, `transcription`, and `transcription_segments`. Dispatched
after `call.transcription_done`, but webhook deliveries may arrive out of order. Not sent when the call has too little conversation to summarize,
contains no meaningful content, or its transcription was deleted during summary generation.
- event: call.data_deleted
description: Call content or a recording was deleted. `data.deleted` lists `transcription`, `recording`, or both. Deleting transcription data
also deletes the summary, stored caller context, and whisper brief, even if no transcript exists. `data.reason` is `retention_policy` for
scheduled deletion, `keep_disabled` when temporary audio is removed after transcription, or `manual` when an employee deletes call data.
- event: voicemail.new
description: A new voicemail was recorded and confirmed to contain spoken words. Fires after transcription, not immediately after the recording
upload. The payload includes both the call and voicemail data, including the transcription.
- event: voicemail.transcription_done
description: The voicemail recording has been transcribed. The payload's `voicemail` object now has its `transcription` field populated.
- event: voicemail.data_deleted
description: A voicemail transcription or recording was manually deleted. `data.deleted` lists `transcription`, `recording`, or both, and `data.reason`
is `manual`.
- event: contact.created
description: A new contact was added to your address book. The payload's `data.contact` object includes the full contact model.
- event: contact.updated
description: An existing contact was edited. The payload's `data.contact` object includes the new values.
- event: contact.deleted
description: A contact was removed. The payload's `data.contact` object reflects the contact at the time of deletion.
- event: employee.status.changed
description: An employee's live presence changed (for example from `available` to `on_call`, or when they enable/disable do‑not‑disturb). The
payload's `data.employee` object matches the employee model, including `status`, `do_not_disturb`, `do_not_disturb_activated_at`, and `do_not_disturb_expires_at`.
It also has a `call_id` indicating the call the employee is ringing for or on.
- event: number.registration_approved
description: A business number's regulatory registration was approved by the carrier. The payload's `business_number` includes `id`, `number`,
and `registration_status`.
- event: number.registration_rejected
description: A business number's regulatory registration was rejected. The payload's `business_number` includes `id`, `number`, and `registration_status`.
A sibling `reason` string explains the rejection.
delivery:
content_type: application/json
note: No signature header is described; security relies on HTTPS and the User-Agent header.
docs: https://docs.phone.inc/api/webhooks.md
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/phone-inc-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.