- billingvoice
Forwarding, recording and number billing
- Forwarded calls are billed per leg: the inbound leg at the number's inbound rate, the outbound leg at the destination's rate.
- Forwards between Contactivity numbers stay on our network, billed at the
programmable_voice_siprate. Each number in a chain pays its own legs. More than 3 forwards in a row is refused with482 Loop Detected, and nothing is charged. - BYOC numbers go on to their route's fallback only when you turn it on:
fallback: trueon the number, or Use fallback route in the portal. It is off by default. - Recording is charged per recorded minute when a recording completes. Storage is free for 90 days, then charged each month per stored minute.
- E911 shows as its own line in a number's monthly price.
- Ledger amounts show 4 decimals, rounded up; your balance keeps 6.
See Billing and Bring your own carrier.
- account
Simpler account tiers
Tier 2 now needs only a card and a first payment. Identity verification moves to tier 3, and proof of address is no longer a tier step: some countries still ask for it before you buy their numbers.
Tier Needs 1 (sandbox) Verified email. Calls go only to your verified numbers 2 A card and a first payment 3 Identity verification 4 Business verification Limits per tier are unchanged. International calling still needs tier 3 and an approved request. Accounts keep their current tier.
403 kyc_requiredon starting a caller ID verification now means a sandbox account already has 4 verified numbers. - docs
Changelog, llms.txt and Markdown pages
Every guide is available as Markdown: add
.mdto its URL. Coding agents can read/llms.txtfor an index and/llms-full.txtfor every guide in one file. The changelog has an Atom feed at/changelog.xml. - billingbreaking
Voice products and per-leg pricing
Each call leg is billed as one product:
sip_trunking,programmable_voice,programmable_voice_sip,byoc_sip_trunkingorbyoc_programmable_voice. Legs are billed per 60 seconds, rounded up, unless your agreement says otherwise.- Calls, carrier legs and CDRs have a
productfield.GET /cdrsfilters byproduct. GET /pricinglists prices per product underproducts.GET /pricing/checktakesproduct(defaultsip_trunking).- Usage lines are
<product>_inboundand<product>_outbound, replacingvoice_inboundandvoice_outbound.
- Calls, carrier legs and CDRs have a
- numbersbreaking
Caller IDs are now verified numbers
Verified caller IDs are renamed to verified numbers across the API:
Before Now /caller-ids/verified-numbers/caller-ids/{caller_id}/verified-numbers/{verified_number}/caller-ids/verifications/verified-numbers/verificationscaller_ids:read,caller_ids:writeverified_numbers:read,verified_numbers:write403 caller_id_blocked403 verified_number_blocked409 caller_id_exists409 verified_number_existsExisting keys keep their access under the new scope names. See Verified numbers.
- sip
Ring strategies for registered devices
registertrunks take aring_strategy(ring_all,sequential,round_robin,longest_idle,random) andring_secs. Set the ring order of credentials withPUT /trunks/{trunk_id}/credentials/orderor each credential'sposition. See Ring strategy. - voice
Call quality per leg shows its source
Each leg in a call's
qualityhas asource:enginewhen the voice engine measured the leg,relaywhen the call was relayed without the voice engine, such as most SIP trunk calls. MOS, jitter, packet loss and round-trip time read the same either way. See Calls. - voicebyoc
Bring your own carrier
Connect your own carrier to send and receive calls through Contactivity:
/byoc/carrierswith gateways, source IPs, numbers and 911 routing. BYOC calls work from SIP trunks and voice apps and are billed a platform fee per minute, with no phone network rate.Creating or changing carriers and numbers needs account tier 2 (
403 tier_required). New scopes:byoc:read,byoc:write. See Bring your own carrier. - account
Account tiers and limits
Accounts move up four tiers as they complete verification steps:
Tier Needs 1 (sandbox) Verified email. Calls go only to your verified numbers 2 A card, a first payment and identity verification 3 Proof of address 4 Business verification Each tier raises calls per second, concurrent calls and spend limits.
GET /limitsreturns the project's current limits and today's spend. Calls per second and concurrent calls are account limits: settingcps_limitorsession_limiton a trunk is refused. See Limits. - api
Native Contactivity API
The native API is live under
https://api.contactivity.io/v1/projects/{project_id}/...: calls and call actions, recordings, conferences, queues, numbers, SIP trunks and routes, voice apps, flows, billing, events and webhooks.- One API key per project, with scopes per resource. See the Overview.
- Prices are money objects:
{"amount": "0.0140", "currency": "USD"}. - Number search and ordering are part of the native API. See Numbers.
- Events and signed webhooks, with a delivery log and error debugger. See Events and webhooks.
- OpenAPI 3.1 spec and SDKs:
@contactivity/sdk(Node) andcontactivity_sdk(Python).
- compatibilitybreaking
Twilio and Telnyx compatible routes move under /compat
The Twilio and Telnyx compatible URL layouts are served under
/compat/{vendor}. Set your SDK base URL to:- Twilio REST:
https://api.contactivity.io/compat/twilio - Telnyx Call Control v2 and TeXML:
https://api.contactivity.io/compat/telnyx/v2
The unprefixed layouts (
/2010-04-01/...,/v2/...) are no longer served. See Migrating from Twilio or Telnyx. - Twilio REST:

