You can use the API to list existing OAuth access tokens for the Zendesk Chat API, or to revoke them.

JSON format

OAuth Tokens are represented as JSON objects with the following properties:

Name Type Read-only Mandatory Description
access_token string true false The access token
agent_id integer true false The ID of the user this token authenticates as
client_identifier string true false The ID of the client this token belongs to
create_date string true false The time the token was created
expire_date string true false The refresh token, if generated
id integer true false The ID of the token. Automatically assigned when created
refresh_token string true false The refresh token, if generated
scopes string true false One or more allowed scopes for the client. Can be "read", "write", and "chat". See OAuth Authentication
token_type string true false Token type. Must be "Bearer"

Example

{  "access_token": "L0m2pVzxYpiVZOnzuWfGTHJjUxMicmbsEeGh4QSBqTTaScnprJNC8DusW5RwFTuo",  "agent_id": 100000204,  "client_identifier": "zopim",  "create_date": "2014-09-09T07:49:20Z",  "expire_date": "2014-09-09T17:49:20Z",  "id": 38,  "refresh_token": "pLZYNfA082RVrUt6ArGiKroVrN6CS9ZJ2glbty5rA1CejmSVlGPk5GjfKarDR5VS",  "scopes": "read write",  "token_type": "Bearer"}

List OAuth Tokens

  • GET /api/v2/oauth/tokens

Lists all tokens under an agent.

Allowed for

  • Administrator

Code Samples

curl
curl https://www.zopim.com/api/v2/oauth/tokens \  -v -u {email_address}:{password}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://www.zopim.com/api/v2/oauth/tokens"	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://www.zopim.com/api/v2/oauth/tokens")		.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://www.zopim.com/api/v2/oauth/tokens',  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://www.zopim.com/api/v2/oauth/tokens"headers = {	"Content-Type": "application/json",}
response = requests.request(	"GET",	url,	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://www.zopim.com/api/v2/oauth/tokens")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
// Status 200 OK
[  {    "access_token": "L0m2pVzxYpiVZOnzuWfGTHJjUxMicmbsEeGh4QSBqTTaScnprJNC8DusW5RwFTuo",    "agent_id": 100000204,    "client_identifier": "zopim",    "create_date": "2014-09-09T07:49:20Z",    "expire_date": "2014-09-09T17:49:20Z",    "id": 38,    "refresh_token": "pLZYNfA082RVrUt6ArGiKroVrN6CS9ZJ2glbty5rA1CejmSVlGPk5GjfKarDR5VS",    "scopes": "read write",    "token_type": "Bearer"  },  {    "access_token": "L0m2pVz124sdsGTHJjUxMicmbsEeGh4QSBqTTaScnprJNC8DusW5RwFTuo",    "agent_id": 10000026,    "client_identifier": "zendesk",    "create_date": "2014-09-09T07:49:20Z",    "expire_date": "2014-09-09T17:49:20Z",    "id": 143,    "refresh_token": "pLZYNfA082RV34sdsroVrN6CS9ZJ2glbty5rA1CejmSVlGPk5GjfKarDR5VS",    "scopes": "read write",    "token_type": "Bearer"  }]

Delete OAuth Token

  • DELETE /api/v2/oauth/tokens/{oauth_token_id}

Revokes the specified token.

Allowed for

  • Administrator

Parameters

Name Type In Required Description
oauth_token_id integer Path true The ID of the OAuth Token

Code Samples

curl
curl https://www.zopim.com/api/v2/oauth/tokens/{id} \  -v -u {email_address}:{password} -X DELETE
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://www.zopim.com/api/v2/oauth/tokens/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://www.zopim.com/api/v2/oauth/tokens/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://www.zopim.com/api/v2/oauth/tokens/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://www.zopim.com/api/v2/oauth/tokens/1"headers = {	"Content-Type": "application/json",}
response = requests.request(	"DELETE",	url,	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://www.zopim.com/api/v2/oauth/tokens/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
// Status 204 No Content
null