You can use the API to get or set skill information.
Skills are represented as JSON objects with the following properties:
| description | string | false | false | The description of the skill |
| enabled | integer | false | false | Describes whether the skill is enabled |
| id | integer | true | false | The ID of the skill |
| members | array | false | false | The member agent IDs for the account |
| name | string | false | false | The name of the skill |
Example
{ "description": "English language", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "english"}
List Skills
Lists all the skills for your account.
Allowed for
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/skills" 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/skills") .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/skills', 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/skills"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/skills")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": "English language", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "english" }, { "description": "Spanish language", "enabled": 0, "id": 2, "members": [ 4, 5, 6 ], "name": "spanish" }]
Show Skill
GET /api/v2/chat/skills/{skill_id}
Allowed for
Parameters
| skill_id | integer | Path | true | The ID of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/(skill_id) \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/skills/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/skills/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/skills/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/skills/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/skills/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": "English language", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "english"}
Show Skill by Name
GET /api/v2/chat/skills/name/{skill_name}
Allowed for
Parameters
| skill_name | string | Path | true | The name of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/name/{name} \ -v -H "Authorization: Bearer {token}"
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/skills/name/cantonese" 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/skills/name/cantonese") .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/skills/name/cantonese', 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/skills/name/cantonese"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/skills/name/cantonese")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": "English language", "enabled": 1, "id": 1, "members": [ 1, 2, 3 ], "name": "english"}
Create Skill
Allowed for
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills \ -d '{ "name" : "mandarin", "description" : "Chinese language", "enabled" : 1, "members" : [1, 2, 3] }' \ -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/skills" 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/skills") .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/skills', 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/skills"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/skills")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": "Chinese language", "enabled": 1, "id": 4, "members": [ 1, 2, 3 ], "name": "mandarin"}
Update Skill
PUT /api/v2/chat/skills/{skill_id}
Allowed for
Parameters
| skill_id | integer | Path | true | The ID of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/{skill_id} \ -d '{"name": "cantonese"}' \ -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/skills/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/skills/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/skills/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/skills/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/skills/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": "Chinese language", "enabled": 1, "id": 4, "members": [ 1, 2, 3 ], "name": "cantonese"}
Update Skill by Name
PUT /api/v2/chat/skills/name/{skill_name}
Allowed for
Parameters
| skill_name | string | Path | true | The name of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/name/{name} \ -d '{"name": "cantonese"}' \ -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/skills/name/cantonese" 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/skills/name/cantonese") .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/skills/name/cantonese', 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/skills/name/cantonese"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/skills/name/cantonese")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": "Chinese language", "enabled": 1, "id": 4, "members": [ 1, 2, 3 ], "name": "cantonese"}
Delete Skill
DELETE /api/v2/chat/skills/{skill_id}
Allowed for
Parameters
| skill_id | integer | Path | true | The ID of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/{skill_id} \ -v -H "Authorization: Bearer {token}" -X DELETE
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/skills/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/skills/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/skills/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/skills/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/skills/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 Skill by Name
DELETE /api/v2/chat/skills/name/{skill_name}
Allowed for
Parameters
| skill_name | string | Path | true | The name of the skill |
Code Samples
curl
curl https://{subdomain}.zendesk.com/api/v2/chat/skills/name/{name} \ -v -H "Authorization: Bearer {token}" -X DELETE
Go
import ( "fmt" "io" "net/http")
func main() { url := "https://subdomain.zendesk.com/api/v2/chat/skills/name/cantonese" 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/skills/name/cantonese") .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/skills/name/cantonese', 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/skills/name/cantonese"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/skills/name/cantonese")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