100+ REST endpoints across 15 resource types — plus the first ever MCP server for telephony. Let any AI assistant make calls, search call memory, manage users, devices and queues in real time.
Every call SONIQ processes generates an AI transcript, summary, and vector embedding. The search_call_memory MCP tool exposes this semantic store to any AI.
"Has this customer complained about billing before?"
→ Searches 6 months of transcripts via embeddings
"Who called about the Manchester office this week?"
→ Semantic vector search, not keyword matching
"What did we promise this customer last time?"
→ Full caller memory with AI summaries <100ms
Scoped API keys with fine-grained permissions. OAuth 2.0 for Claude.ai and the Anthropic Directory.
Generate in Settings → API Keys. Pass as Bearer token.
curl https://api.soniqlabs.co.uk/api/v1/calls \
-H "Authorization: Bearer soniq_live_YOUR_KEY"For Claude.ai and MCP clients. Standard authorization code + PKCE.
Authorize: https://mcp.soniqlabs.co.uk/oauth/authorize
Token: https://mcp.soniqlabs.co.uk/oauth/token
Discovery: https://mcp.soniqlabs.co.uk/.well-known/oauth-authorization-server
Client ID: soniq-mcpView calls, CDR, transcripts, recordings, analytics, queue status
Make calls, hold, transfer, DTMF, notes, tags
Lookup contacts, screen pops, CRM fan-out
Create and update contacts, CRM sync
Caller AI memory, semantic transcript search, insights
Add, update, remove agents, SIP credentials, DND, devices, webhooks
Search, order, assign and release phone numbers
Create and manage call flows, audio files
View queues and live stats
Create queues, manage members and strategies
View SMS messages and conversation threads
Send outbound SMS messages
View child orgs, users, stats (aggregate only)
Create, update, suspend child orgs and their users
Monitor live calls silently
24 tools, OAuth 2.0 + PKCE, SSE transport. The first telephony MCP server.
https://mcp.soniqlabs.co.uk/sseSSE endpoint — add via Claude.ai Integrations
claude mcp add --transport http soniq \
https://mcp.soniqlabs.co.uk/sseCLI — add once, available in every project
{
"mcpServers": {
"soniq": {
"command": "npx",
"args": ["-y", "soniq-mcp"]
}
}
}claude_desktop_config.json
get_live_callsActive calls right now
get_call_historyCDR with AI summaries
get_call_detailTranscript + recording URL
get_missed_callsUnanswered calls for callback
get_queue_statusLive queue depth + agent status
make_callInitiate outbound call
add_call_noteLog note → syncs to CRM
lookup_contactPhone/email → multi-CRM fan-out
get_screen_popEnriched caller data <300ms
create_contactNew contact + CRM sync
update_contactUpdate contact + CRM sync
get_caller_memoryFull AI call history for a number
search_call_memorySemantic vector search
get_call_analyticsVolume, rates, durations
list_usersAgents + live presence
create_userAdd agent + provision SIP
update_userUpdate role / extension
remove_userOffboard + release extension
search_numbersAvailable numbers by area/prefix
allocate_numberOrder + assign to flow
list_numbersOrg numbers + flow assignments
list_call_flowsIVR, hunt groups, AI agents
create_call_flowBuild routing flow
monitor_callSilent supervisor listen
Base URL: https://api.soniqlabs.co.uk
# Get live calls
curl https://api.soniqlabs.co.uk/api/v1/calls/live \
-H "Authorization: Bearer soniq_live_YOUR_KEY"
# Queue live stats
curl https://api.soniqlabs.co.uk/api/v1/queues/QUEUE_ID/stats \
-H "Authorization: Bearer soniq_live_YOUR_KEY"
# Send an SMS
curl -X POST https://api.soniqlabs.co.uk/api/v1/sms \
-H "Authorization: Bearer soniq_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"+447700900123","from":"+441612345678","body":"Your appointment is confirmed."}'
# Partner: create a child org
curl -X POST https://api.soniqlabs.co.uk/api/v1/partners \
-H "Authorization: Bearer soniq_live_YOUR_PARTNER_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Acme Ltd","plan":"professional","admin_email":"admin@acme.co.uk"}'/api/v1/calls/api/v1/calls/live/api/v1/calls/:id/api/v1/calls/api/v1/calls/:id/end/api/v1/calls/:id/hold/api/v1/calls/:id/unhold/api/v1/calls/:id/transfer/api/v1/calls/:id/dtmf/api/v1/calls/:id/note/api/v1/calls/:id/tag/api/v1/calls/:id/recordingRegister endpoints to receive instant push notifications for calls, SMS, voicemail, users, and numbers. Each webhook is HMAC-signed with a secret you generate on creation.
// Verify SONIQ webhook signature
import { createHmac } from 'crypto';
app.post('/webhook', (req, res) => {
const sig = req.headers['x-soniq-signature'];
const expected = createHmac('sha256', process.env.WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest('hex');
if (sig !== expected) return res.status(401).send('Bad signature');
const { event, data } = req.body;
if (event === 'call.ended') {
// data.call_id, data.from_number, data.talk_duration_seconds
// data.recording_url, data.ai_summary
}
res.sendStatus(200);
});const res = await fetch(
'https://api.soniqlabs.co.uk/api/v1/contacts/lookup?phone=+447700900123',
{ headers: { 'Authorization': 'Bearer YOUR_KEY' } }
);
// { name:"Jane Smith", company:"Acme Ltd",
// source:"hubspot", lookup_ms:187 }const res = await fetch(
'https://api.soniqlabs.co.uk/api/v1/memory/search',
{ method:'POST',
headers:{ 'Authorization':'Bearer YOUR_KEY', 'Content-Type':'application/json' },
body: JSON.stringify({ query:'customer complained about invoice' }) }
);
const { results } = await res.json();await fetch('https://api.soniqlabs.co.uk/api/v1/partners', {
method: 'POST',
headers: { 'Authorization': 'Bearer YOUR_PARTNER_KEY',
'Content-Type': 'application/json' },
body: JSON.stringify({
name: 'Acme Ltd', plan: 'professional',
admin_email: 'admin@acme.co.uk',
call_recording_enabled: true,
}),
});const res = await fetch(
'https://api.soniqlabs.co.uk/api/v1/queues/QUEUE_ID/stats',
{ headers: { 'Authorization': 'Bearer YOUR_KEY' } }
);
// { callers_waiting:3, agents_available:2,
// today: { answered:47, abandoned:3, answer_rate:94 } }Generate an API key, connect the MCP server, and you're live in minutes.