Skip to content
14-day free trial · compliance included · one account for numbers, voice and SMS.14-day free trial · compliance included · one account for numbers, voice and SMS.14-day free trial · compliance included · one account for numbers, voice and SMS.14-day free trial · compliance included · one account for numbers, voice and SMS.
Twiching
Developer Documentation

Build on the Twiching API.

Everything you need to integrate voice, SMS, webhooks, and AI agents into your product — in one clean REST API with official SDKs for five languages.

Twiching
Core API
Voice API
SMS API
Webhooks
AI Agent
SDK
Quickstart

Up and running in minutes.

Install the SDK, grab your API key, and make your first call — no telephony knowledge required.

01

Install the SDK

Add the Twiching Node.js SDK to your project.

02

Authenticate

Pass your API key from the Twiching dashboard.

03

Make your first call

Initiate an outbound call in two lines.

~/my-app — zsh
live
$npm install @twiching/sdk
$export TWICHING_API_KEY=tw_live_xxx
$node -e "require('@twiching/sdk').calls.create({to:'+14155551234',from:'+12125550001'})"
Call initiated
CA1a2b3c4d · +14155551234 · ringing…
LIVE
API Surface

Everything the platform exposes.

Voice API

Outbound & inbound PSTN calling, SIP trunking, call control, and recording.

SMS / MMS

Send and receive messages globally. Long code, short code, and toll-free support.

Webhooks

Real-time event delivery with HMAC-signed payloads and automatic retry.

AI Agent

Plug in AI Receptionist, whisper coaching, and call summarisation via REST.

Number Management

Search, provision, port, and release numbers in 191 countries from one API.

Analytics

Per-call metrics, CDRs, and aggregated usage — streamed to your data warehouse.

Authentication

Two ways to authenticate.

Use a Bearer token for server-side scripts or OAuth 2.0 for user-facing integrations. All requests must go over HTTPS.

Token expiryBearer tokens never expire. Rotate manually from the dashboard.
OAuth scopesvoice:read, voice:write, sms:send, numbers:manage
IP allowlistAvailable on Growth and Enterprise plans.

Bearer token

HTTP header
Authorization: Bearer tw_live_xxxxxxxxxxxxxxxxxxxxxxxx

OAuth 2.0

Token request
POST https://api.twiching.ai/oauth/token
Content-Type: application/json

{
  "grant_type":    "client_credentials",
  "client_id":     "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET"
}
Rate Limits & Errors

Know your limits. Handle errors gracefully.

Rate limits by plan

PlanReq/sDaily callsSMS
Free5 req/s500 calls100 SMS/day
Growth50 req/s10,000 callsUnlimited
EnterpriseCustomUnlimitedUnlimited

HTTP error codes

400Bad Request — missing or invalid parameters.
401Unauthorized — missing or invalid API key.
403Forbidden — action not permitted on your plan.
429Too Many Requests — rate limit exceeded. Retry after the Retry-After header.
500Internal Server Error — something went wrong on Twiching's side.
Webhooks

Real-time event delivery.

Twiching signs every webhook payload with HMAC-SHA256 so you can verify authenticity before processing. Unacknowledged events are retried with exponential backoff for up to 24 hours.

Delivery SLA< 500 ms p50 globally
Retry policy5 attempts · 1s · 5s · 30s · 5m · 1h
Signing headerX-Twiching-Signature
Signed payload — Node.js verification
import crypto from 'crypto'

export function verifyWebhook(
  rawBody: string,
  signature: string,
  secret: string
): boolean {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex')
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  )
}
SDKs

Official libraries for your stack.

Node.js
npm install @twiching/sdk
Python
pip install twiching
Go
go get github.com/twiching/twiching-go
Ruby
gem install twiching
PHP
composer require twiching/twiching-php
More SDKs coming soon
Versioning

Stable by design. Predictable deprecation.

The Twiching API is versioned in the URL path. Breaking changes are announced 90 days in advance and always land in a new version — never the current one.

Current versionv1
stable
Beta versionv2-beta
preview
Deprecatedv0
sunset 2026-12-31
Base URL
https://api.twiching.ai/v1/
What businesses say

What Our
Customers Says

Reliable communication built for modern teams. From clinics to real-estate offices, businesses stay reachable without missed calls, disconnected systems, or outdated phone setups.

Contact Us
MW

Marcus Whitfield

Broker · Arbor Homes Realty

“Every listing city has its own local number now. Open-house calls actually get answered — no more screened voicemails from unknown prefixes.”
EC

Dr. Elaine Carter

Director · Northside Family Clinic

“Moved our appointment reminders and after-hours line in a weekend. Patients don't hit voicemail at 5:01 PM anymore, and the whole thing stayed HIPAA-aligned.”
DH

Devon Harper

Co-founder · Telemetry SaaS

“Our support number used to show as “unknown caller” in customers’ CRMs. Not anymore. One account, one bill, one team that picks up.”
SB

Sophia Bennett

Operations · Beacon Logistics

“Porting our business numbers was smoother than expected. The onboarding team handled everything while we stayed live.”
NR

Noah Richardson

Marketing Lead · Elevate Media

“The analytics dashboard finally shows which campaigns drive actual phone calls. Our ad spend makes sense now.”
MW

Marcus Whitfield

Broker · Arbor Homes Realty

“Every listing city has its own local number now. Open-house calls actually get answered — no more screened voicemails from unknown prefixes.”
EC

Dr. Elaine Carter

Director · Northside Family Clinic

“Moved our appointment reminders and after-hours line in a weekend. Patients don't hit voicemail at 5:01 PM anymore, and the whole thing stayed HIPAA-aligned.”
DH

Devon Harper

Co-founder · Telemetry SaaS

“Our support number used to show as “unknown caller” in customers’ CRMs. Not anymore. One account, one bill, one team that picks up.”
SB

Sophia Bennett

Operations · Beacon Logistics

“Porting our business numbers was smoother than expected. The onboarding team handled everything while we stayed live.”
NR

Noah Richardson

Marketing Lead · Elevate Media

“The analytics dashboard finally shows which campaigns drive actual phone calls. Our ad spend makes sense now.”

FAQ

Questions about the Twiching API, answered.

All requests go to https://api.twiching.ai/v1/. Always use HTTPS — HTTP requests will be rejected.

Sign up at twiching.ai, verify your account, and navigate to Settings → API Keys. You can create multiple keys with different scopes.

Yes. Use https://sandbox.twiching.ai/v1/ for testing. Sandbox calls do not connect to real numbers and are free of charge.

call.initiated, call.ringing, call.answered, call.completed, call.failed, message.sent, message.delivered, message.failed, recording.ready.

Absolutely. Any HTTP client works. Pass your Bearer token in the Authorization header and send JSON bodies. See the REST reference for full endpoint docs.

On a 429 response, read the Retry-After header (value in seconds) and back off accordingly. Growth and Enterprise plans can request a limit increase from the dashboard.