A brand agent membership links an agent to a brand. Brands can have many agents, as agents can be in many brands. You can use the API to list what agents are in which brands. For more information, see Restricting agent ticket access by brand (department spaces) in Zendesk help.

JSON format

Brand Agents are represented as JSON objects with the following properties:

NameTypeRead-onlyMandatoryDescription
brand_idintegerfalsetrueThe id of a brand
created_atstringtruefalseThe time the brand membership was created
idstringtruefalseAutomatically assigned upon creation
updated_atstringtruefalseThe time of the last update of the brand membership
urlstringtruefalseThe API url of this record
user_idintegerfalsetrueThe id of an agent

List Brand Agent Memberships

  • GET /api/v2/brand_agents
  • GET /api/v2/users/{user_id}/brand_agents
  • GET /api/v2/brands/{brand_id}/agents

Returns a list of all brand agent memberships for your account.

Pagination

  • Cursor pagination (recommended)
  • Offset pagination

See Pagination.

Returns a maximum of 100 records per page.

Allowed For:

  • Admins

Parameters

NameTypeInRequiredDescription
brand_idintegerPathtrueThe ID of the brand
user_idintegerPathtrueThe id of the user

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/brand_agents.json \  -v -u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/brand_agents"	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 "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/brand_agents")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/brand_agents',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/brand_agents"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/brand_agents")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl (list memberships by user id)
curl https://{subdomain}.zendesk.com/api/v2/users/{user_id}/brand_agents.json \  -v -u {email_address}/token:{api_token}
curl (list brand agents by brand id)
curl https://{subdomain}.zendesk.com/api/v2/brands/{brand_id}/agents.json \  -v -u {email_address}/token:{api_token}

Example response(s)

200 OK
// Status 200 OK
{  "brand_agents": [    {      "brand_id": 12,      "created_at": "2009-05-13T00:07:08Z",      "id": "4",      "updated_at": "2011-07-22T00:11:12Z",      "user_id": 29    },    {      "brand_id": 3,      "created_at": "2012-03-13T22:01:32Z",      "id": "49",      "updated_at": "2012-03-13T22:01:32Z",      "user_id": 155    }  ]}

Show Brand Agent Membership

  • GET /api/v2/brand_agents/{brand_agent_id}
  • GET /api/v2/users/{user_id}/brand_agents/{brand_agent_id}

Returns a brand agent membership for your account.

Allowed For

  • Admins

Parameters

NameTypeInRequiredDescription
brand_agent_idstringPathtrueThe id of the brand agent

Code Samples

curl
curl https://{subdomain}.zendesk.com/api/v2/brand_agents/{brand_agent_id}.json \  -v -u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/brand_agents/123ABC"	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 "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/brand_agents/123ABC")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/brand_agents/123ABC',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/brand_agents/123ABC"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/brand_agents/123ABC")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"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
{  "brand_agent": {    "brand_id": 88,    "created_at": "2012-04-03T12:34:01Z",    "id": "461",    "updated_at": "2012-04-03T12:34:01Z",    "user_id": 72  }}