Asset fields are the schema for each asset type. There are standard asset fields, which are predefined by Zendesk and custom that are defined by users. These fields represent properties of the asset type that you want to capture and maintain when agents create and manage assets.

An asset record consists of the standard asset fields, asset type custom fields, and asset type custom fields that are inherited from parent asset types.

JSON format

ITAM Asset Fields are represented as JSON objects with the following properties:

NameTypeRead-onlyMandatoryDescription

List Asset Fields

  • GET /api/v2/it_asset_management/asset_types/{asset_type_id}/fields

Lists all standard and custom fields for an asset type.

Allowed For

  • Agents

Parameters

NameTypeInRequiredDescription
asset_type_idstringPathtrueThe id of the asset type

Code Samples

Curl
curl --request GET https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields \--header "Content-Type: application/json" \-u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields"	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Get asset fields
curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/asset_types/{asset_type_id}/fields \  -H "Authorization: Bearer {access_token}"

Example response(s)

200 OK
// Status 200 OK
{  "fields": [    {      "active": true,      "created_at": "2025-10-22T21:08:45Z",      "description": "IMEI",      "id": 9230426027902,      "key": "imei",      "position": 9999,      "raw_description": "{{zd.itam_mobile_field_imei}}",      "raw_title": "{{zd.itam_mobile_field_imei}}",      "regexp_for_validation": null,      "system": false,      "title": "IMEI",      "type": "text",      "updated_at": "2025-10-22T21:08:45Z",      "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/asset_types/01K86W1EC23VPWFVR2XJVK7HED/fields/9230426027902"    },    {      "active": true,      "created_at": "2025-10-22T21:08:45Z",      "description": "Phone number",      "id": 9230441335166,      "key": "phone_number",      "position": 9999,      "raw_description": "{{zd.itam_mobile_field_phone_number}}",      "raw_title": "{{zd.itam_mobile_field_phone_number}}",      "regexp_for_validation": null,      "system": false,      "title": "Phone number",      "type": "text",      "updated_at": "2025-10-22T21:08:45Z",      "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/asset_types/01K86W1EC23VPWFVR2XJVK7HED/fields/9230441335166"    }  ]}

Show Asset Field

  • GET /api/v2/it_asset_management/asset_types/{asset_type_id}/fields/{asset_type_field_id}

Returns an asset field with the specified id.

Allowed For

  • Agents

Parameters

NameTypeInRequiredDescription
asset_type_field_idintegerPathtrueThe id of the asset field
asset_type_idstringPathtrueThe id of the asset type

Code Samples

Curl
curl --request GET https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902 \--header "Content-Type: application/json" \-u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902"	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/asset_types/01K9AMAY0ST7VTVSG7SDAMR4P1/fields/9230426027902")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Get asset field by id
curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/asset_types/{asset_type_id}/fields/{asset_type_field_id} \  -H "Authorization: Bearer {access_token}"

Example response(s)

200 OK
// Status 200 OK
{  "field": {    "active": true,    "created_at": "2025-10-22T21:08:45Z",    "description": "IMEI",    "id": 9230426027902,    "key": "imei",    "position": 9999,    "raw_description": "{{zd.itam_mobile_field_imei}}",    "raw_title": "{{zd.itam_mobile_field_imei}}",    "regexp_for_validation": null,    "system": false,    "title": "IMEI",    "type": "text",    "updated_at": "2025-10-22T21:08:45Z",    "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027902"  }}

List Fields

  • GET /api/v2/it_asset_management/fields

Lists all asset fields.

Pagination

Allowed For

  • Agents

Parameters

NameTypeInRequiredDescription
pageobjectQueryfalseCursor-based pagination parameters (JSON:API style). Supports nested parameters: - page[size] - Number of records per page (default varies by endpoint, typically 100) - page[after] - Cursor token to fetch records after this position - page[before] - Cursor token to fetch records before this position Example: ?page[size]=50&page[after]=eyJvIjoiaWQiLCJ2IjoiYVFFPSJ9

Code Samples

Curl
curl --request GET https://example.zendesk.com/api/v2/it_asset_management/fields?page= \--header "Content-Type: application/json" \-u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/fields?page="	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/fields")		.newBuilder()		.addQueryParameter("page", "");String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/it_asset_management/fields',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },  params: {    'page': '',  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/fields?page="headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/fields")uri.query = URI.encode_www_form("page": "")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Get fields
curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields \  -H "Authorization: Bearer {access_token}"

Example response(s)

200 OK
// Status 200 OK
{  "fields": [    {      "active": true,      "created_at": "2025-10-22T21:08:45Z",      "description": "IMEI",      "id": 9230426027902,      "key": "imei",      "position": 9999,      "raw_description": "{{zd.itam_mobile_field_imei}}",      "raw_title": "{{zd.itam_mobile_field_imei}}",      "regexp_for_validation": null,      "system": false,      "title": "IMEI",      "type": "text",      "updated_at": "2025-10-22T21:08:45Z",      "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027902"    },    {      "active": true,      "created_at": "2025-10-22T21:08:45Z",      "description": "Serial Number",      "id": 9230426027903,      "key": "serial_number",      "position": 9999,      "raw_description": "{{zd.itam_hardware_field_serial_number}}",      "raw_title": "{{zd.itam_hardware_field_serial_number}}",      "regexp_for_validation": null,      "system": false,      "title": "Serial Number",      "type": "text",      "updated_at": "2025-10-22T21:08:45Z",      "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027903"    }  ],  "links": {    "next": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields?page[after]=eyJvIjoiaWQiLCJ2IjoiYVlFQkFQVXFvQlFBIn0=",    "prev": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields?page[before]=eyJvIjoiaWQiLCJ2IjoiYVFFQkFQVXFvQlFBIn0="  },  "meta": {    "after_cursor": "eyJvIjoiaWQiLCJ2IjoiYVlFQkFQVXFvQlFBIn0=",    "before_cursor": "eyJvIjoiaWQiLCJ2IjoiYVFFQkFQVXFvQlFBIn0=",    "has_more": true  }}

Create Field

  • POST /api/v2/it_asset_management/fields

Creates an asset field.

Allowed For

  • Admins

Example body

{  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }}

Code Samples

Curl
curl --request POST https://example.zendesk.com/api/v2/it_asset_management/fields \--header "Content-Type: application/json" \-u {email_address}/token:{api_token} \--data-raw '{  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }}'
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/fields"	method := "POST"	payload := strings.NewReader(`{  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }}`)	req, err := http.NewRequest(method, url, payload)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/fields")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"asset_type_ids\": \"all\",  \"field\": {    \"key\": \"partner\",    \"position\": 3,    \"title\": \"Asset Partner\",    \"type\": \"text\"  }}""");String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("POST", body)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');var data = JSON.stringify({  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }});
var config = {  method: 'POST',  url: 'https://example.zendesk.com/api/v2/it_asset_management/fields',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },  data : data,};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsimport jsonfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/fields"
payload = json.loads("""{  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }}""")headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"POST",	url,	auth=auth,	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/fields")request = Net::HTTP::Post.new(uri, "Content-Type": "application/json")request.body = %q({  "asset_type_ids": "all",  "field": {    "key": "partner",    "position": 3,    "title": "Asset Partner",    "type": "text"  }})email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Create field

For clarity, the example places the JSON in a separate file and imports it into the cURL statement. This example applies the field to every asset type by passing "all" for asset_type_ids.

my_field.json

{  "field": {    "type": "text",    "key": "partner",    "title": "Asset Partner",    "position": 3  },  "asset_type_ids": "all"}

curl - Create field snippet

curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields \  -d @my_field.json \  -H "Content-Type: application/json" -H "Authorization: Bearer {access_token}" -X POST

Example response(s)

201 Created
// Status 201 Created
{  "field": {    "active": true,    "created_at": "2025-10-22T21:08:45Z",    "description": "IMEI",    "id": 9230426027902,    "key": "imei",    "position": 9999,    "raw_description": "{{zd.itam_mobile_field_imei}}",    "raw_title": "{{zd.itam_mobile_field_imei}}",    "regexp_for_validation": null,    "system": false,    "title": "IMEI",    "type": "text",    "updated_at": "2025-10-22T21:08:45Z",    "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027902"  }}

Show Field

  • GET /api/v2/it_asset_management/fields/{id}

Shows an asset field.

Allowed For

  • Agents

Parameters

NameTypeInRequiredDescription
idintegerPathtrueThe ID of the asset field

Code Samples

Curl
curl --request GET https://example.zendesk.com/api/v2/it_asset_management/fields/123 \--header "Content-Type: application/json" \-u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/fields/123"	method := "GET"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/fields/123")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("GET", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'GET',  url: 'https://example.zendesk.com/api/v2/it_asset_management/fields/123',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/fields/123"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"GET",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/fields/123")request = Net::HTTP::Get.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Show field
curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/{id} \  -H "Authorization: Bearer {access_token}"

Example response(s)

200 OK
// Status 200 OK
{  "field": {    "active": true,    "created_at": "2025-10-22T21:08:45Z",    "description": "IMEI",    "id": 9230426027902,    "key": "imei",    "position": 9999,    "raw_description": "{{zd.itam_mobile_field_imei}}",    "raw_title": "{{zd.itam_mobile_field_imei}}",    "regexp_for_validation": null,    "system": false,    "title": "IMEI",    "type": "text",    "updated_at": "2025-10-22T21:08:45Z",    "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027902"  }}

Update Field

  • PATCH /api/v2/it_asset_management/fields/{id}

Updates an asset field.

Allowed For

  • Admins

Parameters

NameTypeInRequiredDescription
idintegerPathtrueThe ID of the asset field

Example body

{  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }}

Code Samples

Curl
curl --request PATCH https://example.zendesk.com/api/v2/it_asset_management/fields/123 \--header "Content-Type: application/json" \-u {email_address}/token:{api_token} \--data-raw '{  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }}'
Go
import (	"fmt"	"io"	"net/http"	"strings")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/fields/123"	method := "PATCH"	payload := strings.NewReader(`{  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }}`)	req, err := http.NewRequest(method, url, payload)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/fields/123")		.newBuilder();RequestBody body = RequestBody.create(MediaType.parse("application/json"),		"""{  \"asset_type_ids\": \"none\",  \"field\": {    \"key\": \"partner\",    \"title\": \"Asset Partner\",    \"type\": \"text\"  }}""");String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("PATCH", body)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');var data = JSON.stringify({  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }});
var config = {  method: 'PATCH',  url: 'https://example.zendesk.com/api/v2/it_asset_management/fields/123',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },  data : data,};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsimport jsonfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/fields/123"
payload = json.loads("""{  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }}""")headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"PATCH",	url,	auth=auth,	headers=headers,	json=payload)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/fields/123")request = Net::HTTP::Patch.new(uri, "Content-Type": "application/json")request.body = %q({  "asset_type_ids": "none",  "field": {    "key": "partner",    "title": "Asset Partner",    "type": "text"  }})email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Update field

For clarity, the example places the JSON in a separate file and imports it into the cURL statement

updated_field.json

{  "field": {    "title": "Asset Partner"  },  "asset_type_ids": "none"}

curl - Update field snippet

curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/{id} \  -d @updated_field.json \  -H "Content-Type: application/json" -X PATCH \  -H "Authorization: Bearer {access_token}"

Example response(s)

200 OK
// Status 200 OK
{  "field": {    "active": true,    "created_at": "2025-10-22T21:08:45Z",    "description": "IMEI",    "id": 9230426027902,    "key": "imei",    "position": 9999,    "raw_description": "{{zd.itam_mobile_field_imei}}",    "raw_title": "{{zd.itam_mobile_field_imei}}",    "regexp_for_validation": null,    "system": false,    "title": "IMEI",    "type": "text",    "updated_at": "2025-10-22T21:08:45Z",    "url": "https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/9230426027902"  }}
422 Unprocessable Entity
// Status 422 Unprocessable Entity
{  "error": "Cannot set required to false on field 'standard::name' because it is always required"}

Delete Field

  • DELETE /api/v2/it_asset_management/fields/{id}

Deletes an asset field.

Allowed For

  • Admins

Parameters

NameTypeInRequiredDescription
idintegerPathtrueThe ID of the asset field

Code Samples

Curl
curl --request DELETE https://example.zendesk.com/api/v2/it_asset_management/fields/123 \--header "Content-Type: application/json" \-u {email_address}/token:{api_token}
Go
import (	"fmt"	"io"	"net/http")
func main() {	url := "https://example.zendesk.com/api/v2/it_asset_management/fields/123"	method := "DELETE"	req, err := http.NewRequest(method, url, nil)
	if err != nil {		fmt.Println(err)		return	}	req.Header.Add("Content-Type", "application/json")	req.Header.Add("Authorization", "Basic <auth-value>") // Base64 encoded "{email_address}/token:{api_token}"
	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://example.zendesk.com/api/v2/it_asset_management/fields/123")		.newBuilder();String userCredentials = "your_email_address" + "/token:" + "your_api_token";String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Request request = new Request.Builder()		.url(urlBuilder.build())		.method("DELETE", null)		.addHeader("Content-Type", "application/json")		.addHeader("Authorization", basicAuth)		.build();Response response = client.newCall(request).execute();
Nodejs
var axios = require('axios');
var config = {  method: 'DELETE',  url: 'https://example.zendesk.com/api/v2/it_asset_management/fields/123',  headers: {	'Content-Type': 'application/json',	'Authorization': 'Basic <auth-value>', // Base64 encoded "{email_address}/token:{api_token}"  },};
axios(config).then(function (response) {  console.log(JSON.stringify(response.data));}).catch(function (error) {  console.log(error);});
Python
import requestsfrom requests.auth import HTTPBasicAuth
url = "https://example.zendesk.com/api/v2/it_asset_management/fields/123"headers = {	"Content-Type": "application/json",}email_address = 'your_email_address'api_token = 'your_api_token'# Use basic authenticationauth = HTTPBasicAuth(f'{email_address}/token', api_token)
response = requests.request(	"DELETE",	url,	auth=auth,	headers=headers)
print(response.text)
Ruby
require "net/http"require "base64"uri = URI("https://example.zendesk.com/api/v2/it_asset_management/fields/123")request = Net::HTTP::Delete.new(uri, "Content-Type": "application/json")email = "your_email_address"api_token = "your_api_token"credentials = "#{email}/token:#{api_token}"encoded_credentials = Base64.strict_encode64(credentials)request["Authorization"] = "Basic #{encoded_credentials}"response = Net::HTTP.start uri.hostname, uri.port, use_ssl: true do |http|	http.request(request)end
curl - Delete field
curl https://{subdomain}.zendesk.com/api/v2/it_asset_management/fields/{id} \  -X DELETE \  -H "Authorization: Bearer {access_token}"

Example response(s)

204 No Content
// Status 204 No Content
null
422 Unprocessable Entity
// Status 422 Unprocessable Entity
{  "error": "Cannot delete field 'partner' because it is still associated with asset types: 01K9BT5X0115ZVH1X6T37WYMTE"}