Getting Started

Welcome to the Documentation for PCR's Rest API. It is important to answer the following questions as it will determine how access is granted for the API. In many cases PCR Clients will need to supply you with credentials for access to their database depending on the path of the API usage.

How will you use the API?

Developing an Application for a Specific Client

This path may be used to code a job board or custom application for a specific PCR client. The client in question will need to sign up for an API account to generate Application Ids as well as API Keys. These keys along with login credentials and a database will be supplied by the client.

Developing an Integration to be made available for PCRecruiter Clients

If you are looking to use our API for a third party integration to make available for one or more clients please sign up and you will be contacted to set up the next steps.

To sign up for the API please visit

If it is your first time using our REST API please visit the General REST Concepts section otherwise just visit the Resource Definitions Section to see what is currently available in the API.

General Rest Concepts

Supported HTTP Methods

PCRecruiter's makes use of or plans to make use of the following http Methods in the REST web service.

Additional implementation information can be found with each resource as to what methods are supported for that item. For the initial release we are only allowing data to be read through GET requests with functionality to update, create, or remove data on its way in upcoming releases.

  • POST

    Use of this method will tell the web service to CREATE a new record.

  • GET

    Use of this method will tell the web service to READ data for a record or multiple records.

  • PUT

    Use of this method will tell the web service to UPDATE a record.


    Use of this method will tell the web service to DELETE a record.

Resource Definitions

Click on the resources below to view the available resources, field documentation and build sample requests. In order to run the API calls you will need valid credentials as well as valid api keys/app ids.

Reference Guide


The following URLs will be the base endpoint for the REST API.


Content Types

The Rest API accepts both JSON and XML content Types. JSON is the Default Content type.

Date Field Format

Dates should be sent (and will be returned) in ISO-8601 format for all non-custom fields.

Custom fields will be returned in the format based on the accept-language submitted in the header. If no accept-language is submitted then the default en-US en-US will be applied which is MM-DD-YYYY.

Custom Fields

Custom fields will be returned with a field type value to help with determining what data has been placed in them. It is possible for date fields to be returned in a MM-DD-YYYY format or with alpha characters such as December 2, 1992.

Custom currency values will generally return numbers with the possibility of the three digit currency code appended on the end such as 100 EUR.

Custom Fields Marked as Hashed/Encrypted will not be returned in the initial release of the API due to their sensitive nature. The following format can be expected with the values just returned as ["***************"].

     "CandidateId": 1234567890,
     "CustomFields": [ {
          "FieldName": "custom hashencrypt",
          "FieldType": "HashedEncrypted",
          "Values": ["***************"]

Special URL Encoding Cases

In some cases the custom field names or values for a field may contain characters which are used for other purposes in the API. These values will need to be URL encoded once prior to general URL encoding.

  • (
  • )
  • ,
  • %

INCORRECT ../candidates?query = state eq OH AND Title(functional) = Sales Manager

CORRECT ../candidates?query = state eq OH AND Title%28functional%29 = Sales Manager


INCORRECT ../candidates?query = state eq OH AND Title = Marketing,Sales Director

CORRECT ../candidates?query = state eq OH AND Title = Marketing%2CSales Director

Percent Sign

INCORRECT ../candidates?query = state eq OH AND % Travel eq 50

CORRECT ../candidates?query = state eq OH AND %25 Travel eq 50

Additional Information

The url paramaters,fields, and values are case insensitive. For example, searching Status eq Candidate is the same as searching status eq candidate.

Searching References

Relational Operators

The following relational operators are supported when using the query parameter in a GET request.

  • eq (equal)
  • ne (not equal)
  • gt (greater-than)
  • lt (less-than)
  • ge (greater-than-equal)
  • le (less-than-equal)
  • sw (starts with)
  • ew (ends with)
  • co (contains)

Below are some samples of simple queries using the various operators.

Find all name records with a status equal to candidate

../candidates?query = status eq candidate

Find all name records entered greater-than-equal a specified date

../candidates?query = DateEntered ge 2013-01-01T10:07:40.840

Find all name records which have a title which starts with sales

../candidates?query = Title sw sales

Find all name records which have a title which starts with sales

../candidates?query = Title sw sales

Find all name records which have a title which contains manager

../candidates?query = Title sw manager

Logical Operators

The following relational operators are supported when using the query parameter in a GET request.

  • AND
  • OR

../candidates?query = status eq candidate AND title sw sales

../candidates?query = status eq candidate OR status eq unverified


Grouping in queries is done with parenthesis. When used for grouping parenthesis only need to be given standard URL encoding.

../candidates?query = status eq candidate AND (state eq ohio OR state eq new york)

Finding Records on a Rollup List

In order to search for all of the names on a rollup list in PCRecruiter just include the Rollup field name followed by the value in the query parameter. Initially these values will need to be supplied by the client from the PCR database.

Special Cases

If a search contains a field or value which is one of the logical operators it should be escaped with a backslash.

../candidates?query = state eq \OR

../candidates?query = Rollup eq ADMIN.0002 Rollup eq ADMIN.0002

Special Parameter Reference


When synchronizing data out of PCR it may be important to use the Deleted parameter in the URL. This filter can be applied to the GET methods. When included in the filter parameter followed by a Date all Id's for the records which were deleted since that date will return.

../candidates?query=DateEntered gt 2013-01-28T14:43:00.727 & filter = Deleted 2013-01-28T14:43:00.727


When requesting distinct field counts to create a search filter for a user interface the OnJobBoard parameter can be added to the URL to specify which PCR Job board the positions are configured for. The External value would be for a Careers Page available to the Public. An Internal value would be for a position available only for employees on an intranet site.

The following samples would return all distinct city and state values for the filtered positions along with a count of how many occurrences of the city or state.

Internal and External Job Boards

../positions/distinctfields?fields=state,city & OnJobBoard = External,Internal

Internal Job Board

../positions/distinctfields?fields=state,city & OnJobBoard = Internal

External Job Boards

../positions/distinctfields?fields=state,city & OnJobBoard = External