Skip to content

Search References ​

By default, endpoints return all records when a specific ID is not supplied. You can add a query parameter to narrow results.

Relational Operators ​

The following operators are supported in the query parameter on searchable GET endpoints:

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

Examples ​

Find all candidate/name records with a status equal to candidate:

../CandidatesV2?query=Status eq 'candidate'

Find all candidate/name records entered on or after a specified date:

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

Find all candidate/name records where the title starts with sales:

../CandidatesV2?query=Title sw 'sales'

Find all candidate/name records where the title contains manager:

../CandidatesV2?query=Title co 'manager'

Logical Operators ​

The following logical operators are supported:

  • AND
  • OR

Combine multiple conditions with AND:

../CandidatesV2?query=Status eq 'candidate' AND Title sw 'sales'

Combine alternatives with OR:

../CandidatesV2?query=Status eq 'candidate' OR Status eq 'unverified'

Group conditions with parentheses:

../CandidatesV2?query=Status eq 'candidate' AND (State eq 'ohio' OR State eq 'new york')

Custom Fields ​

Custom Fields exist for Candidate, Company, Position, and Placement records, but query support depends on the searchable endpoint being used.

Use explicit EXISTS syntax to query Custom Fields:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'English')

Custom Field conditions can be combined with standard fields:

../CandidatesV2?query=Status eq 'candidate' AND EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'English')

For multi-value Custom Fields, the same syntax matches records where any stored value matches:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'Spanish')

Field Name Collisions ​

If a Custom Field has the same name as a standard field, query the Custom Field explicitly with EXISTS:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Title' AND CustomFields.Value eq 'Manager')

Empty Or Missing Custom Field Values ​

Custom Fields are generated as needed on individual records. A defined Custom Field may be present with a value, present with an empty value, or absent from a record.

Find records where a Custom Field is present with an empty value:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Specialty' AND CustomFields.Value eq '')

Find records where a Custom Field has any non-empty value:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Specialty' AND CustomFields.Value ne '')

Find records that do not have a specific Custom Field value:

../CandidatesV2?query=NOTEXISTS (CustomFields.FieldName eq 'Do Not Contact' AND CustomFields.Value eq 'True')

Supported Endpoints ​

Use V2 searchable endpoints where available:

  • ../CandidatesV2
  • ../CompaniesV2
  • ../PositionsV2

Finding Records On A Rollup List ​

To search for candidate/name records on a rollup list, query the Rollup field with the rollup code:

../CandidatesV2?query=Rollup eq 'ADMIN.0002'

You can also query rollup membership records directly:

../CandidatesV2/RollupLists?query=Code eq 'ADMIN.0002'

Special Cases ​

If a search contains a field value that matches a logical operator, escape it with a backslash (\).

Searching for state value OR:

../CandidatesV2?query=State eq '\OR'

Searching for a company name containing AND:

../CandidatesV2?query=CompanyName eq 'Smith \AND Smith'