Skip to content

Developer API

API Reference

Originate outbound calls over HTTPS. Calls draw on the same prepaid wallet, per-second rating, and verified caller ID as your softphone.

Authentication

Create a key under Dashboard, Developer API. The full sk_live_… secret is shown once at creation. Send it as a bearer token on every request:

Authorization: Bearer sk_live_your_key_here

Base URL https://sipsuperior.com/api/v1

Place a call

POST /api/v1/calls

Body parameters (JSON):

tostring, required

Destination number. E.164 (+13055550148) or a 10-digit US number.

fromstring, optional

Caller ID to present. Must equal your verified caller ID; defaults to it.

Example request

curl -X POST https://sipsuperior.com/api/v1/calls \
  -H "Authorization: Bearer sk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"to": "+13055550148"}'

Example response, 201

{
  "call_id": "8f2b1c0a-...-a1",
  "status": "originating",
  "from": "+13055550192",
  "to": "+13055550148"
}

Errors

Errors return a non-2xx status and a JSON body shaped { "error": "<code>" }.

Status, codeMeaning
400, bad_requestMissing or invalid JSON body, or `to` not provided.
400, invalid_destination`to` isn't a dialable E.164 or US number.
401, unauthorizedMissing or invalid API key.
402, insufficient_fundsWallet balance can't cover the connection fee.
403, no_verified_caller_idAccount has no verified caller ID.
403, from_not_verified`from` doesn't match your verified caller ID.
403, blocked_destinationDestination is blocked for toll-fraud control.
422, no_rate_for_destinationNo rate configured for that destination.
503, switch_unavailableThe switch couldn't place the call. Retry.
US calling only right now. Call-status webhooks are planned. For now, poll your call history for settled results.