Developer Docs

Integrate Sky Telecom APIs with clear examples and responses.

Quick Start

All endpoints accept JSON and require a Bearer token. Use the base URL below for every request.

Base URL
https://skytelecom.io/api
Auth Header
Authorization: Bearer YOUR_API_KEY

Quick start checklist

Grab an API key, set your base URL, and copy the request samples.

Base URL
https://skytelecom.io/api
Authorization
Authorization: Bearer YOUR_API_KEY

VoIP APIs

Manage SIP caller IDs, balances, and call logs.

Change caller ID

Update the outbound caller ID for your SIP extension.

POST
/api/voip/account/update
Request
{
  "sip_callerid": "12025550123"
}
Response
{
  "status": "ok",
  "sip_callerid": "12025550123"
}

View call logs

Retrieve call logs for the connected SIP account.

GET
/api/usage
Query
?limit=10&page=1&search=1202&from=2026-01-01&to=2026-01-31
Response
{
  "data": [
    {
      "date": "2026-01-20 14:45:12 UTC",
      "from": "12025550100",
      "to": "12025550123",
      "direction": "United States",
      "duration": 11,
      "cost": "0.33",
      "status": "16ANSWER"
    }
  ],
  "page": 1,
  "limit": 10,
  "has_more": true
}

Charge SIP account

Top up your SIP account balance using your wallet funds.

POST
/api/voip/account/charge
Request
{
  "amount": 10
}
Response
{
  "status": "ok",
  "sip_balance": 42.75
}

SMS APIs

Send SMS and monitor delivery activity.

Send SMS

Send one or multiple SMS messages using your wallet balance.

POST
/api/sms/send
Request
{
  "to": "12025550123",
  "message": "Hello from SkyTelecom",
  "sender_id": "SkyTelecom",
  "route_option_id": "epsilon"
}

route_option_id: optional. Use values from GET /api/sms/available-routes (e.g. alpha, beta, gamma, delta, epsilon, epsilon_1 … epsilon_13). For GAMMA use ?expand=gamma or GET /api/sms/routes?numbers=<recipient>. Omit for auto route by destination.

Response
{
  "status": "sent",
  "sent": 1,
  "failed": 0,
  "segments": 1,
  "total_cost": 0.014,
  "wallet_balance": 19.986,
  "messages": [
    { "id": 2381, "recipient": "12025550123", "status": "sent" }
  ]
}

Available routes

List of route codes and option_id values. Use these in Send SMS (route_option_id) or in the test tool (test_routes). Only public names (ALPHA, BETA, etc.) are exposed.

GET
/api/sms/available-routes
Query
?expand=gamma

Optional. Use expand=gamma to include GAMMA routes grouped by country (same as in the dashboard): gamma_by_country lists each country with its channels (option_id, name, price). Use any option_id as route_option_id when sending.

Response

With ?expand=gamma the response includes gamma_by_country: routes grouped by country, like in the dashboard. Each country has a list of channels; use option_id in POST /api/sms/send.

{
  "routes": [ ... ],
  "gamma_by_country": {
    "France": [
      { "option_id": "ch-fr-1", "name": "CH France 1", "price": 0.052 }
    ],
    "Spain": [
      { "option_id": "ch6-1", "name": "CH6-1", "price": 0.065 },
      { "option_id": "ch6-2", "name": "CH6-2", "price": 0.068 }
    ],
    "Other": [ ... ]
  },
  "gamma_options": [ { "option_id": "...", "name": "...", "country": "Spain", "price": 0.065 } ],
  "usage": "..."
}
How to choose a GAMMA route

GAMMA is organized by country, like in the dashboard. (1) GET /api/sms/available-routes?expand=gamma — returns gamma_by_country: each country (e.g. Spain, France) with its channels (option_id, name, price). Pick the option_id for the country you need and send it as route_option_id in POST /api/sms/send. (2) For a specific recipient: GET /api/sms/routes?numbers=<recipient> returns options for that destination, including GAMMA channels for that country.

Test tool

Send the same message through one or more routes to see which delivers. Each test message includes a route tag (e.g. - ALPHA -, - EPSILON 1 -) so you can identify which route delivered it.

POST
/api/sms/send
Request
{
  "to": "12025550123",
  "message": "Test delivery",
  "test_all_routes": true
}

test_all_routes: true — sends one message per route available for that destination. Or use test_routes to pick specific routes:

{
  "to": "12025550123",
  "message": "Test delivery",
  "test_routes": ["alpha", "epsilon"]
}

test_routes: array of route codes (alpha, beta, gamma, delta, epsilon). For Epsilon sub-routes use test_spamroute_routes: [1,2,3] (TTSKY 1–13).

View SMS logs

Retrieve SMS delivery logs for your account.

GET
/api/sms/logs
Query
?limit=10&page=1&search=1202&from=2026-01-01&to=2026-01-31
Response
{
  "data": [
    {
      "id": 2381,
      "date": "2026-01-20 14:45:12",
      "recipient": "12025550123",
      "sender_id": "SkyTelecom",
      "segments": 1,
      "cost": 0.014,
      "status": "delivered",
      "message": "Hello from SkyTelecom",
      "direction": "United States Mobile"
    }
  ],
  "page": 1,
  "limit": 10,
  "has_more": true
}

Rates

Retrieve pay-as-you-go voice rates.

Retrieve rates

Get pay-as-you-go voice rates.

GET
/api/rates/voice
Query
?search=United&limit=10&page=1
Response
{
  "data": [
    {
      "destination": "United States",
      "rate": 0.0042,
      "routes": [
        { "priority": 1, "name": "tex1-int", "cost": 0.0042 }
      ]
    }
  ],
  "page": 1,
  "limit": 10,
  "has_more": true,
  "total": 2510
}