Configure data locality with locational endpoints
This page describes how to configure the Firestore client libraries to use a locational endpoint.
When you use Firestore client libraries, you can use either of the following endpoints:
-  Global endpoint: By default, the Firestore client libraries send API requests to a global service endpoint named firestore.googleapis.com. The global service endpoint routes the request to your database. During routing, a request might pass through a locational service endpoint in a location that's different from your database location.
-  Locational endpoint: A locational endpoint enforces regional restrictions, ensuring that data is stored and processed in a specified region. To guarantee that the service endpoint processes your app's Firestore requests in the same region as your database, specify a locational endpoint in the client library. 
Set a locational endpoint
The following examples show how to set a locational endpoint when you initialize a
Firestore client. Setting a locational endpoint other than where your data
resides might result in a PermissionDeniedError 
error.
Java
To authenticate to Firestore, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
Python
To authenticate to Firestore, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .
Locational endpoint semantics
Firestore supports locational endpoints for both region and multi-region locations.
Use the following format to define locational endpoints:
Java
   
  REGION_NAME 
 
 - 
 firestore 
 . 
 googleapis 
 . 
 com 
 : 
 443 
 
 
Make sure that the port number is defined along with the endpoint.
Python
   REGION_NAME 
 
 - 
 firestore 
 . 
 googleapis 
 . 
 com 
 
 
Go
   
  REGION_NAME 
 
 - 
 firestore 
 . 
 googleapis 
 . 
 com 
 : 
 443 
 
 
Make sure that the port number is defined along with the endpoint.
Replace REGION_NAME with the name of a regional or multi-regional hostnames.
Some examples of hostnames are:
-  eur3-firestore.googleapis.com
-  nam5-firestore.googleapis.com
-  europe-west6-firestore.googleapis.com
-  asia-northeast2-firestore.googleapis.com
For a complete list of multi-regional and regional hostnames, see Firestore locations .
Restrict global API endpoint usage
To help enforce the use of regional endpoints, use the constraints/gcp.restrictEndpointUsage 
organization policy constraint to block
requests to the global API endpoint. For more information, see Restricting endpoint usage 
.
What's next
- Learn about the Firestore data model .
- Best practices for using Firestore.

