Nexmo Conversion API
nexmo · Company
The Conversion API allows you to tell Nexmo about the reliability of your 2FA communications. Sending conversion data back to us means that Nexmo can deliver messages faster and more reliably. The conversion data you send us is confidential: Nexmo does not share it with third parties. In order to identify the carriers who provide the best performance, Nexmo continually tests the routes we use to deliver SMS and voice calls. Using Adaptive Routing™, Nexmo actively reroutes messages through differ
Authentication
Sample Requests
Send a Conversion API request with information about the SMS message identified by `message-id`. Nexmo uses your conversion data and internal information about `message-id` to help improve our routing of messages in the future.
Hover any highlighted part to learn what it does
curl -X POST "https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms?delivered=true×tamp=example&message-id=example"
import requests
params = {
"delivered": "true",
"timestamp": "example",
"message-id": "example"
}
response = requests.post(
"https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms');
url.searchParams.set('delivered', 'true');
url.searchParams.set('timestamp', 'example');
url.searchParams.set('message-id', 'example');
const response = await fetch(url, {
method: 'POST',
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms")
q := baseURL.Query()
q.Set("delivered", "true")
q.Set("timestamp", "example")
q.Set("message-id", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms")
uri.query = URI.encode_www_form({
"delivered" => "true",
"timestamp" => "example",
"message-id" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/sms?" . http_build_query([
"delivered" => "true",
"timestamp" => "example",
"message-id" => "example"
]);
$opts = ["http" => [
"method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Send a Conversion API request with information about the Call or Text-To-Speech identified by `message-id`. Nexmo uses your conversion data and internal information about `message-id` to help improve our routing of messages in the future.
Hover any highlighted part to learn what it does
curl -X POST "https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice?delivered=true×tamp=example&message-id=example"
import requests
params = {
"delivered": "true",
"timestamp": "example",
"message-id": "example"
}
response = requests.post(
"https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice');
url.searchParams.set('delivered', 'true');
url.searchParams.set('timestamp', 'example');
url.searchParams.set('message-id', 'example');
const response = await fetch(url, {
method: 'POST',
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice")
q := baseURL.Query()
q.Set("delivered", "true")
q.Set("timestamp", "example")
q.Set("message-id", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice")
uri.query = URI.encode_www_form({
"delivered" => "true",
"timestamp" => "example",
"message-id" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/nexmo.com/conversion/1.0.1/voice?" . http_build_query([
"delivered" => "true",
"timestamp" => "example",
"message-id" => "example"
]);
$opts = ["http" => [
"method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Nexmo Conversion API?
Nexmo Conversion API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Nexmo Conversion API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?