Skip to main content

Tenant

A Tenant in this system represents an organization (e.g., Acme Inc.) that owns users, tours, and configurations. Public v2 endpoints use snake_case keys and are documented in the OpenAPI spec; highlights below.

Endpoints​

  • GET /api/v2/tenant — returns the current authenticated tenant resource.
  • PUT /api/v2/tenant — full replacement of the tenant resource (name, language, timezone).
  • PATCH /api/v2/tenant — JSON Merge Patch (RFC 7396). Omit fields to keep them unchanged.

All tenant endpoints require authentication and the g:updateTenant grant.

Payloads​

Get (GET /api/v2/tenant)​

{
"name": "TenantA",
"language": "de-AT",
"timezone": "Europe/Vienna"
}

Replace (PUT /api/v2/tenant)​

{
"name": "Acme Inc.",
"language": "en-US",
"timezone": "Europe/Vienna"
}

Patch (PATCH /api/v2/tenant)​

Content-Type: application/merge-patch+json (application/json is accepted as an alias)

{
"name": "Acme Europe",
"language": "de-DE"
}

No-op patch (keeps current value):

{}

Notes:

  • name must be a non-empty string with max length 255.
  • language must be a non-empty string with max length 10.
  • timezone must be a non-empty string with max length 50 and a valid IANA timezone identifier (for example Europe/Vienna).
  • name: null is rejected with 422 Validation failed.
  • language: null and timezone: null are rejected with 422 Validation failed.
  • language and timezone are stored tenant preferences. They do not directly override the browser UI language.

Frontend-only timezone catalog​

For first-party frontend clients, timezone options are provided by:

  • GET /frontend/v2/frontend-configuration/timezones — returns available IANA timezone identifiers.

Frontend-only language catalog​

For first-party frontend clients, language options are provided by:

  • GET /frontend/v2/frontend-configuration/languages — returns currently supported tenant language identifiers.

Both frontend catalog endpoints are intended for internal frontend consumption and are not part of the public v2 API contract.