Multi-Region Deployments

The primary deployment region of all Coveo Cloud Organizations is the Eastern United States (US East). If that is the only region where your organization is deployed, this implies that all end-user search requests must travel to that region and back. Thus, end users located outside North America would experience significantly higher search request delays than North American end users. In situations where it is vital to keep query times low, this may not be acceptable.

To handle such scenarios, Coveo currently offers the possibility of deploying your organization to two possible satellite regions: US West and Ireland. For pricing, or information about additional regions that may be added in the future, contact Coveo Sales.


  • Multi-region deployments are only available for non-HIPAA, non-Elasticsearch, production (i.e., not non-production), Coveo Cloud V2 organizations.
  • The service automatically routes the query to the closest index. You cannot manually force queries into one particular index.

Satellite Regions

More concretely, satellite regions contain duplicates of the content and services required for your end users to perform queries, namely your index, ML models, and the Search API. When your end users perform queries, the service automatically routes them to your closest deployment, which can dramatically reduce query time. In addition, if a satellite deployment encounters an issue, the service routes queries to your primary deployment region, namely US East.

The Coveo Cloud indexing pipeline, Usage Analytics service, and main platform services remain in the US East region. Only the services used to answer search queries are duplicated. This makes the satellite deployments light and simple to configure (see Configuration).

Primary Region Satellite Regions

Complete Coveo organization:

  • Search API
  • ML
  • Index and indexing pipeline
  • Usage analytics
  • etc.

Only what is required to handle search requests:

  • Search API
  • ML
  • Index

Search Response Time Examples

While the following are real-life examples, they are merely examples, meant to illustrate the logic of multi-region deployments. Exact figures vary significantly from organization to organization, from query to query, and from caching along the Internet.

  • You have no satellite deployment. When an end user located in Paris makes a query, this query goes to your primary and only deployment, in the US East Region. The results then travel back to Paris. The query suggestions reach the end user after a total of 260 milliseconds, and the results after a total of 360 milliseconds.

    You now add a satellite deployment in Ireland. When an end user located in Paris makes a query, this query is now automatically routed to your Ireland deployment. The query suggestions reach the end user after a total of 110 milliseconds, and the results after a total of 180 milliseconds.

    The following table summarizes the above scenarios:

    Deployment location Query suggest time (ms) Query time (ms)
    US East deployment 260 360
    Ireland deployment 110 180
  • The following table exemplifies some query and query suggest response times for a user in Quebec city, and another one in Paris, to organizations in the available regions.

    US West US East Ireland
    Quebec city Query time (ms) 350 110 500
    Query suggest time (ms) 120 60 140
    Paris Query time (ms) 440 360 180
    Query suggest time (ms) 350 260 110


Assuming you have contacted Coveo Sales and have taken care of the administrative tasks required to deploy your organization over several regions, the technical configuration is almost seamless.

Using the Search API

When making a Search API request to a multi-region organization, make sure to use the endpoint rather than Requests to other Coveo APIs do not change.

Using the Coveo JavaScript Search Framework

When using the Coveo JavaScript Search Framework, make sure to setup your search endpoint to rather than

Coveo.SearchEndpoint.configureCloudV2Endpoint("mycoveocloudorganizationid", "**********-****-****-****-************", "");