⚡ REST API v1.4 • OPENAPI 3.1 READY

SalamTalk Developer Portal & REST APIs

Build programmable telecom into your stack. Dispatch outbound calls, send SMS & MMS messages, program multi-party video rooms, provision global DIDs, and retrieve live AI call transcripts via webhook streams.

BASE API ENDPOINT
https://api.salamtalk.com/v1
TEST API TOKEN
sk_live_89f72b9104ca81e
Explore Endpoints ↓

Authentication

All requests to the SalamTalk REST API require HTTPS and authentication via an API Key passed in the Authorization header using the Bearer scheme.

curl -X GET "https://api.salamtalk.com/v1/account" \
  -H "Authorization: Bearer sk_live_89f72b9104ca81e" \
  -H "Content-Type: application/json"
RESPONSE PAYLOAD 200 OK • 24ms
{
  "status": "success",
  "data": {
    "account_id": "act_88291048",
    "company_name": "Acme Enterprise Corp",
    "tier": "enterprise_telephony",
    "active_numbers": 48,
    "sip_trunks_active": 6
  }
}
POST /v1/calls

Initiate a high-definition programmable voice call between your application and any PSTN phone number, SIP endpoint, or browser WebRTC client.

Field Type Description
to required string (E.164) Destination phone number (e.g. +12128479201).
from required string (E.164) Your provisioned SalamTalk number to present as Caller ID.
webhook_url optional string (URL) Webhook endpoint to receive call status events (ringing, answered, ended).
record optional boolean Set to true to enable automatic encrypted recording & AI transcription.
curl -X POST "https://api.salamtalk.com/v1/calls" \
  -H "Authorization: Bearer sk_live_89f72b9104ca81e" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+12128479201",
    "from": "+18005550199",
    "record": true,
    "webhook_url": "https://api.yourdomain.com/webhooks/voice"
  }'
⚡ Interactive API Sandbox
POST /v1/messages

Send an SMS or multimedia MMS message with real-time delivery status receipts and automated 10DLC compliance.

Field Type Description
to required string Destination mobile phone number formatted in E.164.
body required string Text content of message (up to 1,600 characters with auto-concatenation).
media_urls optional array of strings Public image/PDF URLs to attach for MMS transmission.
curl -X POST "https://api.salamtalk.com/v1/messages" \
  -H "Authorization: Bearer sk_live_89f72b9104ca81e" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+18005550199",
    "body": "Hello! Your SalamTalk appointment is confirmed for 2:00 PM EST."
  }'
RESPONSE PAYLOAD 201 Created • 18ms
{
  "id": "msg_90184712",
  "status": "queued",
  "to": "+14155552671",
  "from": "+18005550199",
  "segments": 1,
  "carrier": "T-Mobile USA",
  "created_at": "2026-09-29T03:30:00Z"
}

Webhooks & Real-Time Events

SalamTalk signs all outgoing webhook payloads using HMAC-SHA256. Verify signatures to guarantee requests originate from our secure telecom infrastructure.

Node.js Webhook Signature Validator
import crypto from 'crypto';

export function verifyWebhookSignature(payload, signatureHeader, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  const digest = 'sha256=' + hmac.update(payload).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signatureHeader));
}