You can use the API to get or set department information.
Departments are represented as JSON objects with the following properties:
| description | string | false | false | The description of the department |
| enabled | integer | false | false | Describes whether the department is enabled |
| id | integer | true | false | The ID of the department |
| members | array | false | false | The member agent IDs for the account |
| name | string | false | false | The name of the department |
| settings | object | false | false | The settings for the department |
Example
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Department 1", "settings": {}}
List Departments
GET /api/v2/chat/departments
Fetches all the departments for your account.
Allowed for
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments" method := "GET" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments") .newBuilder();
Request request = new Request.Builder() .url(urlBuilder.build()) .method("GET", null) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'GET', url: 'https://subdomain.zendesk.com/api/v2/chat/departments', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments"headers = { "Content-Type": "application/json",}
response = requests.request( "GET", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
200 OK
[ { "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Department 1", "settings": {} }, { "description": "A sample department", "enabled": 0, "id": 2, "members": [ 4, 5, 6 ], "name": "Department 2", "settings": {} }]
Show Department
GET /api/v2/chat/departments/{department_id}
Allowed for
Parameters
| department_id | integer | Path | true | The ID of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/name/{name} \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/1" method := "GET" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/1") .newBuilder();
Request request = new Request.Builder() .url(urlBuilder.build()) .method("GET", null) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'GET', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/1"headers = { "Content-Type": "application/json",}
response = requests.request( "GET", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/1")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
200 OK
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Department 1", "settings": {}}
Show Department by Name
GET /api/v2/chat/departments/name/{department_name}
Allowed for
Parameters
| department_name | string | Path | true | The name of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/name/{department_name} \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1" method := "GET" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1") .newBuilder();
Request request = new Request.Builder() .url(urlBuilder.build()) .method("GET", null) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'GET', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1"headers = { "Content-Type": "application/json",}
response = requests.request( "GET", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
200 OK
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Department 1", "settings": {}}
Create Department
POST /api/v2/chat/departments
Allowed for
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments \ -d '{ "name" : "Department 1", "description" : "A sample department", "enabled" : 1, "members" : [1, 2, 3], "settings" : {} }' \ -v -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" -X POST
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments" method := "POST" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments") .newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"), """""");
Request request = new Request.Builder() .url(urlBuilder.build()) .method("POST", body) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'POST', url: 'https://subdomain.zendesk.com/api/v2/chat/departments', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments"headers = { "Content-Type": "application/json",}
response = requests.request( "POST", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments")request = Net::HTTP::Post.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
201 Created
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Department 1", "settings": {}}
Update Department
PUT /api/v2/chat/departments/{department_id}
Allowed for
Parameters
| department_id | integer | Path | true | The ID of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/name/{department_id} \ -d '{"name": "Good department"}' \ -v -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" -X PUT
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/1" method := "PUT" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/1") .newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"), """""");
Request request = new Request.Builder() .url(urlBuilder.build()) .method("PUT", body) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'PUT', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/1"headers = { "Content-Type": "application/json",}
response = requests.request( "PUT", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/1")request = Net::HTTP::Put.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
200 OK
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Good department", "settings": {}}
Update Department by Name
PUT /api/v2/chat/departments/name/{department_name}
Allowed for
Parameters
| department_name | string | Path | true | The name of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/name/{department_name} \ -d '{"name": "Good department"}' \ -v -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" -X PUT
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1" method := "PUT" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1") .newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"), """""");
Request request = new Request.Builder() .url(urlBuilder.build()) .method("PUT", body) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'PUT', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1"headers = { "Content-Type": "application/json",}
response = requests.request( "PUT", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1")request = Net::HTTP::Put.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
200 OK
{ "description": "A sample department", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "Good department", "settings": {}}
Delete Department
DELETE /api/v2/chat/departments/{department_id}
Allowed for
Parameters
| department_id | integer | Path | true | The ID of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/{department_id} \ -v -H "Authorization: Bearer {token}" -X DELETE
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/1" method := "DELETE" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/1") .newBuilder();
Request request = new Request.Builder() .url(urlBuilder.build()) .method("DELETE", null) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'DELETE', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/1"headers = { "Content-Type": "application/json",}
response = requests.request( "DELETE", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/1")request = Net::HTTP::Delete.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
204 No Content
Delete Department by Name
DELETE /api/v2/chat/departments/name/{department_name}
Allowed for
Parameters
| department_name | string | Path | true | The name of the department |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/departments/name/{department_name} \ -v -H "Authorization: Bearer {token}" -X DELETE
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1" method := "DELETE" req, err := http.NewRequest(method, url, nil)
if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json")
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://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1") .newBuilder();
Request request = new Request.Builder() .url(urlBuilder.build()) .method("DELETE", null) .addHeader("Content-Type", "application/json") .build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = { method: 'DELETE', url: 'https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1', headers: { 'Content-Type': 'application/json', },};
axios(config).then(function (response) { console.log(JSON.stringify(response.data));}).catch(function (error) { console.log(error);});
Python
import requests
url = "https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1"headers = { "Content-Type": "application/json",}
response = requests.request( "DELETE", url, headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://subdomain.zendesk.com/api/v2/chat/departments/name/Department 1")request = Net::HTTP::Delete.new(uri, "Content-Type": "application/json")response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http| http.request(request)end
Example response(s)
204 No Content