API Reference

All endpoints are under https://api.usetone.ai/v1. Authenticate with a tone_live_... API key.

Interactive docs available at https://api.usetone.ai/docs.


Numbers

POST /numbers/provision

Provision a new phone number.

Body

| Field | Type | Required | Description | |---|---|---|---| | callType | TRANSACTIONAL | PROMOTIONAL | Yes | TRANSACTIONAL uses 1600-series numbers. | | webhookUrl | string | No | URL to receive call events. |

Response201

{
  "id": "num_...",
  "phoneNumber": "+91...",
  "callType": "TRANSACTIONAL",
  "numberSeries": "1600",
  "webhookUrl": null,
  "createdAt": "..."
}

GET /numbers

List all numbers on this account.

Response200

{
  "numbers": [{ "id": "...", "phoneNumber": "+91...", ... }]
}

DELETE /numbers/:id

Release a number.


Calls

POST /calls/initiate

Initiate an outbound call.

Body

| Field | Type | Required | |---|---|---| | numberId | string | Yes | | to | string (E.164) | Yes | | callType | TRANSACTIONAL | PROMOTIONAL | Yes |

Response201

{
  "callId": "call_...",
  "state": "RINGING",
  "to": "+91...",
  "from": "+91..."
}

GET /calls

List calls with pagination.

Query params: page, limit (max 100), direction (inbound/outbound)


SMS

POST /sms/send

Send an SMS.

Body

| Field | Type | Required | |---|---|---| | to | string (E.164) | Yes | | from_number | string (E.164) | Yes | | message | string (max 1600) | Yes |

Rate limit: 10 messages per minute per API key.


GET /sms/logs

List SMS logs with pagination.

Query params: page, limit, direction, number


API Keys

POST /api-keys

Create a new API key.

GET /api-keys

List all API keys (prefixes only, secrets never returned).

DELETE /api-keys/:id

Revoke an API key.