When you purchase a phone number in Talk, some countries have regulations that require you to provide an address to verify your business. For more information, see Zendesk Talk and Zendesk Text number address requirements in Zendesk help

JSON format

Addresses are represented as JSON objects with the following properties:

Name Type Read-only Mandatory Description
city string false true The city of the address
country_code string false true The ISO code of the country for this address
id integer true false Automatically assigned upon creation
name string false true The name of the address
provider_reference string false false The provider reference of the address
province string false true The province of the address
state string false false The state of the address
street string false true The street of the address
zip string false true The zip of the address

Example

{  "city": "San Francisco",  "country_code": "US",  "id": 900000076706,  "name": "Zendesk",  "provider_reference": "AD499983e566f656f862549f965ec10e36",  "province": "California",  "state": null,  "street": "1019 Market Street",  "zip": "94103"}

List Addresses

  • GET /api/v2/channels/voice/addresses

Allowed For

  • Agents

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/channels/voice/addresses.json  -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://support.zendesk.com/api/v2/channels/voice/addresses"	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "username:password"
	client := &http.Client {}	res, err := client.Do(req)	if err != nil {		fmt.Println(err)		return	}	defer res.Body.Close()
	body, err := io.ReadAll(res.Body)	if err != nil {		fmt.Println(err)		return	}	fmt.Println(string(body))}
Java
import com.squareup.okhttp.*;OkHttpClient client = new OkHttpClient();HttpUrl.Builder urlBuilder = HttpUrl.parse("https://support.zendesk.com/api/v2/channels/voice/addresses")		.newBuilder();
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", Credentials.basic("your-email", "your-password"))		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://support.zendesk.com/api/v2/channels/voice/addresses',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requests
url = "https://support.zendesk.com/api/v2/channels/voice/addresses"headers = {	"Content-Type": "application/json",}
response = requests.request(	"GET",	url,	auth=('<username>', '<password>'),	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/v2/channels/voice/addresses")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")request.basic_auth "username", "password"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end

Example response(s)

200 OK
// Status 200 OK
{  "addresses": [    {      "city": "San Francisco",      "country_code": "US",      "id": 900000076706,      "name": "Zendesk",      "provider_reference": "AD1624d6a83d1c6ade58bb236d0e8348ae",      "province": "California",      "state": null,      "street": "1019 Market Street",      "zip": "94103"    }  ],  "count": 1,  "next_page": null,  "previous_page": null}

Show Address

  • GET /api/v2/channels/voice/addresses/{address_id}

Allowed For

  • Agents

Parameters

Name Type In Required Description
address_id integer Path true ID of an address

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/channels/voice/addresses/{address_id}.json \  -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "username:password"
	client := &http.Client {}	res, err := client.Do(req)	if err != nil {		fmt.Println(err)		return	}	defer res.Body.Close()
	body, err := io.ReadAll(res.Body)	if err != nil {		fmt.Println(err)		return	}	fmt.Println(string(body))}
Java
import com.squareup.okhttp.*;OkHttpClient client = new OkHttpClient();HttpUrl.Builder urlBuilder = HttpUrl.parse("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")		.newBuilder();
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", Credentials.basic("your-email", "your-password"))		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requests
url = "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"headers = {	"Content-Type": "application/json",}
response = requests.request(	"GET",	url,	auth=('<username>', '<password>'),	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")request.basic_auth "username", "password"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end

Example response(s)

200 OK
// Status 200 OK
{  "address": {    "city": "San Francisco",    "country_code": "US",    "id": 900000076706,    "name": "Zendesk",    "provider_reference": "AD1624d6a83d1c6ade58bb236d0e8248ae",    "province": "California",    "state": null,    "street": "1019 Market Street",    "zip": "94103"  }}

Create Address

  • POST /api/v2/channels/voice/addresses

Allowed For

  • Agents

Example body

{  "address": {    "city": "San Francisco",    "country_code": "US",    "name": "Zendesk",    "province": "California",    "street": "1019 Market Street",    "zip": "94103"  }}

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/channels/voice/addresses.json \  -d '{"address":{"name":"Zendesk","street":"1019 Market Street","zip":"94103","city":"San Francisco","province":"California","country_code":"US"}}' \  -H "Content-Type: application/json" -X POST \  -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://support.zendesk.com/api/v2/channels/voice/addresses"	method := "POST"	payload := strings.NewReader(`{  "address": {    "city": "San Francisco",    "country_code": "US",    "name": "Zendesk",    "province": "California",    "street": "1019 Market Street",    "zip": "94103"  }}`)	req, err := http.NewRequest(method, url, payload)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "username:password"
	client := &http.Client {}	res, err := client.Do(req)	if err != nil {		fmt.Println(err)		return	}	defer res.Body.Close()
	body, err := io.ReadAll(res.Body)	if err != nil {		fmt.Println(err)		return	}	fmt.Println(string(body))}
Java
import com.squareup.okhttp.*;OkHttpClient client = new OkHttpClient();HttpUrl.Builder urlBuilder = HttpUrl.parse("https://support.zendesk.com/api/v2/channels/voice/addresses")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"address\": {    \"city\": \"San Francisco\",    \"country_code\": \"US\",    \"name\": \"Zendesk\",    \"province\": \"California\",    \"street\": \"1019 Market Street\",    \"zip\": \"94103\"  }}""");
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("POST", body)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", Credentials.basic("your-email", "your-password"))		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');var data = JSON.stringify({  "address": {    "city": "San Francisco",    "country_code": "US",    "name": "Zendesk",    "province": "California",    "street": "1019 Market Street",    "zip": "94103"  }});
var config = {  method: 'POST',  url: 'https://support.zendesk.com/api/v2/channels/voice/addresses',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"  },  data : data,};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsimport json
url = "https://support.zendesk.com/api/v2/channels/voice/addresses"
payload = json.loads("""{  "address": {    "city": "San Francisco",    "country_code": "US",    "name": "Zendesk",    "province": "California",    "street": "1019 Market Street",    "zip": "94103"  }}""")headers = {	"Content-Type": "application/json",}
response = requests.request(	"POST",	url,	auth=('<username>', '<password>'),	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/v2/channels/voice/addresses")request = Net::HTTP::Post.new(uri, "Content-Type": "application/json")request.body = %q({  "address": {    "city": "San Francisco",    "country_code": "US",    "name": "Zendesk",    "province": "California",    "street": "1019 Market Street",    "zip": "94103"  }})request.basic_auth "username", "password"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end

Example response(s)

201 Created
// Status 201 Created
{  "address": {    "city": "San Francisco",    "country_code": "US",    "id": 900000076706,    "name": "Zendesk",    "provider_reference": "AD1624d6a83d1c6ade58bb236d0e8248ae",    "province": "California",    "state": null,    "street": "1019 Market Street",    "zip": "94103"  }}

Update Address

  • PUT /api/v2/channels/voice/addresses/{address_id}

Allowed For

  • Agents

Parameters

Name Type In Required Description
address_id integer Path true ID of an address

Example body

{  "address": {    "name": "New address name"  }}

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/channels/voice/addresses/{address_id}.json \  -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"	method := "PUT"	payload := strings.NewReader(`{  "address": {    "name": "New address name"  }}`)	req, err := http.NewRequest(method, url, payload)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "username:password"
	client := &http.Client {}	res, err := client.Do(req)	if err != nil {		fmt.Println(err)		return	}	defer res.Body.Close()
	body, err := io.ReadAll(res.Body)	if err != nil {		fmt.Println(err)		return	}	fmt.Println(string(body))}
Java
import com.squareup.okhttp.*;OkHttpClient client = new OkHttpClient();HttpUrl.Builder urlBuilder = HttpUrl.parse("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"address\": {    \"name\": \"New address name\"  }}""");
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("PUT", body)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", Credentials.basic("your-email", "your-password"))		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');var data = JSON.stringify({  "address": {    "name": "New address name"  }});
var config = {  method: 'PUT',  url: 'https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"  },  data : data,};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsimport json
url = "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"
payload = json.loads("""{  "address": {    "name": "New address name"  }}""")headers = {	"Content-Type": "application/json",}
response = requests.request(	"PUT",	url,	auth=('<username>', '<password>'),	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")request = Net::HTTP::Put.new(uri, "Content-Type": "application/json")request.body = %q({  "address": {    "name": "New address name"  }})request.basic_auth "username", "password"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end

Example response(s)

200 OK
// Status 200 OK
{  "address": {    "city": "San Francisco",    "country_code": "US",    "id": 900000076706,    "name": "Zendesk",    "provider_reference": "AD1624d6a83d1c6ade58bb236d0e8248ae",    "province": "California",    "state": null,    "street": "1019 Market Street",    "zip": "94103"  }}

Delete Address

  • DELETE /api/v2/channels/voice/addresses/{address_id}

Allowed For

  • Agents

Parameters

Name Type In Required Description
address_id integer Path true ID of an address

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/channels/voice/addresses/{address_id}.json \  -X DELETE -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"	method := "DELETE"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "username:password"
	client := &http.Client {}	res, err := client.Do(req)	if err != nil {		fmt.Println(err)		return	}	defer res.Body.Close()
	body, err := io.ReadAll(res.Body)	if err != nil {		fmt.Println(err)		return	}	fmt.Println(string(body))}
Java
import com.squareup.okhttp.*;OkHttpClient client = new OkHttpClient();HttpUrl.Builder urlBuilder = HttpUrl.parse("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")		.newBuilder();
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("DELETE", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", Credentials.basic("your-email", "your-password"))		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'DELETE',  url: 'https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "username:password"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requests
url = "https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391"headers = {	"Content-Type": "application/json",}
response = requests.request(	"DELETE",	url,	auth=('<username>', '<password>'),	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/v2/channels/voice/addresses/360000250391")request = Net::HTTP::Delete.new(uri, "Content-Type": "application/json")request.basic_auth "username", "password"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end

Example response(s)

200 OK
// Status 200 OK
null