Complete API reference for integrating with SmartSearch
The SmartSearch Platform API provides many tools and resources that enable you to integrate with all the powerful capabilities within SmartSearch.
Interested in the SmartSearch Platform API? Contact your Relationship Manager or Support@SmartSearchinc.com to get set up. Once provisioned, refer to the Platform API Launch Guide below to get started.
The launch guide walks you through authenticating with the API and making your first requests across the available resources. It covers everything from obtaining your credentials and generating a token to calling endpoints and interpreting responses.
Download the guide here to get started.
Webhooks allow your application to receive notifications when events occur in SmartSearch. Once configured, SmartSearch will POST to your endpoint whenever a subscribed event fires. If delivery fails, SmartSearch will retry up to 3 times using an exponential backoff strategy.
GET /references/webHookEvents to retrieve the full list of supported event types and their corresponding IDs.POST /webhooks to register your endpoint URL for each event, and manage them with the PUT, PATCH, and DELETE endpoints as needed.For a complete reference of all available webhook events, please refer to the Webhook Event Reference.
The GET endpoints in the SmartSearch Platform API follow the OData standard while the PATCH endpoints utilize the JSON Patch format.
Content-Type: application/json-patch+json header. Requests sent without this header will be rejected.
By default, the Platform API returns 1,000 records at any given time. If there are more than 1,000 results, the response includes an @odata.nextLink value you can call to get the next set of results.
The default page size is an upper bound, not a recommendation. Use $top to request a smaller page and $skip to page through results:
GET /candidates?$top=100 returns the first 100 recordsGET /candidates?$top=100&$skip=100 returns the next 100@odata.nextLink until it is no longer returnedUse $select to return only the fields your integration actually consumes. Full records carry every available field, and most integrations use a small fraction of them. Projecting fields reduces response size, transfer time and parsing cost on your side.
GET /candidates?$select=candidateNum,candidateFirstName,candidateLastName,candidateStatusCodeGET /candidates?$top=100&$select=candidateNum,candidateStatusCode$top combined with full, unprojected records can exceed it. Pair a smaller $top with $select to stay well under the limit and narrow the result set further with $filter where possible.
All incoming timestamps must follow the ISO 8601 format. If no timezone is specified, UTC is assumed by default. Below are examples of valid formats:
2024-08-15T14:30:00Z2024-08-15View the complete API reference with all endpoints, request/response schemas, and code examples.
View Full API Documentation →