# Search API



<EndpointIndex names={['fetchSearchResults', 'fetchAdditionalSearchResultsByToken']} />

Data Search [#data-search]

<Callout type="warn">
  In addition to the `read` permission, you will need the `policies.list`, `quotes.list`, or `accounts.list` permission to be able to execute a search on the respective entity type.
</Callout>

Fetch Search Results [#fetch-search-results]

<ApiEndpoint name="fetchSearchResults" />

Fetch Additional Search Results By Token [#fetch-additional-search-results-by-token]

<ApiEndpoint name="fetchAdditionalSearchResultsByToken" />

<ApiSchema name="SearchRequest" />

<ApiSchema name="SearchTermRequest" />

<ApiSchema name="SearchServiceResponse" />

<ApiSchema name="SearchResultResponse" />

See Also [#see-also]

* [Search Feature Guide](/features/search)


## API Reference

POST /search/{tenantLocator}/search — fetchSearchResults
Tags: search-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  offset (integer, query)
  count (integer, query)
Request body (SearchRequest):
Responses:
  200 SearchServiceResponse — OK

GET /search/{tenantLocator}/search — fetchAdditionalSearchResultsByToken
Tags: search-controller
Permissions: read
Parameters:
  tenantLocator (uuid, path, required)
  offset (integer, query)
  count (integer, query)
  searchToken (string, query, required) — The token returned from the initial search
Responses:
  200 SearchServiceResponse — OK

SearchRequest
Properties:
  searchString (string, required)
  searchEntityType (Enum unspecified | account | quote | policy | fnol | contact | diary | payment | task | userAssociation, required)
  searchTerms (SearchTermRequest[], required)
  startCreationTime (datetime)
  endCreationTime (datetime)
  sortField (string)
  fields (string[], required)

SearchTermRequest
Properties:
  searchTerm (string, required)
  fieldName (string, required)
  match (Enum fuzzy | exact | startsWith | lessThan | greaterThan, required)
  absolute (Enum none | required | excluded, required)

SearchServiceResponse
Properties:
  searchToken (string, required)
  offset (integer, required)
  count (integer, required)
  results (SearchResultResponse[], required)

SearchResultResponse
Properties:
  score (number, required)
  searchEntityType (Enum unspecified | account | quote | policy | fnol | contact | diary | payment | task | userAssociation, required)
  searchEntityLocator (ulid, required)
  productName (string, required)
  accountLocator (string, required)
  configVersionLocator (string, required)
  searchSummary (map<string, object>, required)
  highlights (string[], required)