# Querying API


Use the Querying API to fetch multiple pages of search results sequentially. <br><br> This REST API returns entities that match specific criteria and supports both [generic](https://doc.sitecore.com/ch/en/developers/cloud-dev/generic-properties.html) and [specific](https://doc.sitecore.com/ch/en/developers/cloud-dev/specific-properties.html) properties along with  numerous [parameters](https://doc.sitecore.com/ch/en/developers/cloud-dev/parameters.html). <br><br> When using the Querying API, keep the following considerations in mind:
- Due to deep paging considerations the querying endpoint is limited to retrieve up to 10,000 results.
- When search results are sorted on a property and there are multiple results that have the same value for that property, then those results are displayed in random order. To address this limitation, use a secondary sort property as a tie-breaker.
- With full-text search, do not use the following characters: `«`, `»`, `÷`,`×`, `¦`, `¤`, `⋇`, or `؉`. Do not combine special characters and wildcards within the same word. For example, use invoice re*ort instead of invoice-re*ort to ensure consistent results like invoice-report.
- The <i>FullText</i> search property only supports the `==` operator, but can be negated.
- When you run a query, make sure you include all the entity members that you want to retrieve. If you omit the members parameter, the response will return all the existing entity members (all properties, all relations, and so on). To ensure optimal performance, only request the members you actually need.
- The API is configured to only load the related paths that are specified in a query. If you don't specify related path relations in your query, the response won't return any.
## Authentication
To use the Querying API, you need:
- The URL of your Content Hub server. You can get this from your Content Hub
  Administrator. Enter this URL in the <b>{{server}}</b> variable by hovering your mouse
  over the variable in the <b>Try it</b> pane and then clicking <b>Edit</b>.

- An access token and the client ID. Both are sent with every request. You 
  can create a token through the [Content Hub
  interface](https://doc.sitecore.com/ch/en/users/content-hub/create-an-oauth-client.html) 
  or by [requesting one using the API
  itself](https://doc.sitecore.com/ch/en/developers/cloud-dev/oauth-tokens.html#grant-flows).


Version: v1.0
License: closed source
Metadata:
  - product: Content Hub

## Servers

```
https://{server}
```

Variables:
- `server`
Default: "your-server"

## Security

### OAuth2.0

Type: oauth2

## Download OpenAPI description

[Querying API](https://api-docs.sitecore.com/_bundle/ch/querying-api/@v1.0/index.yaml)

## Querying

The Querying API is responsible for fetching multiple pages of results sequentially.  

### Retrieve entities using a scroll-based query

 - [GET /api/entities/scroll](https://api-docs.sitecore.com/ch/querying-api/v1.0/querying/entitiesbyscroll1.md): Lists entities using a scroll-based query for efficient large result set traversal.

### Retrieve entities using a search query

 - [GET /api/entities/searchAfter](https://api-docs.sitecore.com/ch/querying-api/v1.0/querying/entitiesbysearchafter.md): Lists entities that match the criteria. This endpoint supports sorted pagination using the search-after property.

### Retrieve entities using a route-based query string

 - [GET /api/entities/query/{query}](https://api-docs.sitecore.com/ch/querying-api/v1.0/querying/entitiesbyquery.md): Lists entities that match the query using a route-based query string, for example, /api/entities/query/Definition.Name=='M.Asset'.

### Retrieve entities using a parameter-based query string

 - [GET /api/entities/query](https://api-docs.sitecore.com/ch/querying-api/v1.0/querying/entitiesbyqueryparam.md): Lists entities that match the query using a parameter-based query string, for example, /api/entities/query?query=Definition.Name=='M.Asset'.

