Build on the same platform
we ship on.
Calls, messages, faxes, recordings, transcripts and contacts through one REST API. Eleven webhook events. One Bearer key per company, generated on your own Integrations page. Included in every seat.
Your first API call.
curl "https://api.vocatech.com/v1/calls?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"{
"calls": [{
"call_id": "c045ac31-abbe-45dc-9722-efbe4044cc73",
"direction": "incoming",
"status": "answered",
"remote_name": "Marcus Fletcher",
"remote_number": "+18585550147",
"group_number": "+17183951550",
"start_time": "2026-09-04T14:02:11-04:00",
"duration": 317,
"journey": [
{ "type": "auto_attendant", "name": "Main menu",
"duration": 6 },
{ "type": "call_center", "name": "Support",
"duration": 22 },
{ "type": "user", "name": "Ellen Price",
"extension": "104", "duration": 289,
"summary": "Marcus confirmed the March invoice.
Ellen resent a clean copy; payment
will be mailed April 30.",
"transcription": "Hi Ellen, is the March ...",
"recording_url": ".../v1/media/rec_5d21c0" }
]
}],
"meta": { "page": 1, "limit": 10,
"total_pages": 4, "total_calls": 38 }
}One Bearer token. Paginated list in, JSON back. Every call record carries the caller, the duration and the routing journey, and on recorded calls the recording link, the transcript and the AI summary.
Eight surfaces. Twenty-two operations.
Everything is Bearer-authenticated and scoped to your company. Pagination is page and limit, up to 500 records a page. Dates default to today in Eastern time, with a timezone parameter to override.
Calls
Every call with its full journey: the menu, the queue, who answered, how long each step took, and on recorded calls the transcript and the summary.
Messages
SMS, MMS and WhatsApp history, and sending from your own numbers. A send queue you can inspect and cancel, and a dry-run flag to test first.
Faxes
Fax history on your virtual fax lines, and sending a PDF from your own software, with the same dry-run flag so nothing goes out by accident.
Media
Message attachments, call recordings as MP3, and fax documents as PDF, through signed links good for 30 minutes, all on the one key.
Contacts
List, create or update, and delete the contacts that put names and record links on Callpop and Reports. Batches of up to 500 at a time.
Webhooks
Create, update, test and delete endpoints, filter by event, extension or number, and list the failed deliveries so you can replay whatever you missed.
Support
Open a ticket with us from your own system. A help desk sync, an automation step, or the AI answering agent posts here and it lands in our inbox.
Identity
The source address the API sees you as. Handy when a metered messaging key needs your server on its IP allow-list before it will send anything.
The API reads and sends. It does not change call settings such as forwarding or voicemail. Those live in the portal.
Eleven events, pushed as they happen.
Create an endpoint in the portal’s Webhooks panel or through the API, pick the events, and filter by extension or number if you like. Every delivery is signed. Retries run at one minute, five minutes, thirty minutes and two hours, then the delivery is listed under failures for you to replay.
// Verify X-Vocatech-Signature: t=<unix_ts>,v1=<hex>
import { createHmac, timingSafeEqual } from 'node:crypto';
export function verify(rawBody, header, secret) {
const parts = Object.fromEntries(
header.split(',').map((p) => p.split('='))
);
const expected = createHmac('sha256', secret)
.update(`t=${parts.t}.${rawBody}`)
.digest('hex');
const ageSeconds = Math.abs(Date.now() / 1000 - Number(parts.t));
return ageSeconds <= 300 && timingSafeEqual(
Buffer.from(expected), Buffer.from(parts.v1)
);
}Auth, rate limits, and webhooks done right.
The general key includes 20 texts a minute and 200 a day. For volume, a metered API Messaging key is switched on per company in the portal under Textdock, with its own limits and per-message billing.
For AI assistants, and for your help desk.
An MCP server for AI assistants
Point an MCP-capable assistant at Vocatech with your API key and ask about your calls in plain English. It reads the same calls, journeys, summaries, transcripts and messages the API returns. It never gets the audio.
Set up MCPSupport tickets from your own system
POST /v1/support/tickets opens a ticket with us from a help desk sync, an automation step, or the AI answering agent’s after-message action. Your own reference keeps follow-ups on the same ticket for seven days, and the reply reaches whoever you name.
Read the guideStart building.
The Swagger reference with real auth and try-it, and a long-form guide with concepts, payloads and curl examples. Generate a key on your Integrations page and go.