- tell the SDK which region to use with one call before
initialize(see Select the region in the SDK), and - send your REST API and server-to-server requests to the US API host (see REST API and server-to-server).
Data residency covers regional customer-content hosting. AI, email, integrations, monitoring, account administration and other providers may process data outside the selected region. Review the residency scope and sub-processor schedule before enabling features with location requirements.
Hosting locations
The EU region is hosted on DigitalOcean in Frankfurt, Germany. The US region is hosted in DigitalOcean’s NYC3 data center in New York, United States. These locations describe regional hosting; separate provider processing is described in the sub-processor schedule.Hosts per region
These hosts are region specific. They store or process customer content for projects of that region only.The EU region is served on
*.eu.gleap.ai. The native SDKs (iOS, Android and the wrappers built on them) use these hosts by default from v18; the JavaScript SDK keeps the *.gleap.io hosts as its EU default for now, so existing Content Security Policies keep working — allow *.gleap.ai in your CSP today so a later release can switch without any change on your side. The legacy api.gleap.io, dashapi.gleap.io, ws.gleap.io and sockets.gleap.io hosts keep working and point at the same EU region, so existing integrations and older SDK versions need no change.Global hosts
The following hosts are the same for every region. They serve shared apps and static assets. Their global availability does not change the selected customer-content region; delivery services may still process connection metadata outside that region.Using a Content Security Policy or a firewall allowlist? Allow both
*.gleap.io and *.gleap.ai. See Content Security Policy (CSP) for the full list of directives.How do I know my region?
Open your project in the Gleap dashboard and navigate to the project settings. The data region of the project is shown next to the API token.Residency, transfers and compliance
GDPR (DSGVO) obligations apply where required by law in either region. Gleap’s DPA governs processing on behalf of customers, including international-transfer safeguards. A US region selection does not waive GDPR protections, and an EU region selection does not guarantee EU-only processing by every provider. AI processing includes supporting services such as embeddings, reranking, document conversion and code sandboxes. Check the provider-specific scope as well as the selected model. See EU and US data residency for details and security practices for the SOC 2 Type II report’s scope and period.Existing accounts and migration
ChangingsetRegion, an API URL or a dashboard region selection does not copy or migrate your existing data. Use the region assigned to your project. Contact privacy@gleap.io before changing an existing account’s residency requirements. Existing contractual restrictions remain in force until validly amended.
Select the region in the SDK
SDK v18.0.0 addssetRegion on all platforms. It sets the API, websocket and realtime hosts together and must be called before initialize. The default region is eu, so EU projects don’t need to call it.
- JavaScript
- iOS
- Android
- React Native / Expo
- Flutter
- Ionic / Capacitor
window.Gleap.setRegion("us"); right before window.Gleap.initialize("API_KEY").FlutterFlow apps use the Flutter SDK, so the Flutter call applies. Data regions are not supported by the Cordova, Unity, .NET MAUI and Windows Desktop SDKs yet.
Order rule and manual host setters
setRegion is all you need in almost every setup. The manual host setters still exist for special cases (for example when you route Gleap traffic through your own proxy):
The JavaScript SDK offers all of them; the native SDKs gain the same setters in v18.
The order matters:
- Call
setRegionbeforeinitialize. - A manual setter called after
setRegionoverrides that single host. All other hosts keep the value of the selected region. setRegioncalled aftersetApiUrl,setWSApiUrlorsetRealtimeHostreplaces these three hosts with the region’s hosts again, so always callsetRegionfirst.