Developers

Build on the network.
Ship faster.

RESTful API with OpenAPI 3.0 spec, SDKs in Node.js, Python, and PHP, webhook events with signed payloads, and a full sandbox environment. Everything you need to provision, configure, and monitor — in code.

Quickstart

From zero to live call in under 10 minutes.

The Nexcadia API follows RESTful conventions. All endpoints return JSON. Authentication is Bearer token. Rate limits are documented inline per endpoint.

Provision a local DID

# Search for available DIDs in area code 305
curl -X GET \
  "https://api.nexcadia.com/v1/dids/search?area_code=305&type=local&limit=10" \
  -H "Authorization: Bearer $NEXCADIA_API_KEY"

# Provision a specific DID
curl -X POST \
  https://api.nexcadia.com/v1/dids/provision \
  -H "Authorization: Bearer $NEXCADIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "number": "+13055550192",
    "trunk_id": "trnk_abc123",
    "voice_url": "https://your-app.com/webhooks/voice",
    "sms_url": "https://your-app.com/webhooks/sms"
  }'

# Response
{
  "id": "did_9xk2m8",
  "number": "+13055550192",
  "status": "active",
  "type": "local",
  "created_at": "2026-04-15T21:00:00Z"
}

Initiate an outbound call

# Originate an outbound call via API
curl -X POST \
  https://api.nexcadia.com/v1/calls \
  -H "Authorization: Bearer $NEXCADIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+15615550100",
    "from": "+13055550192",
    "trunk_id": "trnk_abc123",
    "record": true,
    "ai_gateway": {
      "enabled": true,
      "model": "openai-realtime",
      "webhook_url": "https://your-app.com/ai-events"
    }
  }'

# Response
{
  "call_id": "call_h7x9p2",
  "status": "initiated",
  "direction": "outbound"
}
SDKs

Official client libraries.

All SDKs wrap the REST API with typed models, automatic retries, and sensible defaults. Source on GitHub, published to npm/PyPI/Packagist.

Node.js SDK

npm install @nexcadia/sdk

Full TypeScript support. Promise-based async/await. Compatible with Node.js 18+ and edge runtimes.

View on npm →

Python SDK

pip install nexcadia

Python 3.9+. Both sync and async (asyncio) interfaces. Pydantic models for all responses.

View on PyPI →

PHP SDK

composer require nexcadia/sdk

PHP 8.1+. PSR-18 HTTP client compatible. Laravel service provider included.

View on Packagist →
Webhook Events

Real-time event delivery.

Nexcadia pushes events to your HTTPS endpoint via POST. Every payload is signed with HMAC-SHA256 using your account's signing secret.

Event types include

Call Events

  • call.initiated
  • call.answered
  • call.completed
  • call.recording.ready
  • call.transcript.ready
  • call.summary.ready

Number Events

  • did.provisioned
  • did.released
  • did.ported
  • sms.inbound
  • sms.status
  • reputation.alert

Signature verification

// Node.js — verify webhook signature
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}
Sandbox Environment

Test without burning minutes.

Every account includes a full sandbox environment at api-sandbox.nexcadia.com. Identical API surface — no real calls, no real charges.

  • Simulated call legs and CDRs
  • Webhook event simulation
  • Test DID provisioning and porting flows
  • AI Voice Gateway test mode included
API Reference

OpenAPI 3.0 spec.

Full interactive API reference with request/response schemas, authentication examples, and code samples in every SDK language. Machine-readable OpenAPI 3.0 YAML available for import into Postman, Insomnia, or your own toolchain.

Ready to start building?

Create an account and get sandbox access instantly. Production credentials available after a brief onboarding call.