A ZIS config stores settings for a ZIS integration. For more information, see ZIS configs.

Run in Postman

If you use Postman, you can import the ZIS Configurations API endpoints as a collection into your Postman app, then try out different requests to learn how the API works. Click the following button to get started:

Run in Postman

If you don't use Postman, you can sign up for a free account on the Postman website and download the app. For more information about using Postman with Zendesk APIs, see Exploring Zendesk APIs with Postman.

JSON format

Configs are represented as JSON objects with the following properties:

NameTypeRead-onlyMandatoryDescription
configobjectfalsefalseThe Config JSON object. Other properties are metadata
created_atstringtruefalseThe date and time the Config was created
idintegertruefalseThe unique ID of the Config
integrationstringtruefalseName of the integration that the Config belongs to
scopestringfalsefalseName of the scope that the Config belongs to
updated_atstringtruefalseThe date and time the Config was last updated
zendesk_account_idintegertruefalseThe Zendesk account ID the Config belongs to

Show Configuration

  • GET /api/services/zis/integrations/{integration}/configs?filter[scope]={filter[scope]}

Returns configuration settings for the integration. The filter[scope] parameter accepts an asterisk (*) as a wildcard to match multiple scopes. Example: filter[scope]=foo*. The lookup is scoped to an account when used with a customer subdomain.

Authentication

You can authorize requests using a ZIS OAuth access token. A Zendesk app can also authorize requests to this endpoint using an admin's browser session. See Making API requests from a Zendesk app.

Parameters

NameTypeInRequiredDescription
filter[scope]stringQuerytrueThe integration scope the configuration belongs to
page[after]integerQueryfalseSpecifies the start of the page returned
page[size]integerQueryfalseThe number of configurations to return. Returns a maximum of 100 records per page
integrationstringPathtrueName of the integration.

Code Samples

cURL
curl 'https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs?filter[scope]=my_scope' \-g -H "Authorization: Bearer {access_token}"
cURL
curl "https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs?filter[scope]=my_scope&page[size]=2" \-g -H "Authorization: Bearer {access_token}"
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://support.zendesk.com/api/services/zis/integrations/my_integration/configs?filter[scope]=filter%5Bscope%5D%3Dmy_scope&page[after]=&page[size]="	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://support.zendesk.com/api/services/zis/integrations/my_integration/configs")		.newBuilder()		.addQueryParameter("filter[scope]", "filter[scope]=my_scope")		.addQueryParameter("page[after]", "")		.addQueryParameter("page[size]", "");
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://support.zendesk.com/api/services/zis/integrations/my_integration/configs',  headers: {	'Content-Type': 'application/json',  },  params: {    'filter[scope]': 'filter%5Bscope%5D%3Dmy_scope',    'page[after]': '',    'page[size]': '',  },};
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/services/zis/integrations/my_integration/configs?filter[scope]=filter%5Bscope%5D%3Dmy_scope&page[after]=&page[size]="headers = {	"Content-Type": "application/json",}
response = requests.request(	"GET",	url,	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/services/zis/integrations/my_integration/configs")uri.query = URI.encode_www_form("filter[scope]": "filter[scope]=my_scope", "page[after]": "", "page[size]": "")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
{  "configs": [    {      "config": {        "description": "A config object can be anything, this is an example.",        "id": 999,        "name": "my_config"      },      "created_at": "2021-08-30T04:40:17Z",      "id": 1,      "integration": "my_integration",      "scope": "my_scope",      "updated_at": "2021-08-31T04:40:17Z",      "zendesk_account_id": 123    }  ],  "links": {    "next": ""  },  "meta": {    "has_more": true  },  "next": null}
400 Bad Request
// Status 400 Bad Request
{  "errors": [    {      "code": "1100",      "detail": "Bad Request",      "status": "400"    }  ]}
401 Unauthorized
// Status 401 Unauthorized
{  "errors": [    {      "code": "1110",      "detail": "Authentication failed",      "status": "401"    }  ]}
404 Not Found
// Status 404 Not Found
{  "errors": [    {      "code": "1110",      "detail": "Not Found",      "status": "404"    }  ]}

Create Configuration

  • POST /api/services/zis/integrations/{integration}/configs

Creates configuration settings for an integration.

Authentication

You can authorize requests using a ZIS OAuth access token. A Zendesk app can also authorize requests to this endpoint using an admin's browser session. See Making API requests from a Zendesk app.

Parameters

NameTypeInRequiredDescription
integrationstringPathtrueName of the integration.

Example body

{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  },  "scope": "my_scope"}

Code Samples

cURL
curl -X POST 'https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs' \  -H "Authorization: Bearer {access_token}" \  -H 'Content-Type: application/json' \  -d '  {    "config": {      "description": "A config object can be anything, this is an example.",      "id": 999,      "name": "my_config"    },    "scope": "my_scope"  }'
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://support.zendesk.com/api/services/zis/integrations/my_integration/configs"	method := "POST"	payload := strings.NewReader(`{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  },  "scope": "my_scope"}`)	req, err := http.NewRequest(method, url, payload)
	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://support.zendesk.com/api/services/zis/integrations/my_integration/configs")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"config\": {    \"description\": \"A config object can be anything, this is an example.\",    \"id\": 999,    \"name\": \"my_config\"  },  \"scope\": \"my_scope\"}""");
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 data = JSON.stringify({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  },  "scope": "my_scope"});
var config = {  method: 'POST',  url: 'https://support.zendesk.com/api/services/zis/integrations/my_integration/configs',  headers: {	'Content-Type': 'application/json',  },  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/services/zis/integrations/my_integration/configs"
payload = json.loads("""{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  },  "scope": "my_scope"}""")headers = {	"Content-Type": "application/json",}
response = requests.request(	"POST",	url,	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/services/zis/integrations/my_integration/configs")request = Net::HTTP::Post.new(uri, "Content-Type": "application/json")request.body = %q({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  },  "scope": "my_scope"})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
{  "config": {    "config": {      "description": "A config object can be anything, this is an example.",      "id": 999,      "name": "my_config"    },    "created_at": "2021-08-30T04:40:17Z",    "id": 1,    "integration": "my_integration",    "scope": "my_integration",    "updated_at": "2021-08-31T04:40:17Z",    "zendesk_account_id": 22  }}
400 Bad Request
// Status 400 Bad Request
{  "errors": [    {      "code": "1100",      "detail": "Bad Request",      "status": "400"    }  ]}
401 Unauthorized
// Status 401 Unauthorized
{  "errors": [    {      "code": "1110",      "detail": "Authentication failed",      "status": "401"    }  ]}
422 Unprocessable Entity
// Status 422 Unprocessable Entity
{  "errors": [    {      "code": "1110",      "detail": "Unprocessable entity",      "status": "422"    }  ]}

Update Configuration

  • PUT /api/services/zis/integrations/{integration}/configs/{scope}

Updates the configuration settings for an integration.

Note: The configuration settings provided will completely overwrite the existing configuration.

Authentication

You can authorize requests using a ZIS OAuth access token. A Zendesk app can also authorize requests to this endpoint using an admin's browser session. See Making API requests from a Zendesk app.

Parameters

NameTypeInRequiredDescription
integrationstringPathtrueName of the integration.
scopestringPathtrueName of the scope that the config belongs to. Special characters should be URL encoded in a URL path. Example: "foo/bar" to "foo%2Fbar"

Example body

{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}

Code Samples

cURL
curl -X PUT \'https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs/foo_bar_baz1' \-H "Authorization: Bearer {access_token}" \-H 'Content-Type: application/json' \-d '{"Config": {"enable_comment_sync": "false"} }'
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope"	method := "PUT"	payload := strings.NewReader(`{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}`)	req, err := http.NewRequest(method, url, payload)
	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://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"config\": {    \"description\": \"A config object can be anything, this is an example.\",    \"id\": 999,    \"name\": \"my_config\"  }}""");
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 data = JSON.stringify({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }});
var config = {  method: 'PUT',  url: 'https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope',  headers: {	'Content-Type': 'application/json',  },  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/services/zis/integrations/my_integration/configs/my_scope"
payload = json.loads("""{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}""")headers = {	"Content-Type": "application/json",}
response = requests.request(	"PUT",	url,	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")request = Net::HTTP::Put.new(uri, "Content-Type": "application/json")request.body = %q({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }})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
{  "config": {    "config": {      "description": "A config object can be anything, this is an example.",      "id": 999,      "name": "my_config"    },    "created_at": "2021-08-30T04:40:17Z",    "id": 1,    "integration": "my_integration",    "scope": "my_integration",    "updated_at": "2021-08-31T04:40:17Z",    "zendesk_account_id": 22  }}
400 Bad Request
// Status 400 Bad Request
{  "errors": [    {      "code": "1100",      "detail": "Bad Request",      "status": "400"    }  ]}
401 Unauthorized
// Status 401 Unauthorized
{  "errors": [    {      "code": "1110",      "detail": "Authentication failed",      "status": "401"    }  ]}
422 Unprocessable Entity
// Status 422 Unprocessable Entity
{  "errors": [    {      "code": "1110",      "detail": "Unprocessable entity",      "status": "422"    }  ]}

Merge Configuration

  • PATCH /api/services/zis/integrations/{integration}/configs/{scope}

Merges the provided configuration settings with the existing configuration.

Authentication

You can authorize requests using a ZIS OAuth access token. A Zendesk app can also authorize requests to this endpoint using an admin's browser session. See Making API requests from a Zendesk app.

Parameters

NameTypeInRequiredDescription
integrationstringPathtrueName of the integration.
scopestringPathtrueName of the scope that the config belongs to. Special characters should be URL encoded in a URL path. Example: "foo/bar" to "foo%2Fbar"

Example body

{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}

Code Samples

cURL
curl -X PATCH \'https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs/foo_bar_baz1' \-H "Authorization: Bearer {access_token}" \-H 'Content-Type: application/json' \-d '{"Config": {"enable_comment_sync": "false"} }'
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope"	method := "PATCH"	payload := strings.NewReader(`{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}`)	req, err := http.NewRequest(method, url, payload)
	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://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"config\": {    \"description\": \"A config object can be anything, this is an example.\",    \"id\": 999,    \"name\": \"my_config\"  }}""");
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("PATCH", body)		.addHeader("Content-Type", "application/json")		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');var data = JSON.stringify({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }});
var config = {  method: 'PATCH',  url: 'https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope',  headers: {	'Content-Type': 'application/json',  },  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/services/zis/integrations/my_integration/configs/my_scope"
payload = json.loads("""{  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }}""")headers = {	"Content-Type": "application/json",}
response = requests.request(	"PATCH",	url,	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")request = Net::HTTP::Patch.new(uri, "Content-Type": "application/json")request.body = %q({  "config": {    "description": "A config object can be anything, this is an example.",    "id": 999,    "name": "my_config"  }})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
{  "config": {    "config": {      "description": "A config object can be anything, this is an example.",      "id": 999,      "name": "my_config"    },    "created_at": "2021-08-30T04:40:17Z",    "id": 1,    "integration": "my_integration",    "scope": "my_integration",    "updated_at": "2021-08-31T04:40:17Z",    "zendesk_account_id": 22  }}
400 Bad Request
// Status 400 Bad Request
{  "errors": [    {      "code": "1100",      "detail": "Bad Request",      "status": "400"    }  ]}
422 Unprocessable Entity
// Status 422 Unprocessable Entity
{  "errors": [    {      "code": "1110",      "detail": "Unprocessable entity",      "status": "422"    }  ]}

Delete Configuration

  • DELETE /api/services/zis/integrations/{integration}/configs/{scope}

Deletes the existing configuration settings.

Authentication

You can authorize requests using a ZIS OAuth access token. A Zendesk app can also authorize requests to this endpoint using an admin's browser session. See Making API requests from a Zendesk app.

Parameters

NameTypeInRequiredDescription
integrationstringPathtrueName of the integration.
scopestringPathtrueName of the scope that the config belongs to. Special characters should be URL encoded in a URL path. Example: "foo/bar" to "foo%2Fbar"

Code Samples

cURL
curl -X DELETE "https://{subdomain}.zendesk.com/api/services/zis/integrations/{integration}/configs/my_scope" \-H "Authorization: Bearer {access_token}"
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope"	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://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")		.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://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope',  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://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope"headers = {	"Content-Type": "application/json",}
response = requests.request(	"DELETE",	url,	headers=headers)
print(response.text)
Ruby
require "net/http"uri = URI("https://support.zendesk.com/api/services/zis/integrations/my_integration/configs/my_scope")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
400 Bad Request
// Status 400 Bad Request
{  "errors": [    {      "code": "1100",      "detail": "Bad Request",      "status": "400"    }  ]}
401 Unauthorized
// Status 401 Unauthorized
{  "errors": [    {      "code": "1110",      "detail": "Authentication failed",      "status": "401"    }  ]}
404 Not Found
// Status 404 Not Found
{  "errors": [    {      "code": "1110",      "detail": "Not Found",      "status": "404"    }  ]}