The HoldingsIQ service retrieves vendor, package and title related information in JSON format. The service automates the managing of holdings data from different sources.





Create and Label Custom Fields Code Samples

Use the code samples below as examples to create an application in your desired language.  The following code samples use the /{custid}/ endpoint which allows you to create and label up to five custom fields for your Title Details.  Get started and begin to understand the endpoint by following the examples below in the language of your choice. 


Code Samples


curl -X PUT --header 'Content-Type: application/json' --header \
'Accept: application/json' --header 'x-api-key: APIKEY' -d \
  "proxy": {
    "id": "MJproxy"
  "labels": [
      "id": "1",
      "displayLabel": "this label is UDF1",
      "displayOnFullTextFinder": false,
      "displayOnPublicationFinder": true
}' \


String PATH = "";
// Construct the client
OkHttpClient client = new OkHttpClient();

// Create the URL
HttpUrl url = new HttpUrl.Builder()

// Build the body   
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n  \"proxy\": {\r\n    \"id\": \"EZ_proxy\"\r\n  },\r\n  \"labels\": [\r\n    {\r\n      \"id\": \"1\",\r\n      \"displayLabel\": \"this label is UDF1\",\r\n      \"displayOnFullTextFinder\": false,\r\n      \"displayOnPublicationFinder\": true\r\n    }\r\n  ]\r\n}");     

// Build the request
Request request = new Request.Builder()
    .addHeader("accept", "application/json")
    .addHeader("content-type", "application/json")
    .addHeader("x-api-key", APIKEY)

// Send the request
Response response = client.newCall(request).execute();


var host = "";
var path = "/";

// Create the Request
var urlstr = host + CUSTID + path;
var settings = {
  "async": true,
  "crossDomain": true,
  "url": urlstr,
  "method": "PUT",
  "processData": false,
  "data": "{\r\n  \"proxy\": {\r\n    \"id\": \"EZ_Proxy\"\r\n  },\r\n  \"labels\": [\r\n    {\r\n      \"id\": \"1\",\r\n      \"displayLabel\": \"this label is UDF1\",\r\n      \"displayOnFullTextFinder\": false,\r\n      \"displayOnPublicationFinder\": true\r\n    }\r\n  ]\r\n}",
  "headers": {
    "content-type": "application/json",
    "x-api-key": "APIKEY",
    "accept": "application/json"

// Send the Request
$.ajax(settings).done(function (response) {


# Form the URL 
urlstr = File.join('https://', '', 'rm/rmaccounts', CUSTID, '/')
url = URI(urlstr)

# Create the HTTP object
http =, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

# Create the request
request =
request["accept"] = 'application/json'
request["x-api-key"] = APIKEY
request["content-type"] = 'application/json'
request.body = "{\r\n  \"proxy\": {\r\n    \"id\": \"EZ_proxy\"\r\n  },\r\n  \"labels\": [\r\n    {\r\n      \"id\": \"1\",\r\n      \"displayLabel\": \"this label is UDF1\",\r\n      \"displayOnFullTextFinder\": false,\r\n      \"displayOnPublicationFinder\": true\r\n    }\r\n  ]\r\n}"

# Send the request
response = http.request(request)


# Form the URL
url = ''.join(['/rm','/rmaccounts/', CUSTID, '/'])

# Create Connection Instance
conn = http.client.HTTPSConnection("")

# Payload
payload = "{\r\n  \"proxy\": {\r\n    \"id\": \"EZ_proxy\"\r\n  },\r\n  \"labels\": [\r\n    {\r\n      \"id\": \"1\",\r\n      \"displayLabel\": \"this label is UDF1\",\r\n      \"displayOnFullTextFinder\": false,\r\n      \"displayOnPublicationFinder\": true\r\n    }\r\n  ]\r\n}"

# Create the Request Headers
headers = {
    'accept': "application/json",
    'x-api-key': APIKEY,
    'content-type': "application/json"  

# Send Request  
conn.request("PUT", url, payload, headers)