provision
POST /v1/identities/{id}/phones. Answers 202, not 201: the number exists and can receive immediately, but outbound waits on a carrier registration decision.
"sole_prop" | "standard"
required
The carrier registration tier.
string
required
The registered legal name.
string
ISO country; defaults server-side.
string
standard only. Write-through: handed to the carrier and never stored.string
sole_prop only — the handset that receives the verification passcode. Never stored.string
Request a specific number.
string
The agent inbound texts wake. Checked before the purchase;
null if the agent was deleted mid-purchase.list
GET /v1/identities/{id}/phones — including each number’s campaign/compliance status.
update
PATCH /v1/identities/{id}/phones/{phone_id}. Sets the agent inbound texts wake, or clears it with null. Each text that passes the guards then starts a session for that agent, as this persona, billed to your credits; earlier texts are not woken.
- The agent must hold the persona, or the call fails
validation_failed. - A deleted agent fails
not_found. - The woken agent can’t reply by text: no agent tool sends SMS.
release
DELETE /v1/identities/{id}/phones/{phone_id}. Irreversible at the carrier — the number returns to the pool and cannot be reclaimed.
send
POST /v1/identities/{id}/phones/{phone_id}/send. Answers a 202 receipt { accepted, from, to, sent_at }. Refused with compliance_pending until the carrier approves the campaign — that is a carrier rule, not ours.