Update residency settings

⚠️
Preview — this feature is being built; the design below is the spec.
PUT https://app.syntic.ai/v1/organizations/data_residency

Set the default region, the regions requests may choose, and per-workspace locks. Changing the storage region of existing data is not automatic: files and memory stores stay where they were created, and the response lists how many objects live outside the new default.

For how this fits into a full workflow, see Data residency.

Headers

HeaderRequiredValue
AuthorizationYesBearer <admin key>: an Admin API key (sk_admin_...). Inference keys are refused with 403 admin_key_required. See Admin API keys.
syntic-betaYes, while in previewadmin-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.
Content-TypeYesapplication/json

Body parameters

ParameterTypeRequiredNotes
default_regionstringYes
allowed_regionsarray of stringsYesMust include default_region.
workspace_overridesarrayNoReplaces the whole list.

Response

200 OK, Content-Type: application/json

{
  "type": "data_residency",
  "default_region": "eu",
  "allowed_regions": [
    "eu"
  ],
  "workspace_overrides": [
    {
      "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
      "region": "eu",
      "locked": true
    }
  ],
  "updated_at": "2026-11-05T10:00:00Z",
  "objects_outside_default": {
    "files": 112,
    "memory_stores": 2
  }
}
FieldTypeDescription
default_regionstringus, eu or global. Where requests without a region are processed and where files, batches and agent data are stored.
allowed_regionsarrayRegions a request may ask for with the per-request region field. A request for any other region is refused.
workspace_overridesarrayPer-workspace region; locked stops requests in that workspace from choosing another region.
objects_outside_defaultobjectExisting stored objects in another region.

Examples

curl -sS -X PUT "https://app.syntic.ai/v1/organizations/data_residency" \
  -H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
  -H "syntic-beta: admin-2026-11-01" \
  -H "Content-Type: application/json" \
  -d '{
      "default_region": "eu",
      "allowed_regions": [
        "eu"
      ],
      "workspace_overrides": [
        {
          "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
          "region": "eu",
          "locked": true
        }
      ]
    }'

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
400invalid_request_errorregion_not_availableThe region is not offered for your plan or for a model your workspaces pin.
403permission_errorowner_requiredOnly owners can change residency.
401authentication_errorinvalid_api_keyThe admin key is missing, unknown, revoked or expired.
403permission_erroradmin_key_requiredAn inference key was used.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?