Configs
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:
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:
Name | Type | Read-only | Mandatory | Description |
---|---|---|---|---|
config | object | false | false | The Config JSON object. Other properties are metadata |
created_at | string | true | false | The date and time the Config was created |
id | integer | true | false | The unique ID of the Config |
integration | string | true | false | Name of the integration that the Config belongs to |
scope | string | false | false | Name of the scope that the Config belongs to |
updated_at | string | true | false | The date and time the Config was last updated |
zendesk_account_id | integer | true | false | The 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
Name | Type | In | Required | Description |
---|---|---|---|---|
filter[scope] | string | Query | true | The integration scope the configuration belongs to |
page[after] | integer | Query | false | Specifies the start of the page returned |
page[size] | integer | Query | false | The number of configurations to return. Returns a maximum of 100 records per page |
integration | string | Path | true | Name 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
Name | Type | In | Required | Description |
---|---|---|---|---|
integration | string | Path | true | Name 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 requests
import 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
Name | Type | In | Required | Description |
---|---|---|---|---|
integration | string | Path | true | Name of the integration. |
scope | string | Path | true | Name 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 requests
import 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
Name | Type | In | Required | Description |
---|---|---|---|---|
integration | string | Path | true | Name of the integration. |
scope | string | Path | true | Name 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 requests
import 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
Name | Type | In | Required | Description |
---|---|---|---|---|
integration | string | Path | true | Name of the integration. |
scope | string | Path | true | Name 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"
}
]
}