Contactivity

Changelog

  1. 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_sip rate. Each number in a chain pays its own legs. More than 3 forwards in a row is refused with 482 Loop Detected, and nothing is charged.
    • BYOC numbers go on to their route's fallback only when you turn it on: fallback: true on 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.

  2. 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_required on starting a caller ID verification now means a sandbox account already has 4 verified numbers.

  3. docs

    Changelog, llms.txt and Markdown pages

    Every guide is available as Markdown: add .md to its URL. Coding agents can read /llms.txt for an index and /llms-full.txt for every guide in one file. The changelog has an Atom feed at /changelog.xml.

  4. billingbreaking

    Voice products and per-leg pricing

    Each call leg is billed as one product: sip_trunking, programmable_voice, programmable_voice_sip, byoc_sip_trunking or byoc_programmable_voice. Legs are billed per 60 seconds, rounded up, unless your agreement says otherwise.

    • Calls, carrier legs and CDRs have a product field. GET /cdrs filters by product.
    • GET /pricing lists prices per product under products.
    • GET /pricing/check takes product (default sip_trunking).
    • Usage lines are <product>_inbound and <product>_outbound, replacing voice_inbound and voice_outbound.

    See Products and Pricing.

  5. 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/verifications
    caller_ids:read, caller_ids:write verified_numbers:read, verified_numbers:write
    403 caller_id_blocked 403 verified_number_blocked
    409 caller_id_exists 409 verified_number_exists

    Existing keys keep their access under the new scope names. See Verified numbers.

  6. sip

    Ring strategies for registered devices

    register trunks take a ring_strategy (ring_all, sequential, round_robin, longest_idle, random) and ring_secs. Set the ring order of credentials with PUT /trunks/{trunk_id}/credentials/order or each credential's position. See Ring strategy.

  7. voice

    Call quality per leg shows its source

    Each leg in a call's quality has a source: engine when the voice engine measured the leg, relay when 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.

  8. voicebyoc

    Bring your own carrier

    Connect your own carrier to send and receive calls through Contactivity: /byoc/carriers with 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.

  9. 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 /limits returns the project's current limits and today's spend. Calls per second and concurrent calls are account limits: setting cps_limit or session_limit on a trunk is refused. See Limits.

  10. 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) and contactivity_sdk (Python).
  11. 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.