Skip to content
Inkbox

Inkbox

DocsPricingBlogContact
GuidesAPI ReferenceChangelog

Ctrl K

GuidesAPI ReferenceChangelog

Jump to

Phone API

API-first telephony service for AI agents. Provision phone numbers, place and receive calls with bidirectional audio streaming, receive and manage SMS/MMS text messages, retrieve transcripts, and subscribe to events via webhooks.

API base URL:

https://inkbox.ai/api/v1/phone

Quick start

Create an account and get your API key from the Inkbox console:

Get API key

All API requests require authentication using a API key:

X-API-Key: YOUR_API_KEY

Phone Numbers

Provision phone number

POST

Provision a new local phone number

/api/v1/phone/numbers

Release phone number

DELETE

Release a phone number from your organization

/api/v1/phone/numbers/{phone_number_id}

List phone numbers

GET

List all phone numbers for your organization

/api/v1/phone/numbers

Get phone number

GET

Get a single phone number by ID

/api/v1/phone/numbers/{phone_number_id}

Update phone number

PATCH

Update incoming call action, WebSocket URL, or webhook URL

/api/v1/phone/numbers/{phone_number_id}

Calls

Incoming calls

Texts

Transcripts

Contact rules

Per-identity allow and block rules interpreted against the identity's phone_filter_mode (blacklist by default, whitelist on demand), covering inbound calls and texts. See the Contact rules reference and the Phone guide for semantics. The legacy per-number routes under /numbers/{phone_number_id}/contact-rules are deprecated — migrate to the handle-keyed routes below.

SMS opt-ins

Per-recipient SMS consent state for your organization. Reads are open to admin-scoped API key holders and callers from the Inkbox Console; writes require your org to be on its own active, customer-managed 10DLC campaign. See the SMS opt-ins reference for the full schema and the customer-campaign gate.

Webhooks

Text events (text.*) are delivered via the Webhook Subscriptions API — attach a subscription to the phone number with the subset you want. The call-lifecycle event (call.ended) is delivered the same way, via a subscription on the agent identity. The incoming-call event stays on the phone number resource: set incoming_call_webhook_url via PATCH /numbers/{phone_number_id} because the response body controls call routing. See the Webhooks guide for event types, payload format, and signature verification.

Filtering by date

Date filtering applies to the comms list endpoints — List calls (GET /calls, and the deprecated GET /numbers/{phone_number_id}/calls alias), List texts (GET /numbers/{phone_number_id}/texts), and List conversations (GET /numbers/{phone_number_id}/texts/conversations). These accept three optional query parameters that filter results by when each record was created (created_at, stored in UTC); other phone list endpoints (such as list phone numbers and list transcripts) do not support them. All three are optional and fully backwards-compatible — omit them and the endpoint behaves exactly as before, with no filtering applied.

ParameterTypeDefaultDescription
start_datetimestringInclusive lower bound. A bare date (2026-07-01) starts at 00:00 of that day; a datetime with a Z or offset is used as an exact instant
end_datetimestringUpper bound, inclusive. A bare date (2026-07-06) covers the whole day; a datetime with a Z or offset is an exact instant, and records created at exactly that instant are included
tzstringUTCIANA time zone (e.g. America/New_York) used to interpret zone-less values. Defaults to UTC
  • A bare date in end_datetime is inclusive of the entire day — end_datetime=2026-07-06 returns records through the last moment of the 6th.
  • A datetime with an explicit Z or offset (2026-07-06T15:30:00Z, 2026-07-06T11:30:00-04:00) is an exact instant; tz is ignored for that value.
  • A naive datetime (2026-07-01T12:00:00) is interpreted in tz (UTC when tz is omitted).
  • Supply only one side for an open-ended range. Ordering, pagination, and all other filters are unchanged.
  • Invalid input returns 422: start_datetime after end_datetime, an unparseable date, or an unknown time zone.

A bare-date range (interpreted in UTC):

?start_datetime=2026-07-01&end_datetime=2026-07-06

Interpret those bare dates in a specific zone:

?start_datetime=2026-07-01&end_datetime=2026-07-06&tz=America/New_York

Filter from an exact instant (tz ignored):

?start_datetime=2026-07-06T15:30:00Z

Additional resources

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Y CombinatorBacked by Y Combinator
Phone API