International numbers
Local numbers anywhere in the world
Get local phone numbers in dozens of countries in seconds — local presence, compliance included, all wired to your agents and your relay.
Local presence
A number from your customers' country builds trust and lifts pickup rates.
Compliance included
We handle the regulatory requirements (bundles, documents) for you.
Wired to everything
Every number feeds your agents, your relay and your webhooks.
How it works
1
Pick a country
Browse the available numbers in the country you want.
2
Provision the number
Buy it with one API call or one click.
3
Wire it up
Connect it to an agent, the relay or a forward.
# Browse available local numbers in any country
curl "https://api.phonevoice.ai/api/v1/numbers/available?country=GB" \
-H "Authorization: Bearer $PHONEVOICE_API_KEY"
const numbers = await fetch(
"https://api.phonevoice.ai/api/v1/numbers/available?country=GB",
{ headers: { Authorization: `Bearer ${process.env.PHONEVOICE_API_KEY}` } }
).then((r) => r.json());
console.log(numbers);
import os, requests
numbers = requests.get(
"https://api.phonevoice.ai/api/v1/numbers/available",
params={"country": "GB"},
headers={"Authorization": f"Bearer {os.environ['PHONEVOICE_API_KEY']}"},
).json()
print(numbers)
require "net/http"
require "json"
uri = URI("https://api.phonevoice.ai/api/v1/numbers/available?country=GB")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV['PHONEVOICE_API_KEY']}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)
Explore next
Ready to give your apps a voice?
Create your developer account and place your first call in minutes.