List API

View Documentation
Description

The List API allows users to access and modify the lists within a customer's Platform.

API Examples

Get full set of lists for a Platform

This endpoint retrieves a full set of available lists within a Platform.

URL:   https://api.icims.com/customers/{customerID}/v2/lists

Action Definition
Get:

Example Request Payload:

GET /customers/2740/v2/lists HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload:

{
  "lists": [
    "lists.notes.rejection",
    "lists.phone_type",
    "lists.address_type",
    "lists.position_level",
    "lists.error",
    "lists.job.folders",
    "lists.job.position_type",
    "lists.job.job_type",
    "lists.eeo_category.job",
    "lists.visa.job",
    "lists.job.hire_type",
    "lists.job.priority",
    "lists.company.folders",
    "lists.company.sources",
    "lists.contact.category",
    "lists.person.folders",
    "lists.person.avail_status",
    "lists.person.qualification",
    "lists.person.visa",
    "lists.client_group",
    "lists.client.priority",
    "lists.person.userlists",
    "lists.eeo.age",
    "lists.eeo.disability",
    "lists.eeo.gender",
    "lists.eeo.nationality",
    "lists.eeo.race",
    "lists.eeo.religion",
    "lists.eeo.veteran",
    "lists.client.sources",
    "lists.sourcechannels",
    "lists.sources",
    "lists.country",
    "lists.compensation.types",
    "lists.currency.types",
    "lists.expense.category",
    "lists.file.extensions",
    "lists.position",
    "lists.industry",
    "lists.skills",
    "lists.customfields_lists"
  ]
}

 

 

Get a specific standard list

This endpoint retrieves nodes within a specified list.

To facilitate larger lists, one level of a list is returned at a time, and each individual level is paged. Only the immediate children of a particular node are returned for a single request. The number of children returned in a single request can be controlled via the size parameter, up to the default maximum of 1000.

Any children nodes returned will not have their children embedded in the response. Subsequent calls would need to be made to retrieve additional levels in the list. To aid in this navigation, links are included in the json under the key '_links'.

URL:   https://api.icims.com/customers/{customerID}/v2/lists/{listID}

Action Definition
Get:

Example Request Payload:

GET /customers/2740/v2/lists/lists.country HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload (truncated):

{

    "children": [

        {

            "abv2": "US",

            "abv3": "USA",

            "hidden": false,

            "iso": 840,

            "_links": {

                "self": {

                    "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/D41001?size=50"

                }

            },

            "id": "D41001",

            "listnodeid": "12781",

            "value": "United States"

        },

        {

            "abv2": "AF",

            "abv3": "AFG",

            "hidden": false,

            "iso": 4,

            "_links": {

                "self": {

                    "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/D41002?size=50"

                }

            },

            "id": "D41002",

            "listnodeid": "12836",

            "value": "Afghanistan"

        },

        {

            "abv2": "AX",

            "abv3": "ALA",

            "hidden": false,

            "iso": 248,

            "_links": {

                "self": {

                    "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/D41003?size=50"

                }

            },

            "id": "D41003",

            "listnodeid": "12837",

            "value": "Åland Islands"

        },

        {

            "abv2": "AL",

            "abv3": "ALB",

            "hidden": false,

            "iso": 8,

            "_links": {

                "self": {

                    "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/D41004?size=50"

                }

            },

            "id": "D41004",

            "listnodeid": "12838",

            "value": "Albania"

        }

 

 

Get a specific custom list

This endpoint retrieves nodes within a specified custom list.

Note: Custom lists do not have specific list IDs. To get a specific custom list, the node ID for the list itself must be used. To retrieve details for all custom lists within a system, use GET /lists/lists.customfields_lists/

To facilitate larger lists, one level of a list is returned at a time, and each individual level is paged. Only the immediate children of a particular node are returned for a single request. The number of children returned in a single request can be controlled via the size parameter, up to the default maximum of 1000.

Any children nodes returned will not have their children embedded in the response. Subsequent calls would need to be made to retrieve additional levels in the list. To aid in this navigation, links are included in the json under the key '_links'.

URL:   https://api.icims.com/customers/{customerID}/lists/lists.customfields_lists/node/{listNodeId}

ListNodeId

"C" + value of "listnodeid", e.g. "C12345"

Action Definition
Get:

Example Request Payload:

GET /customers/2740/lists/lists.customfields_lists/node/C26541 HTTP/1.1
Host: api.icims.com
Authorization: Basic YXBpdGVzdDpUZXN0ZXIyMg==
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload (truncated):

{

    "hidden": false,

    "children": [

        {

            "hidden": false,

            "id": "C26542",

            "listnodeid": "26542",

            "value": "Custom value 1"

        },

        {

            "hidden": false,

            "id": "C26548",

            "listnodeid": "26548",

            "value": "Custom value 2"

        },

        {

            "hidden": false,

            "id": "C26549",

            "listnodeid": "26549",

            "value": "Custom value 3"

        },

        {

            "hidden": false,

            "id": "C26550",

            "listnodeid": "26550",

            "value": "Custom value 4"

        },

        {

            "hidden": false,

            "id": "C26551",

            "listnodeid": "26551",

            "value": "Custom value 5"

        }

    ],



    "id": "C26541",

    "listnodeid": "26541",

    "value": "Custom List Name"

}

 

 

Get a specific node within a list

This endpoint is used to retrieve information about a specific node within a list and its first level of children nodes, if applicable. The number of children nodes returned in a single request can be set using the "size" parameter.

When requesting a specific node within a multi-level list, the full path must be included in the URL. For example, to retrieve information about a second level node, the URL would be https://api.icims.com/customers/{customerID}/v2/lists/{listID}/{firstNodeId}/{secondNodeId}, where the firstNodeID corresponds to a parent node in the first level of the requested list, and the secondNodeID is a second level node that is a child of the first node. This pattern is dynamic, so any depth of a list can be requested with this format. URLs without a full path are not valid and will return an error.

The children nodes being returned will not have their children embedded in the response. Instead, the API user would need to make subsequent calls to retrieve additional levels in the list. To aid in this navigation, there are links included in the JSON under the key '_links'.

The top-level node will always have a 'self' link. If the node has at least one child, it will also have 'first' and 'last' page links. If the current page being requested is greater than 1, a 'prev' link will be provided. If there are any remaining pages for the current level, a 'next' link will be provided

URL:   https://api.icims.com/customers/{customerID}/v2/lists/{listID}/{firstNodeID}

ListNodeID

"C" + value of "listnodeid", e.g. "C12345"

Action Definition
Get:

Example Request Payload:

GET /customers/2740/v2/lists/lists.country/C12781?size=3 HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload:


{

  "abv2": "US",

  "abv3": "USA",

  "hidden": false,

  "iso": 840,

  "children": [

    {

      "abv2": "AL",

      "hidden": false,

      "_links": {

        "self": {

          "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781/D41001001?size=3"

        }

      },

      "id": "D41001001",

      "listnodeid": "12782",

      "value": "Alabama"

    },

    {

      "abv2": "AK",

      "hidden": false,

      "_links": {

        "self": {

          "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781/D41001002?size=3"

        }

      },

      "id": "D41001002",

      "listnodeid": "12783",

      "value": "Alaska"

    },

    {

      "abv2": "AZ",

      "hidden": false,

      "_links": {

        "self": {

          "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781/D41001003?size=3"

        }

      },

      "id": "D41001003",

      "listnodeid": "12784",

      "value": "Arizona"

    }

  ],

  "_links": {

    "next": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781?size=3&page=2"

    },

    "last": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781?size=3&page=18"

    },

    "self": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781?size=3"

    },

    "first": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.country/C12781?size=3"

    }

  },

  "id": "D41001",

  "listnodeid": "12781",

  "value": "United States"

}

Note: The node’s System ID can be used instead of the List Node ID; the System ID value must begin with "D". The example above would use /node/D51002 for the same node using the System ID. Custom list values will not have a System ID, so using the List Node ID is more reliable.

Errors:

The entire path listed in the URL must be valid. If this path is not valid for any reason, a 404 will be returned. Some possible causes of the error could be:

  • The requested node ID does not correspond to the requested list.
  • The requested node ID does not represent any node in any list.
  • The sequence of the URL path is invalid (ie. a node ID in the path is not a direct child of the previous ID or a parent ID is missing from the path)

 

Get a specific list or list node for a specific user group

Users can retrieve a specific list for a specific user group, meaning that they will view attributes as they affect that user group. For example, if a node is hidden for the specified user group, its hidden attribute will be returned as true. Note that the user group ID must be the Integration Name for that user group.

Similarly, users can use the endpoint /{firstNodeID} (e.g. the example displayed above in "Get a specific node within a list") with the user group parameter to retrieve information about a specific list node item for that specific user group. The path rules for the /{firstNodeID} endpoint as seen above apply. 

URL:   https://api.icims.com/customers/{customerID}/v2/lists/{listID}?usergroup={groupId}

Action Definition
Get:

Example Request Payload:

GET /customers/2740/v2/lists/lists.eeo.gender?usergroup=hiringmanager HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload:

{

  "children": [

    {

      "hidden": false,

      "exportAs": "",

      "_links": {

        "self": {

          "href": "https://api.icims.com/customers/2740/v2/lists/lists.eeo.gender/D51001?size=50"

        }

      },

      "id": "D51001",

      "listnodeid": "14044",

      "value": "Male"

    },

    {

      "hidden": false,

      "exportAs": "",

      "_links": {

        "self": {

          "href": "https://api.icims.com/customers/2740/v2/lists/lists.eeo.gender/D51002?size=50"

        }

      },

      "id": "D51002",

      "listnodeid": "14045",

      "value": "Female"

    }

  ],

  "_links": {

    "last": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.eeo.gender?size=50"

    },

    "self": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.eeo.gender?size=50"

    },

    "first": {

      "href": "https://api.icims.com/customers/2740/v2/lists/lists.eeo.gender?size=50"

    }

  }

}

 

 

Update one or more list nodes

A user can execute a PATCH request on an entire list (this example) or a single node within a list (the "Update a specific list node" example below). Executing a PATCH request for the entire list is preferable if you would want to execute certain changes for every object in the list.

Note that the payload for a PATCH request on an entire list must be the entire list as a JSON object, meaning that it must include both values which are NOT being altered as well as those that ARE being altered.

A PATCH request may also be executed for a specific user group. The URL for this specific request is formed in the same manner as the URL for GET requests; see the "Get a specific list or list node for a specific user group" example (above).

URL:   https://api.icims.com/customers/{customerID}/lists/{listID}

Action Definition
Patch:

Example Request Payload:

Note: In the example below, the hidden attribute for both nodes is set to true.

PATCH /customers/2740/lists/lists.eeo.gender HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    "children": [{
        "hidden": true,
        "exportAs": "",
        "id": "D51001",
        "listnodeid": "14044",
        "value": "Male"
    }, {
        "hidden": true,
        "exportAs": "",
        "id": "D51002",
        "listnodeid": "14045",
        "value": "Female"
    }]
}

The Response Payload for a successful patch will include both an HTTP 200 response as well as the entire updated list.

 

Update a specific list node

A user can execute a PATCH request on an entire list (the "Update one or more list nodes" example above) or a single node within a list (this example). PATCH Requests for specific list node items do not require the entire node item to be returned. The payload can be only a single attribute, more multiple attributes for a list node item.

Note: It is also possible to pass a null value for an attribute (e.g., {"hidden":null}); doing do will reset that attribute to its default value.

URL:   https://api.icims.com/customers/{customerID}/lists/{listID}/node/{listNodeId}

Action Definition
Patch:

Example Request Payload:

Note: In the example below, the node C14044 is set to hidden and its label is changed to "newName." Note that only the affected node attributes are passed along in the request. 

PATCH /customers/2740/lists/lists.eeo.gender/node/C14044 HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    “hidden”:true,
    “value”:”newName”
}

Example Response:

No payload will be returned if post is successful. HTTP 204 response will be provided.

 

Add a new node to a list

POST requests allow users to add items to a list. The payload is a JSON object that must contain a value for each attribute in the list; a blank value may be provided for any non-required attribute, but the attribute must be present in the object. Attributes for a list item can be retrieved via the UI, or from attempting to pass a blank JSON object via the POST request.

Note:

  • Note that for options within dropdown attributes in a list item, the user must know the value to be passed in.
  • List Node ID’s will be assigned automatically after the node is successfully created. The node ID is returned in the location header that is returned as a response to the POST call.
  • List node items cannot be deleted. They can only be marked as hidden.

URL:   https://api.icims.com/customers/{customerID}/lists/{listID}/node

Action Definition
Post:

Example Request Payload:

POST /customers/2740/lists/lists.sources/node HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
  "ccc_canshow": false,
  "textsourcename": false,
  "hidden": false,
  "value": "jobs (new)"
}

Example Response Payload:

No payload will be returned in response if post is successful.

HTTP 201 and location header whose value is a self URL link with the newly-created ListNodeID will be provided (e.g., Location: https://api.icims.com/customers/{customerID}/lists/{listID)/node/{listNodeID} if successful.

 

Add a new child node to an existing list node

POST requests can also be done to create “child” nodes of members of a list.  This is done by adding the path parameter “parentNodeId” to the basic POST URL (shown for the "Add a new node to a list" example above).

URL:   https://api.icims.com/customers/{customerID}/lists/{listID}/node?parentNodeId={listNodeId}

Action Definition
Post:

Example Request Payload:

POST /customers/2740/lists/lists.customfields_lists/node?parentNodeId=C12793/ HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    "value": "Location 3",
    "hidden": false
}

Example Response Payload:

No payload will be returned in response if post is successful.

HTTP 201 and location header whose value is a self URL link with the newly-created ListNodeID will be provided (e.g., Location: https://api.icims.com/customers/{customerID}/lists/{listID)/node/{listNodeID} if successful.

Job Portal API

View Documentation
Description

The Job Portal API is now available for vendors to use.

Retrieve job details

To retrieve detailed information about a job, utilize the Profiles API

API Examples

Get all jobs posted to a Portal

This endpoint allows a 3rd party to mimic the job posting behavior as observed within iCIMS Career Portals; it will return jobs matching the provided search filter(s). Please refer to the Search API documentation for additional information about the search endpoint’s behavior. Pagination behavior and staleness (result caching) are also documented in the Search API documentation.

URL:   https://api.icims.com/customers/{customerId}/search/portals/{portalIdOrName}

Example Request:

Action Definition
Get:

Example Request:

GET /customers/1769/search/portals/jobs/ HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Cache-Control: no-cache

Example Response Payload:

{
  "searchResults": [
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1709/customer-service-representative/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1709",
      "id": 1709,
      "updatedDate": "2015-09-30 02:07 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1708/administrative-assistant/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1708",
      "id": 1708,
      "updatedDate": "2015-09-30 02:06 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1707/technical-writer/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1707",
      "id": 1707,
      "updatedDate": "2015-09-30 01:41 PM"
    }
  ]
}

Get information about the supported Portal search filters

This get request allows you to get information about the supported portal search filters. It will return the information displayed to the user, as well as the information you can feed back to the Portal job listings endpoint to filter down the results.

The "name" attribute will be the Portal filter name.

The "options" are for dropdowns; the "id" represents the filter value.

This follows the same format as the Search API endpoint; see Search API documentation for more information.

URL:   https://api.icims.com/customers/{customerId}/search/portals/{portalIdOrName}/filters

Example Request:

 

Action Definition
Get:

Example Request:

GET /customers/1769/search/portals/jobs/filters HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Cache-Control: no-cache

Example Response Payload:

{
    "filters": [
        {
            "name": "job.positioncategory",
            "options": [
                {
                    "id": "8713",
                    "value": "Accounting/Finance"
                },
                {
                    "id": "8718",
                    "value": "Administrative/Clerical"
                },
                {
                    "id": "17429",
                    "value": "Architecture and Engineering"
                },
                {
                    "id": "17450",
                    "value": "Arts, Design, Entertainment, Sports and Media"
                },
                {
                    "id": "17473",
                    "value": "Building and Grounds Cleaning and Maintenance"
                },
                {
                    "id": "17422",
                    "value": "Business and Financial Operations"
                },
                {
                    "id": "17438",
                    "value": "Community and Social Services"
                },
                {
                    "id": "17425",
                    "value": "Computer and Mathematics"
                },
                {
                    "id": "17505",
                    "value": "Construction and Extraction"
                },
                {
                    "id": "8721",
                    "value": "Customer Service/Support"
                },
                {
                    "id": "17444",
                    "value": "Education, Training, and Library Occupations"
                },
                {
                    "id": "8723",
                    "value": "Engineering"
                },
                {
                    "id": "17455",
                    "value": "Healthcare Practitioners and Technicians"
                },
                {
                    "id": "8725",
                    "value": "Human Resources"
                },
                {
                    "id": "8730",
                    "value": "Information Technology"
                },
                {
                    "id": "17511",
                    "value": "Installation, Maintenance, and Repair"
                },
                {
                    "id": "8737",
                    "value": "Legal"
                },
                {
                    "id": "17433",
                    "value": "Life, Physical and Social Science"
                },
                {
                    "id": "8739",
                    "value": "Management"
                },
                {
                    "id": "8741",
                    "value": "Marketing"
                }
            ],
            "label": "Category",
            "type": {
                "display": "multiselect",
                "id": 3
            }
        },
        {
            "name": "job.joblocation.companyid",
            "options": [
                {
                    "id": "269",
                    "value": "iCIMS"
                }
            ],
            "label": "Company",
            "type": {
                "display": "freetext",
                "id": 0
            }
        },
        {
            "name": "job.positiontype",
            "options": [
                {
                    "id": "2049",
                    "value": "Regular Full-Time"
                },
                {
                    "id": "2050",
                    "value": "Regular Part-Time"
                },
                {
                    "id": "2051",
                    "value": "Temporary Full-Time"
                },
                {
                    "id": "8709",
                    "value": "Temporary Part-Time"
                },
                {
                    "id": "2052",
                    "value": "Contract"
                },
                {
                    "id": "8710",
                    "value": "Intern"
                },
                {
                    "id": "17991",
                    "value": "Seasonal"
                },
                {
                    "id": "19768",
                    "value": "Intern (Full Time)"
                }
            ],
            "label": "Position Type",
            "type": {
                "display": "multiselect",
                "id": 3
            }
        },
        {
            "name": "job.jobpost.postdate",
            "options": [
                {
                    "id": "09/30/2015 00:00:00.000",
                    "value": "Today"
                },
                {
                    "id": "09/23/2015 00:00:00.000",
                    "value": "Past 7 Days"
                },
                {
                    "id": "09/16/2015 00:00:00.000",
                    "value": "Past 14 Days"
                },
                {
                    "id": "08/31/2015 00:00:00.000",
                    "value": "Past 30 Days"
                },
                {
                    "id": "08/01/2015 00:00:00.000",
                    "value": "Past 60 Days"
                },
                {
                    "id": "07/02/2015 00:00:00.000",
                    "value": "Past 90 Days"
                },
                {
                    "id": "03/30/2015 00:00:00.000",
                    "value": "Past 6 Months"
                },
                {
                    "id": "09/30/2014 00:00:00.000",
                    "value": "Past Year"
                }
            ],
            "label": "Posted Date",
            "type": {
                "display": "datetime",
                "id": 15
            }
        },
        {
            "name": "job.portaljoblocation",
            "options": [
                {
                    "id": "--Matawan",
                    "value": "Matawan"
                }
            ],
            "label": "Location",
            "type": {
                "display": "freetext",
                "id": 0
            }
        },
        {
            "name": "job.portalkeywordsearch",
            "label": "Keywords",
            "type": {
                "display": "freetext",
                "id": 0
            }
        },
        {
            "name": "job.joblocation.zipradius",
            "secondaryValue": {
                "options": [
                    {
                        "id": "5",
                        "value": "5"
                    },
                    {
                        "id": "10",
                        "value": "10"
                    },
                    {
                        "id": "15",
                        "value": "15"
                    },
                    {
                        "id": "20",
                        "value": "20"
                    },
                    {
                        "id": "25",
                        "value": "25"
                    },
                    {
                        "id": "35",
                        "value": "35"
                    },
                    {
                        "id": "50",
                        "value": "50"
                    },
                    {
                        "id": "75",
                        "value": "75"
                    },
                    {
                        "id": "100",
                        "value": "100"
                    },
                    {
                        "id": "150",
                        "value": "150"
                    },
                    {
                        "id": "200",
                        "value": "200"
                    }
                ],
                "id": "radius",
                "label": "Find jobs within",
                "units": "miles"
            },
            "label": "Zip Code",
            "type": {
                "display": "freetext",
                "id": 0
            }
        },
        {
            "name": "job.updateddate",
            "label": "Updated Date",
            "type": {
                "display": "datetime",
                "id": 15
            }
        }
    ]
}

Search the Portal for jobs using filters

Use "Get information about the supported Portal search filters" to return a list of supported filters, and review the Search API documentation. for assistance formatting filters.

URL: 

GET: https://api.icims.com/customers/{customerId}/search/portals/{portalNameOrId}?searchJson={encodedSearchParameters}
OR
POST: https://api.icims.com/customers/{customerId}/search/portals/{portalNameOrId}

 

Action Definition
Get:

Example Request:

Example Request with Job Category Filter:

GET /customers/1769/search/portals/jobs/ HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Cache-Control: no-cache

Example Response Payload:

{
  "searchResults": [
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1709/customer-service-representative/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1709",
      "id": 1709,
      "updatedDate": "2015-09-30 02:07 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1708/administrative-assistant/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1708",
      "id": 1708,
      "updatedDate": "2015-09-30 02:06 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1707/technical-writer/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1707",
      "id": 1707,
      "updatedDate": "2015-09-30 01:41 PM"
    }
  ]
}

Post:

Example Request with Zip Radius Filter:

POST /customers/1769/search/portals/jobs HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    "filters": [
        {
            "secondaryValue": [
                "15"
            ],
            "name": "job.joblocation.zipradius",
            "value": [
                "07747"
            ],
            "operator": "="
        }
    ],
    "operator": "&"
}

Example Response Payload:

{
    "searchResults": [
        {
            "portalUrl": "https://jobs-preview2test.icims.com/jobs/1709/customer-service-representative/job",
            "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1709",
            "id": 1709,
            "updatedDate": "2015-09-30 02:07 PM"
        },
        {
            "portalUrl": "https://jobs-preview2test.icims.com/jobs/1708/administrative-assistant/job",
            "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1708",
            "id": 1708,
            "updatedDate": "2015-09-30 02:06 PM"
        },
        {
            "portalUrl": "https://jobs-preview2test.icims.com/jobs/1707/technical-writer/job",
            "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1707",
            "id": 1707,
            "updatedDate": "2015-09-30 01:41 PM"
        }
    ]
}

-----

Example Request with Date Filter:

POST /customers/1769/search/portals/jobs HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
  "filters":[
    {
      "secondaryValue":[
         "2015-10-30 12:00 PM"
      ],
       "name":"job.jobpost.postdate",
       "value":[
         "2015-09-30 01:00 AM"
        ],
        "operator":"="
     }],
 "operator":"&"
}

Example Response Payload:

{
  "searchResults": [
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1709/customer-service-representative/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1709",
      "id": 1709,
      "updatedDate": "2015-09-30 02:07 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1708/administrative-assistant/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1708",
      "id": 1708,
      "updatedDate": "2015-09-30 02:06 PM"
    },
    {
      "portalUrl": "https://jobs-preview2test.icims.com/jobs/1707/technical-writer/job",
      "self": "https://api.dev.icims.com/customers/1769/portals/jobs/1707",
      "id": 1707,
      "updatedDate": "2015-09-30 01:41 PM"
    }
  ]
}

  • Edit
  • Edit
  • Edit
  • Delete

Display all posting information for a specific job

URL: 

https://api.icims.com/customers/{custId}/portalposts/job/{jobId}

 

Display all posting information for a specific job

URL:   

GET: https://api.icims.com/customers/{custId}/portalposts/job/{jobId}

 

Action Definition
Get:

Example Request:

GET /customers/1769/portalposts/job/1707 HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload:

{
  "jobposts": [
    {
      "jobpostid": 325,
      "portalurl": "jobs-preview2test.icims.com",
      "startdate": "2015-09-30 01:41 PM",
      "status": "Posted"
    },
    {
      "jobpostid": 328,
      "portalurl": "employees-preview2test.icims.com",
      "startdate": "2015-09-30 05:28 PM",
      "status": "Posted"
    }
  ]
}

Retrieve information for a specific job post

URL:

Get: https://api.icims.com/customers/{custId}/portalposts/{jobPostId}    
 

Action Definition
Get:

Example Request:

GET /customers/1769/portalposts/325 HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

Example Response Payload:

{
  "jobpostid": 325,
  "portalurl": "jobs-preview2test.icims.com",
  "links": [
    {
      "rel": "self",
      "title": "The current jobpost being viewed.",
      "url": "https://api.dev.icims.com/customers/1769/portalposts/325"
    }
  ],
  "startdate": "2015-09-30 01:41 PM",
  "status": "Posted"
}

Errors:

HTTP Response: 5XX

Payload Format:

{

     "message": "<Error message>",

     "code": <HTTP response code>

}

Post a job to a Portal

URL: 

Post: https://api.icims.com/customers/{custId}/portalposts/

 

Action Definition
Post:

Example Request:

POST /customers/1769/portalposts/ HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    "jobid": 1709,
    "userid": 387,
    "startdate": "2015-09-30 9:31 AM",
    "enddate": "2015-12-04 11:31 AM",
    "portalurl": "employees-preview2test.icims.com"
}

Example Response:

No payload will be provided in response if post is successful.

HTTP 201 and location header whose value is a self URL link with the new JobPostID will be provided (e.g., Location: https://api.icims.com/customers/{custId}/portalposts/{jobPostId}) if successful.

Errors:

Errors will occur for the following reasons:

  • The job is not in the Approved folder

  • The Portal cannot be posted to

  • The job is already posted to the specified Portal

HTTP Response: 5XX, 4XX

Payload Format:

{

     "message": "<Error message>",

     "code": <HTTP response code>

}

Unposting a job from a Portal

URL:   https://api.icims.com/customers/{custId}/portalposts/unpost

Action Definition
Patch:

Example Request Payload:

PATCH /customers/1769/portalposts/unpost HTTP/1.1
Host: api.icims.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Cache-Control: no-cache

{
    "jobid": 1709,
    "userid": 387,
    "portalurl": "employees-preview2test.icims.com"
}

Example Response:

No payload provided with successful unposting.

HTTP 200 response provided if successful.

Errors:

Errors will occur for the following reasons:

  • The job is not an the Approved status
  • The job post is not in the Posted status

HTTP Response: 5XX, 4XX

Payload Format:

{

     "message": "<Error message>",

     "code": <HTTP response code>

}

Job Distributor

View Documentation
Description

The Job Distributor API allows job distributers to communicate the following information with iCIMS:

  • Job boards the job has been posted to
  • Status of the job board posting

Notes:

  • The security for this API is the same as all other iCIMS APIs: all requests must be made over SSL and IP restrictions prevent unwanted traffic.
  • This API supports GET, POST, and PATCH requests.

PATCH Request

When a recruiter posts a job to a job distributor from the iCIMS Platform, the Platform sends a POST request to the Job Distributor API. After retrieving all data required for the Job Posting through GET Requests, the Job Distributor responds back 303 with a redirect URL for its remote site, which the recruiter logs in to to complete the posting, anytime in the future.

If there is any update or change in the status of a job in the Job Distributor's system, the Job Distributor sends a notification to the iCIMS Platform with a PATCH Request, outlined below. The change could be in status, start date, end date, adding a job board, or removing a job board. 

Notes:

  • The following statuses are supported by the iCIMS Platform. (Statuses are case-insensitive. There is a single space between words in a status; more than one space is invalid.)
    • Expired
    • Live
    • Posting in Progress
    • Deletion in Progress
    • Unposted
  • It is required to send the parameters and their value (value, externalid, status, startdate, and enddate) for all job boards, even if only one gets updated/changed.
  • The following date & time format is supported by the iCIMS Platform: YYYY-MM-DDhh:mmAM/PM. (Example: 2014-12-04 11:31 AM )
API Examples

URL: 

https://api.icims.com/customers/{custId}/jobboardposts/

ExternalId

ExternalId refers to the unique ID of JobBoard in Job Distributor’s system.

Action Definition
PATCH

{   

   "jobid":"1234", 

   "jobdistributor":{   

      "id":"D90005" 

   }, 

   "jobboards":[   

      {   

         "jobboard":{   

            "value":"CareerBuilder.com", 

            "externalid":"764" 

         }, 

         "status":"live", 

         "startdate":"2014-08-04 11:31 AM", 

         "enddate":"2014-12-04 11:31 AM" 

      }, 

      {   

         "jobboard":{   

            "value":"Monster.com", 

            "externalid":"763" 

         }, 

         "status":"Posting in Process", 

         "startdate":"2014-08-04 11:31 AM", 

         "enddate":"2014-12-04 11:31 AM" 

      } 

   ] 

Errors

HTTP Response: 5xx, 4xx 

Payload: 

{

"message": "",

 "code":  

}

Direct Linking

View Documentation
Description

Vendors are now able to leverage direct links through iCIMS API for Person and Job Profiles, which allow Platform users to go directly to specific Job or Person Profiles within the Platform from another application.

If already logged in to the Platform, a user who clicks on a direct link is taken into the Platform to the specific profile specified in the link. (If not logged in, the user will first be authenticated using the method configured in their Platform, e.g.,  SAML or standard authentication.)

Note that Direct Links must be enabled within a client's Platform before it can be utilized as described below. Ensure that the client you are working with has these options enabled before proceeding.

API Examples

The format for a direct link is as follows:

Link to Person Profile: https://api.icims.com/customers/{customerID}/linkTo/people/{personID}


Link to Job Profile: https://api.icims.com/customers/{customerID}/linkTo/jobs/{jobID}

Customers

View Documentation
Description

The Customer ID is a unique numeric identifier for each customer and ATS instance.

API Examples

Supported commands for the Customer object type are as follows.

URL: 

https://api.icims.com/customers/{CustomerID}

{Customer ID}

A unique string id that can be used to reference the Platform.

Action Definition
Get: Return a 200 response code; see example below.
Post: Not supported
Patch: Not supported
Delete: Not supported

Sample Response:

HTTP/1.1 200 OK

Strict-Transport-Security: max-age=7776000

X-Content-Type-Options: nosniff
Transfer-Encoding: chunked
X-Customer-Type: test
Date: Mon, 01 Oct 2012 21:20:01 GMT
Content-Language: us

Content-Type: application/json;charset=UTF-8
Link: https://api.dev.icims.com/customers/449/jobs;rel="profiles";title="Available Job Profiles", https://api.dev.icims.com/customers/449/people;rel="profiles";title="Available Person Profiles", https://api.dev.icims.com/customers/449/companies;rel="profiles";title="Available Company Profiles", https://api.dev.icims.com/customers/449/performances;rel="profiles";title="Available Performances Profiles", https://api.dev.icims.com/customers/449/applicantworkflows;rel="profiles";title="Available Applicant Workflow Profiles", https://api.dev.icims.com/customers/449/performanceworkflows;rel="profiles";title="Available Performance Workflow Profiles", https://api.dev.icims.com/customers/449/forms;rel="forms";title="Available Forms

{
    "platformUrl": "customerXXX.icims.com",
    "id": 449,
    "customerType": "test",
    "name": "CustomerXXX",
    "buildVersion": "12.1"
}

Collection Fields

View Documentation
Description

Collection Fields are fields that can contain multiple records such as phones, and addresses on the person profile.

API Examples

Supported commands for Collection Fields are as follows.

Create a new collection field group

Collection field groups can be created for all profiles.

Notes:

  • "Content-Type: application/json" must be set for calls sending JSON payloads
  • The iCIMS system does not allow for duplicate collection entries. API calls that result in duplicate collection entries to be created or updated will return success without modifying the collection data.

URL: 

api.icims.com/customers/{customerId}/{profileType}/{profileID}/fields/{collectionFieldId}

Action Definition
Post: 

api.icims.com/customers/1234/people/1289/fields/phones
Content-Type: application/json

{
  "phonetype": {
    "value": "Mobile"
  },
  "phonenumber":
 "666 222 2222"
}
 

Response: HTTP/1.1 201 Created
Location:“api.icims.com/customers/1234/people/1289/fields/phones/332"

Get the value of a specified field on a specific Profile

The value returned for the field will be the value returned in the JSON of the entire Profile. See the Field Types sections for details on what each field type returns. 

Note: The iCIMS system does not allow for duplicate collection entries. API calls that result in duplicate collection entries to be created or updated will return success without modifying the collection data.

URL: 

https://api.icims.com/customers/{customerId}/{profileType}/{profileID}/fields/{collectionFieldId}/{groupId}

{collectionFieldId}

The name of the collection field to retrieve. For example, for custom fields, the format is field and then a numeric internal identifier, such as field1234.

{groupId}

The numeric identifier of the collection group to retrieve. For example, for addresses, this could be a specific addressId.

Action Definition
Get:

https://api.icims.com/customers/1234/people/5/fields/addresses/35

HTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
   “addressstreet1”:“Apple St”,
   “addresscity”:“Hazlet”,
   “addresstype”{
      “entry”:“D1334”,
      “value”:“Home”
  }
    "primary" : true
}

Note: For JSON schema GET calls of collections (described here), the value for primary will look like:

"primary" : {
  "type" : "boolean"
}

Patch:

https://api.icims.com/customers/1234/people/1289/fields/addresses/332
Content-Type: application/json

{
  “addressstreet1”:“Apple St”,
  “addresscity”:“Hazlet”,
  “addresstype”{
     “entry”:“D1334”,
     “value”:“Home”
 }
}

Delete: api.icims.com/customers/1234/people/1289/fields/phones/332 (no payload required)

Binary Files

View Documentation
Description

Binary files contain resume and other attached document information in iCIMS ATS.

API Examples

The supported commands for Binary files are as follows:

Example 1 - Retrieve and/or Update a Binary File

iCIMS is able to retrieve and update resume files. The supported requests are listed below. 

Notes:

The PATCH request will not accept binary files. It requires a`key:val`pair in the form-data. The value must specify the resume file. 

URL: 

https://api.icims.com/customers/{customerId}/{profileType}/{profileId}/fields/{fieldId}/binary

{fieldID} - The name of the field to retrieve. For custom fields, the format is field and then a numeric internal identifier such as field1234.

Action Definition
Get:

Retrieve the binary data of the field (if supported type such as File or Image field). This will return the actual binary file with its corresponding content-type and not JSON. If field is not a File or Image type, it will return an error.

https://api.icims.com/customers/1234/people/5/fields/resume/binary

HTTP/1.1 200 OK
Content-Type:application/msword

Post: Not supported
Patch:

Add/Update value

PATCH HTTP/1.1
Content-Disposition: attachment;filename="resume.doc"
Content-Type:multipart/form-data
{RAW BINARY CONTENT}
Payload: Content-Disposition: form-data; name="Content-Disposition: form-data; name="; filename="Resume.docx"

Response:
HTTP/1.1 204 No Content

Delete:

Delete value

Deletes the binary data stored within the given profileID and fieldID. 

Note: The resume field of a Person Profile cannot be deleted through the Profiles Web Services API, just as the field cannot be deleted by an end user.

Response:
HTTP/1.1 204 No Content

Example 2 - Retrieve Extracted Binary File Text

iCIMS is able to retrieve extracted resume text instead of the binary representation of the file. If the file doesn't have extracted text the new endpoint will attempt to extract the text on demand. iCIMS will give up on text extraction calls after 1 minute and 30 seconds and make two attempts to extract text. The response will be a 404 if text cannot be extracted from the document or if the document doesn't exist. Otherwise, a HTTP 200 response will be returned along with a multi-part response of a text file which contains the extracted text. The binary response contains a UTF8 encoded text/plain content type file with an appropriate document name followed by a .txt extension.

Notes:

  • The following files are available for text extraction by default, though client configurations may vary: pdf, doc, docx, odt, wpd, wri, ods, rtf, txt, xls, xlsx, ppt, pptx, odp, zip, rar, htm, html, dot, dotx, xlt, xltx, tif, tiff, jpg, jpeg, png, gif, bmp, gz, dcx, pcx, jp2, jpc, jfif

  • This new endpoint does not support updating (PATCH, DELETE, POST); it only supports retrieving new content using GET.

  • In addition, a new fileText link will be included when you reference a field.      resume: {         file: "https://api.icims.com/customers/4766/people/100/fields/resume/binary"         filename: "100_Neil_Tyson_28_Resume.doc"         fileText: "https://api.icims.com/customers/4766/people/100/fields/resume/text"      }

URL: 

https://api.icims.com/customers/1234/people/5/fields/resume/text

Action Definition
Get:

Example call and response:

https://api.icims.com/customers/4766/people/100/fields/resume/text

HTTP/1.1 200 OK 

content-disposition: attachment; filename = 100_Ramon_Cohen_28_Resume.txt 

X-Content-Type-Options: nosniff

X-TRANSACTION: {7FA13FD5-CAF8-AA1C-E6BA-52A9A9A8C6D8}

X-RateLimit-Limit: 500000 X-RateLimit-Remaining: 499689

X-RateLimit-Reset: 10543 

Date: Fri, 08 Aug 2014 21:04:16 GMT 

Vary: Accept-Encoding 

Strict-Transport-Security: max-age=7776000 

Content-Type: text/plain;charset=utf-8 

Content-Encoding: gzip 

Transfer-Encoding: chunked 

 

Ramon Cohen

...

..

.

Post: Not Supported
Patch: Not Supported
Delete: Not Supported
Errors: The response will be a 404 if text cannot be extracted from the document or if the document doesn't exist.

Example 3 - Retrieve PDF Version of Resume

iCIMS is able to retrieve resumes converted to PDFs in addition to the binary representation of the file (e.g., MS Word file). If the resume is not already a PDF, this endpoint will convert the document to a PDF on demand. 

An HTTP 200 response is returned along with a multi-part response of a PDF file, containing the PDF version of the resume. The binary response contains an application/pdf content type file with an appropriate document name followed by a .pdf extension. If the resume cannot be converted to PDF, a 500 response is returned. 

Notes:

  • This endpoint only applies to resumes
  • The following file extensions are supported for conversion to PDF: html, htm, doc, docx, rtf, odt, xml, txt, png, jpg, jpeg, svg, tif, tiff
  • This endpoint does not support updating (PATCH, DELETE, POST); it only supports retrieving content using GET

URL: 

https://api.icims.com/customers/1234/people/5/fields/resume/pdf

Action Definition
Get:

Example call and response:

https://api.icims.com/customers/1234/people/100/fields/resume/pdf

HTTP/1.1 200 OK

content-disposition: attachment; filename = 100_Ramon_Cohen_28_Resume.pdf

X-Content-Type-Options: nosniff

X-TRANSACTION: {7FA13FD5-CAF8-AA1C-E6BA-52A9A9A8C6D8}

X-RateLimit-Limit: 500000

X-RateLimit-Remaining: 499689

X-RateLimit-Reset: 10543

Date: Fri, 08 Aug 2014 21:04:16 GMT

Vary: Accept-Encoding

Strict-Transport-Security: max-age=7776000

Content-Type: application/pdf

Content-Encoding: gzip

Transfer-Encoding: chunked

 

Ramon Cohen

...

..

.

Post: Not supported
Patch: Not supported
Delete: Not supported
Errors: A 500 response is returned if the resume cannot be converted to PDF.

Example 4 - CURL Command 

curl https://api.icims.com/customers/2780/people/117/fields/resume/binary -X PATCH -k -H
"Expect:"
-F "resume=@testdocument.txt;type=text/plain" -H "Authorization: Basic <YOURUSERNAMEANDPASSWORDBASE64ENCODED>"

Example 5 - CURL Command Explained

curl https://api.icims.com/customers/<CustomerID>/people/<Candidate SystemID>/fields/<Field Identifier>/binary -X PATCH -k -H "Expect:"

-F "resume=@<local resume file path>;type=<file content type> " -H "Authorization: Basic <YOURUSERNAMEANDPASSWORDBASE64ENCODED>"

Example 6 - Resume Upload with Corresponding Response

Note: Binary data has been stripped from the request.

 

Request:

PATCH /customers/<CustomerID>/people/<Candidate SystemID>/fields/<FieldType>/binary HTTP/1.1

User-Agent: curl/7.24.0 (i386-pc-win32) libcurl/7.24.0 OpenSSL/0.9.8t zlib/1.2.5

Host: api.icims.com

Accept: */*

Authorization: Basic <YOURUSERNAMEANDPASSWORDBASE64ENCODED>

Content-Length: 6818

Content-Type: multipart/form-data; boundary--------------------------------88014d16cc70--

Content-Disposition: form-data; name="resume"; filename="testdocument.txt"

Content-Type: text/plain

<binary>

------------------------------88014d16cc70--

Response:

HTTP/1.1 204 No Content

Cache-Control: no-cache,no-store,no-transform,must-revalidate,max-age=0,s-maxage=0

Content-Language: en_US,us

Content-Encoding: UTF-8

X-Content-Type-Options: nosniff

X-TRANSACTION: {B2A45E89-4176-FE5E-8541-36A324640AF7}

X-RateLimit-Limit: 25000

X-RateLimit-Remaining: 23815

X-RateLimit-Reset: 33715

Date: Thu, 06 Sep 2012 14:38:05 GMT

Strict-Transport-Security: max-age=7776000