Inbound & outbound calls
Originate calls programmatically or receive inbound calls with custom logic via LAML/XML.
Programmable voice call API with a standard LAML/XML REST interface. Integrate TTS, recordings, answering machine detection and webhooks in minutes — without changing a line of your business logic.
A complete CPaaS platform to automate and manage voice calls at scale, from prototype to production.
Originate calls programmatically or receive inbound calls with custom logic via LAML/XML.
Integrated with Amazon Polly, Google Cloud TTS, ElevenLabs and Azure. Automatic fallback between providers.
Record calls in WAV and MP3. Public URL access. Notification webhooks on completion.
Automatically detect whether a person or a machine answered. Configure different actions for each case.
Receive call events instantly with automatic retry and circuit breaker. Integrate with any backend.
Build interactive voice menus. Capture digits with configurable timeout and dynamically redirect the flow.
A clean REST API and an XML verb language for call flows: Say, Play, Gather, Record, Dial, Redirect, Hangup. Drop-in for any HTTP client.
Manage multiple projects with independent credentials, credits and domains from a single dashboard.
Real-time dashboard with call history, webhook status, credits and live log console.
Standard REST API plus a Python SDK on PyPI. Drop it into any backend — Flask, FastAPI, Django, plain HTTP — and start placing calls in minutes.
api.wirexaapi.com.
pip install wirexaapi
1# originate an outbound call 2curl -X POST https://api.wirexaapi.com/2010-04-01/Accounts/$ACCOUNT_SID/Calls.json \ 3 -u "$ACCOUNT_SID:$AUTH_TOKEN" \ 4 -d 'To=+14155550100' \ 5 -d 'From=+18005550110' \ 6 -d 'Url=https://your.app/voice' \ 7 -d 'Record=true' \ 8 -d 'MachineDetection=DetectMessageEnd' \ 9 -d 'StatusCallback=https://your.app/status' 10 11# → { "sid": "CA7f93b...", "status": "queued" }
1from wirexaapi import Client 2 3client = Client( 4 project_id="PRabc...", 5 api_token="•••", 6) 7 8call = client.calls.create( 9 to="+14155550100", 10 from_="+18005550110", 11 url="https://your.app/voice", 12 record=True, 13 machine_detection="DetectMessageEnd", 14 status_callback="https://your.app/status", 15) 16 17print(call.sid) # CA7f93b...
1<!-- POST /voice → served by your backend --> 2<?xml version="1.0" encoding="UTF-8"?> 3<Response> 4 <Say voice="polly.Joanna">Welcome to Wirexa.</Say> 5 <Gather input="dtmf" numDigits="1" action="/route"> 6 <Say>Press 1 for sales, 2 for support.</Say> 7 </Gather> 8 <Record 9 maxLength="60" 10 recordingStatusCallback="/recording" 11 /> 12 <Hangup/> 13</Response>
No complex configuration. Your app talks to our API and we handle the rest.
Register, get your API credentials (Account SID + Auth Token) and your unique subdomain.
Use our REST API directly or install the wirexaapi Python SDK. Point the base URL to api.wirexaapi.com.
Originate calls with LAML/XML. Define the voice flow with Say, Play, Gather, Record and more.
Set your StatusCallback and receive real-time webhooks with the status and recording of each call.
Pay only for what you use. No forced contracts or hidden fees.
Standard REST API compatible with the leading voice ecosystems in the market.
Write to us and we'll respond within 24 hours with a tailored proposal.
Set up your first call in minutes.