Console & adminData residency

Data residency

⚠️
Preview — this feature is being built; the design below is the spec.

Data residency lets you choose the geographic region where a workspace’s requests are processed and its stored content is kept. Customers in the EU and in regulated industries often need to show that personal data stays inside one jurisdiction; a region setting makes that a property of the workspace rather than a promise in a contract.

Today the Syntic API runs in a single region and there is no region setting. Console agent runtime nodes already let you pick a hosting location (see Deployment), but that choice covers where the node runs, not where model requests are processed.

Regions

Region codeProcessing and storage locationStatus
usUnited StatesDefault; all organizations today
euEuropean Union (Frankfurt, with failover in Amsterdam)First new region
ukUnited Kingdom (London)Later
ap-southeastSingaporeLater

Each region is a full copy of the API: models, files, batches, sessions and every other feature run inside it. A model is offered in a region only when it can be served there; GET /v1/models lists the regions per model.

How it works

  • Region is a workspace setting. Each workspace has a data_region. Every key in the workspace inherits it. Different workspaces in one organization can use different regions.
  • Set at creation, changed rarely. You choose the region when creating a workspace. Changing it later is possible only while the workspace holds no stored content (files, sessions, memory, vaults); otherwise set up a fresh workspace in the new region.
  • Hosts. Requests can be sent to https://app.syntic.ai/v1 from anywhere: they are routed to the workspace’s region before any content is processed. For strict network control you can also use the regional host, for example https://eu.app.syntic.ai/v1, which refuses keys from workspaces in other regions.
  • What stays in region: prompts, outputs, files, batch inputs and results, session events, execution traces, memories, vault secrets and caches.
  • What is global: account and organization records, billing, usage records (token counts, costs, no content) and audit events. These hold no prompt or output content.

Per-request override

A later phase adds a syntic-region request header that may narrow (never widen) processing to a region the workspace allows, for organizations that run one workspace across several regions.

Set a workspace’s region

In the Console: Settings → Workspaces → New workspace → Data region. With the Admin API:

curl -sS https://app.syntic.ai/v1/organizations/workspaces \
  -H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -H "syntic-beta: admin-2026-11-01" \
  -d '{"name": "eu-production", "data_region": "eu"}'

Responses from a workspace in a non-default region carry the header syntic-region: eu so you can verify routing in your logs.

Pricing and limits

  • Regional processing may carry a surcharge on token prices, shown per model on Pricing when the region launches.
  • Rate limits are counted per region.
  • Some preview features may launch in us first; their pages say so.

Errors

StatustypecodeWhen
400invalid_requestunknown_regionThe region code is not on the list.
400invalid_requestmodel_not_in_regionThe model is not served in the workspace’s region.
403permissionregion_mismatchA key was sent to a regional host for a different region.
409invalid_requestregion_change_blockedChanging a workspace’s region while it holds stored content.

Build notes for the platform team

  • Design the workspace table with data_region from the start, even while only us exists, to avoid a migration later.
  • Global routing must resolve the key’s workspace region before reading the body; only the auth header is inspected at the edge.
  • Each region needs its own storage buckets, database for content tables, cache and model capacity. Usage records are replicated to the global billing store without content.
Was this page helpful?