Search Limits
When crafting search queries, there are important constraints and limits you should be aware of.
The limits on this page apply to most search resources, but please note that certain search resources may have more restrictive limits. If a detailed documentation page is available for the resource you are searching, any differences will be clarified there. Please be sure to reference these additional documentation pages, for instance: transcript search.
Search type rate limiting limits
Search rate limiting is done on a 60 second interval, if request rate goes above a 429 will be returned and end user should use the Retry-After header. Please refer to general error handling documentation for more detail.
Search Type | Rate Limit (60 Second Interval) |
CONTAINS | 100 |
DATE_RANGE | 240 |
EXACT | 4000 |
GREATER_THAN | 240 |
GREATERTHANEQUAL_TO | 240 |
LESS_THAN | 240 |
LESSTHANEQUAL_TO | 240 |
QUERY_STRING | 300 |
RANGE | 240 |
REGEX | 120 |
REQUIRED_FIELDS | 300 |
SIMPLE | 240 |
STARTS_WITH | 240 |
TERM | 300 |
TERMS | 300 |
Max Number of Paginated Results: 10,000
You can page through a maximum of 10,000 results. Search queries which return more than 10,000 results may signal a need to change your query criteria to return a smaller result set.
Max Number of Characters in a Value: 300
You can pass in a maximum of 300 characters in the value
field of a criteria. Here is an example of a query with 10 characters in its value:
{
"pageSize": 25,
"pageNumber": 1,
"types": [
"users"
],
"query": [
{
"type": "EXACT",
"fields": [
"name"
],
"value": "John Smith"
}
]
}
Max Page Size: 100
You can set a maximum page size of 100. When searching chats against the messages
type, the maximum page size is 50.
Max Number of Values in a Criteria: 50
You can pass in a maximum of 50 values in the values
field of a criteria. Searching for more than 50 values may signal a need to discover an alternate API resource endpoint with more robust listing capabilities. If you must search for more than 50 values, you will need to batch your query into multiple requests. Here is an example of a query with 2 values in a criteria:
{
"pageSize": 25,
"pageNumber": 1,
"types": [
"users"
],
"query": [
{
"type": "EXACT",
"fields": [
"id"
],
"values": [
"b49b1a12-a365-42c5-a915-9c998e0df615",
"962885ee-45aa-42ec-be19-d2b84db6f759"
]
}
]
}
Max Number of Criteria in a Query: 10
You can pass in a maximum of 10 criteria in the query
array of the request body. For instance, here is a search query with 2 criteria:
{
"pageSize": 25,
"pageNumber": 1,
"types": [
"users"
],
"query": [
{
"type": "STARTS_WITH",
"fields": [
"name"
],
"value": "John"
},
{
"type": "EXACT",
"fields": [
"department"
],
"value": "Sales"
}
]
}
Rate Limiting for Specific Query Types
A query type is the value that goes in the type
field of a criteria, such as EXACT
, TERM
, or SIMPLE
. Some query types are more expensive than others. In order to provide optimal performance, requests that have a query type of CONTAINS
and QUERY_STRING
are rate limited more aggressively than other query types. Be aware that all query types have a hard limit and any request that goes over the limit will be rate limited for the remainder of the window (1 minute, typically). Use the status code and header information described in the rate limiting documentation to gauge when to back off your request rate and retry when the rate limit window has renewed.