REST API · v1

Build on Softtop.
Ship faster.

A single REST API for calls, SMS, recordings, AI summaries, and webhooks. SDKs in Node, Python, and Ruby. Docs that actually make sense.

99.999% UPTIMEREST · JSONWEBHOOKS5 SDKs
"color:#2dd4bf;font-weight:700">curl "color:#f9a8d4">-X "color:#2dd4bf;font-weight:700">POST "color:#86efac">https://api.softtop.tech/v1/calls "color:#f9a8d4">\
  "color:#f9a8d4">-H "Authorization: Bearer YOUR_API_KEY" "color:#f9a8d4">\
  "color:#f9a8d4">-H "Content-Type: application/json" "color:#f9a8d4">\
  "color:#f9a8d4">-d '{
    "from": "+12025551234",
    "to":   "+13105559876",
    "webhook_url": "">https://yourapp.com/call-events"
  }'
REST · v1 · JSON
softtop.tech/api/v1

API Reference

Everything accessible via REST.

All resources return JSON and use standard HTTP status codes.

POST/v1/calls/

Voice Calls

Initiate outbound calls, retrieve call logs, and stream real-time call events via webhooks. Explore our business phone product.

Full reference

Endpoints

POST/v1/calls (POST)
GET/v1/calls/:id
DEL/v1/calls/:id
GET/v1/calls/:id/events
Base URLhttps://api.softtop.tech/v1

Authentication

Simple bearer-token auth. No OAuth dance required.

Generate an API key from your dashboard. Pass it in every request header. Rotate keys instantly without downtime. Read the API overview for context.

API keys scoped to read, write, or admin
HMAC-signed webhooks for verified payloads
IP allowlist for production key protection
Key rotation with zero-downtime window
API Key Configuration
API Key
sk_live_••••••••••••••••••••Xq7r
Environment
Productionlive
Scope
read, writeadmin
Requests today
24,871+12%

Request Header

Authorization: Bearer sk_live_...Xq7r Content-Type: application/json

SDKs

Ship in your language.

Official libraries maintained by the Softtop team. Each SDK mirrors the REST API and handles retries, auth, and serialization.

Node.js

Full TypeScript support, auto-retry, and promise-based API.

npm install softtop-sdk
🐍

Python

Sync and async clients. Works with Django, FastAPI, and Flask.

pip install softtop
💎

Ruby

Rails-ready gem with ActiveRecord-style query interface.

gem install softtop
🐘

PHP

PSR-compatible, works with Laravel, Symfony, and plain PHP.

composer require softtop/sdk
🔷

Go

Idiomatic Go client with context support and structured logging.

go get softtop.tech/sdk
Webhook Event StreamLIVE
call.initiated
{ "call_id":"c_1a2b","from":"+1202…","status":"ringing" }
call.answered
{ "call_id":"c_1a2b","answered_at":"2025-05-05T10:23:01Z" }
call.completed
{ "call_id":"c_1a2b","duration":274,"recording_url":"…" }
ai.summary.ready
{ "call_id":"c_1a2b","summary":"Discussed renewal pricing…" }

Webhooks

Real-time events pushed to your server.

Subscribe to any call, SMS, voicemail, or AI event. Payloads are HMAC-signed so you know they came from Softtop.

20+ event types: call, SMS, voicemail, AI
HMAC-SHA256 signature on every payload
Automatic retry with exponential back-off
Delivery logs and re-send from dashboard

Quick Start

From zero to first API call in 5 minutes.

01
1

Create your account

Sign up at softtop.tech. A free-trial API key is waiting in the dashboard — no credit card required.

02
2

Copy your API key

Go to Settings → API Keys. Generate a key scoped to the permissions your app needs.

03
3

Install the SDK

Pick your language and run one install command. Or hit the REST API directly — no SDK required.

04
4

Make your first call

POST to /v1/calls with your API key and a 'to' number. You'll be on the line in seconds.