Integrate in 5 minutes

PDF version

*: Nexiwave API is part of Nexiwave Enterprise Service. Contact us for setup.


Have You Considered?

Your development hours are precious and expensive resources. Have you considered using Nexiwave's no-coding "Voicemail-to-text Email Service"? Simply send voicemail audio to a Nexiwave provided email address. Our automated service will receive, transcribe and send the Voicemail Transcription email to the destination address. You save valuable development and testing time and instant enterprise class service integration.

Nexiwave Web API

Nexiwave Web API is as simple as posting the audio to Nexiwave via HTTP and receiving transcript back.

Nexiwave Simple API Call Flow


For the impatient ones, here are some one liners (choose your flavor). The wav file will be transcribed and transcript printed to stdout:
wget -q --max-redirect=100 --post-file /data/audio/test.wav --password=password --header="Content-Type: audio/vnd.wav" --header="Accept: text/raw-transcript" -O - ""
curl -L -u "" --data-binary '@/data/audio/test.wav' -H "Content-Type: audio/vnd.wav" -H "Accept: text/raw-transcript" ''
The response will be just the raw transcript. Sample Response:
Hi. My name is Carla I'm calling with I.B.M.. If you can give me a call back, it'd be greatly appreciated it. Our number here is 1 (800) 555-1234.


(More code samples: PHP/CURL    PYTHON       Java      C#       VB.NET )



Here is the PHP sample code:
// Change these:
$user = '';
$pass = 'XYZ';
$file = '/data/audio/test.wav';

// the request URL
$url = '';
// Build the connection object:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept: text/raw-transcript', ));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// curl_setopt($ch, CURLOPT_MAXREDIRS, 100);
// curl_setopt($ch, CURLOPT_VERBOSE, 1);
// To explicitly configure to wait indefintely for sync requests:
// curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
// curl_setopt($ch, CURLOPT_TIMEOUT, 0);
// set_time_limit(0); // time execution of php script self

$post = array("data.mediaFileData"=>sprintf("@%s", $file),);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// Ready to send:
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($code == 200) {
    $transcript = $result;
    // Perform your magic here
    echo $transcript;
else {
    // Something is wrong. Timed out? Configure the timeout setting above.
    throw new exception($result);



Also check out our Simple CallBack API.

Instructions for:

magicJACK (also works for ooma, netTalk, RingCentral, Line2, etc)

Outlook/LYNC Unified Messaging


Asterisk, FreeSWITCH, PBXInaFlash



Terms of Use
© Copyright 2019 Nexiwave
Just leave the password field empty.

If we fail to log you in (empty/wrong password), we will send you a secure one-time Login Link via email. You can just retrieve the email and click the Login Link to log into your Nexiwave account without a password.
Would you like to receive a Login Link to log into Nexiwave without a password?
We have just emailed you a Login Link. Find the email and click the secure Login Link to log into your Nexiwave account without a password.