search mobile facets autocomplete spellcheck crawler rankings weights synonyms analytics engage api customize documentation install setup technology content domains user history info home business cart chart contact email activate analyticsalt analytics autocomplete cart contact content crawling custom documentation domains email engage faceted history info install mobile person querybuilder search setup spellcheck synonyms weights engage_search_term engage_related_content engage_next_results engage_personalized_results engage_recent_results success add arrow-down arrow-left arrow-right arrow-up caret-down caret-left caret-right caret-up check close content conversions-small conversions details edit grid help small-info error live magento minus move photo pin plus preview refresh search settings small-home stat subtract text trash unpin wordpress x alert case_deflection advanced-permissions keyword-detection predictive-ai sso

API Rate Limits

The Site Search API is rate limited to prevent abuse.

The limits are high enough that typical use should rarely be rate limited.

Rate limits are calculated by requests over an hour.

JSONP and Rate Limiting

Most Site Search customers use JSONP for autocomplete and search results.

It is unlikely they will be rate limited, unless a user is abusing the service.

Rate Limiting Example

Requests that have been rate limited will respond with HTTP 429 Too Many Requests.

HTTP 429 is a new - but very useful - status code proposed by RFC 6585.

Example - Rate limited JSON resource
curl -i -XGET 'https://search-api.swiftype.com/api/v1/public/engines/suggest.json?callback=foo&q=search&engine_key=your_engine_key'
Example Response
HTTP/1.1 429
Content-Type: application/json; charset=utf-8
Content-Length: 32

{ "error": "Rate limit exceeded." }

Rate Limiting Headers

There are two response headers which provide a guideline towards the rate limit:

X-RateLimit-Limit: xxxx
X-RateLimit-Remaining: xxxx

The header values and their refresh interval vary depending on your plan and which endpoint you are sending requests against.

Due to a variety of network and API influences, these headers are for guidance and are not an exact measure.

Values are expressed in 60 minute intervals.

Rate Limit Mitigation

If your application is being affected by rate limiting, please wait a couple of hours and then try again.

If the problem persists, contact support@swiftype.com for assistance.


Stuck? Looking for help? Contact support or check out the Site Search community forum!