{ "info": { "title": "tenants", "version": "" }, "paths": { "/api/v1/tenants": { "post": { "tags": [ "tenants" ], "summary": "Create a tenant", "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tenant" } } }, "description": "Tenant created." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" }, "examples": { "MissingLicenseKeyProperty": { "value": { "errors": [ { "code": "TENANTS-21", "title": "Missing licenseKey property", "status": "400" } ] } } } } }, "description": "Invalid request was made." }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" }, "examples": { "InvalidLicense": { "value": { "errors": [ { "code": "TENANTS-23", "title": "Invalid license error", "status": "403" } ] } }, "LicenseQuotaLimitReached": { "value": { "errors": [ { "code": "TENANTS-22", "title": "License quota limit reached", "status": "403" } ] } } } } }, "description": "Invalid request was made." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" }, "examples": { "InternalServerError": { "value": { "errors": [ { "code": "TENANTS-24", "title": "Internal server error", "status": "500" } ] } } } } }, "description": "Internal server error" }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Unexpected error." } }, "description": "Creates a tenant in the requested region, linked to the provided license key. You must use a regional OAuth client generated via the [My Qlik portal](https://account.myqlik.qlik.com/account) to call this endpoint. Tenant creation, deactivation, and reactivation requests must be sent to the register endpoint in the relevant Qlik Cloud region, e.g. `https://register.us.qlikcloud.com/api/v1/tenants` if interacting with tenants in the `us` region.", "operationId": "createTenant", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantCreationRequest" } } }, "required": true }, "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "2", "limit": 100 } } }, "/api/v1/tenants/{tenantId}": { "get": { "tags": [ "tenants" ], "summary": "Get a tenant", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Tenant" } } }, "description": "Tenant found." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Tenant not found." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Unexpected error" } }, "parameters": [ { "in": "path", "name": "tenantId", "schema": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69" }, "required": true, "description": "The ID of the tenant to retrieve" } ], "description": "Retrieves a specific tenant by ID.", "operationId": "getTenantById", "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "1", "limit": 1000 } }, "patch": { "tags": [ "tenants" ], "summary": "Update a tenant", "responses": { "204": { "description": "Tenant updated successfully" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantPatchErrors" } } }, "description": "Invalid PATCH request" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Tenant not found." }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Request has been rate limited." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Unexpected error" } }, "parameters": [ { "in": "path", "name": "tenantId", "schema": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69" }, "required": true, "description": "The ID of the tenant to update" } ], "description": "Updates properties of a specific tenant by ID.", "operationId": "updateTenantById", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantPatchSchema" } } }, "required": true }, "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "2", "limit": 100 } } }, "/api/v1/tenants/{tenantId}/actions/deactivate": { "post": { "tags": [ "tenants" ], "summary": "Deactivate a tenant", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantDeactivateResponse" } } }, "description": "Tenant deactivated successfully" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Invalid request" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Tenant Not Found" }, "412": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Precondition Failed (invalid qlik-confirm-hostname value)" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Request has been rate limited." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Unexpected error" } }, "parameters": [ { "in": "path", "name": "tenantId", "schema": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69" }, "required": true, "description": "The id of the tenant to deactivate" }, { "in": "header", "name": "qlik-confirm-hostname", "schema": { "type": "string", "format": "hostname", "example": "unicorn.eu.qlikcloud.com" }, "required": true, "description": "A confirmation string that should match the hostname associated with the tenant resource to be deactivated. Example: unicorn.eu.qlikcloud.com" } ], "description": "Deactivates a specific tenant. Once deactivated, tenant will be deleted on or after `estimatedPurgeDate`. Tenant can be reactivated using `/v1/tenants/{tenantId}/actions/reactivate` until this date. You must use a regional OAuth client generated via the [My Qlik portal](https://account.myqlik.qlik.com/account) to call this endpoint. Tenant creation, deactivation, and reactivation requests must be sent to the register endpoint in the relevant Qlik Cloud region, e.g. `https://register.us.qlikcloud.com/api/v1/tenants/{tenantId}/actions/deactivate` if interacting with tenants in the `us` region.", "operationId": "deactivateTenantById", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantDeactivateRequest" } } } }, "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "2", "limit": 100 } } }, "/api/v1/tenants/{tenantId}/actions/reactivate": { "post": { "tags": [ "tenants" ], "summary": "Reactivate a tenant", "responses": { "200": { "content": { "application/json": { "schema": { "type": "object" } } }, "description": "Tenant reactivated successfully" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Not Found" }, "412": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Precondition Failed (invalid qlik-confirm-hostname value)" }, "429": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Request has been rate limited." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Errors" } } }, "description": "Unexpected error" } }, "parameters": [ { "in": "path", "name": "tenantId", "schema": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69" }, "required": true, "description": "The id of the tenant to reactivate" }, { "in": "header", "name": "qlik-confirm-hostname", "schema": { "type": "string", "example": "unicorn.us.qlikcloud.com" }, "required": true, "description": "A confirmation string that should match one of the hostnames of the tenant resource to be reactivated. Example: unicorn.eu.qlikcloud.com" } ], "description": "Reactivates a deactivated tenant. Tenants can be reactivated until the `estimatedPurgeDate` provided at time of deactivation. You must use a regional OAuth client generated via the [My Qlik portal](https://account.myqlik.qlik.com/account) to call this endpoint. Tenant creation, deactivation, and reactivation requests must be sent to the register endpoint in the relevant Qlik Cloud region, e.g. `https://register.us.qlikcloud.com/api/v1/tenants/{tenantId}/actions/reactivate` if interacting with tenants in the `us` region.", "operationId": "reactivateTenantById", "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } } }, "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "2", "limit": 100 } } }, "/api/v1/tenants/me": { "get": { "tags": [ "tenants" ], "summary": "Redirect to current tenant", "responses": { "302": { "content": { "text/html": { "schema": { "type": "string" } } }, "headers": { "Location": { "schema": { "type": "string" } } }, "description": "Successful redirect." } }, "description": "Redirects to current tenant.", "x-qlik-visibility": "public", "x-qlik-stability": "stable", "x-qlik-deprecated": false, "x-qlik-tier": { "tier": "1", "limit": 1000 } } } }, "openapi": "3.0.0", "components": { "schemas": { "Error": { "type": "object", "required": [ "code", "status", "title" ], "properties": { "code": { "type": "string", "description": "The error code." }, "meta": { "type": "object", "description": "Additional properties relating to the error." }, "title": { "type": "string", "description": "Summary of the problem." }, "detail": { "type": "string", "description": "A human-readable explanation specific to this occurrence of the error." }, "source": { "type": "object", "properties": { "pointer": { "type": "string", "description": "A JSON Pointer to the property that caused the error." }, "parameter": { "type": "string", "description": "The URI query parameter that caused the error." } }, "description": "References to the source of the error." }, "status": { "type": "string", "description": "The HTTP status code." } }, "description": "An error object describing the error." }, "Errors": { "type": "object", "example": { "errors": [ { "code": "TENANTS-8", "title": "Not found", "status": 404 } ], "traceId": "000000000000000079cf1ebeae103de1" }, "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/Error" }, "description": "An array of errors related to the operation." }, "traceId": { "type": "string", "description": "A unique identifier for tracing the error." } }, "description": "The error response object describing the error from the handling of an HTTP request." }, "Tenant": { "type": "object", "required": [ "name", "id" ], "properties": { "id": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69", "readOnly": true, "description": "The unique tenant identifier.", "x-qlik-visibility": "public" }, "name": { "type": "string", "example": "QlikTenant", "description": "The display name of the tenant." }, "links": { "type": "object", "readOnly": true, "required": [ "self" ], "properties": { "self": { "type": "object", "required": [ "href" ], "properties": { "href": { "type": "string", "example": "http://foo.example/api/v1/tenants/TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69", "description": "URL that defines the resource." } }, "description": "A link to this tenant." } } }, "region": { "type": "string", "example": "us", "readOnly": true, "description": "The region where the tenant is located." }, "status": { "enum": [ "active", "disabled", "deleted", "user-access-disabled" ], "type": "string", "description": "The status of the tenant." }, "created": { "type": "string", "format": "date", "readOnly": true, "description": "The timestamp for when the tenant record was created (1970-01-01T00:00:00.001Z for static tenants)." }, "hostnames": { "type": "array", "items": { "type": "string", "example": "foo.example" }, "description": "List of case insensitive hostnames that are mapped to the tenant. The first record maps to the display name and the subsequent entries are aliases." }, "datacenter": { "type": "string", "example": "us-east-1", "description": "The datacenter where the tenant is located." }, "lastUpdated": { "type": "string", "format": "date", "readOnly": true, "description": "The timestamp for when the tenant record was last updated (1970-01-01T00:00:00.001Z for static tenants)." }, "createdByUser": { "type": "string", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy7A", "description": "The user ID who created the tenant." }, "statusLastUpdatedAt": { "type": "string", "format": "date-time", "example": "2023-08-18T12:34:56.789Z", "readOnly": true, "description": "The timestamp for when the tenant status was last changed." }, "enableAnalyticCreation": { "type": "boolean", "default": false, "x-qlik-deprecated": true, "x-qlik-deprecated-sunset": "2027-03", "x-qlik-deprecated-version": "2026-03", "x-qlik-deprecated-description": "enableAnalyticCreation is deprecated and will be removed in a future version." }, "enableAppOpeningFeedback": { "type": "boolean", "default": false }, "autoAssignCreateSharedSpacesRoleToProfessionals": { "type": "boolean", "default": true }, "autoAssignDataServicesContributorRoleToProfessionals": { "type": "boolean", "default": true }, "autoAssignPrivateAnalyticsContentCreatorRoleToProfessionals": { "type": "boolean", "default": true } } }, "TenantCreationRequest": { "type": "object", "properties": { "datacenter": { "type": "string", "example": "us-east-1", "description": "The datacenter where the tenant is located.\n\nSupported locations for commercial licenses:\n- `ap-northeast-1`: Japan (jp)\n- `ap-southeast-1`: Australia (ap)\n- `ap-southeast-2`: Singapore (sg)\n- `eu-central-1`: Germany (de)\n- `eu-west-1`: Ireland (eu)\n- `eu-west-2`: United Kingdom (uk)\n- `us-east-1`: United States of America (us)\n" }, "licenseKey": { "type": "string", "example": 1234567890, "description": "The signed license key of the license that will be associated with the created tenant." } } }, "TenantDeactivateRequest": { "type": "object", "properties": { "purgeAfterDays": { "type": "integer", "default": 30, "maximum": 90, "minimum": 10, "description": "Sets the number of days to purge the tenant after deactivation. Only available to OEMs." } }, "description": "A request to deactivate a tenant." }, "TenantDeactivateResponse": { "type": "object", "properties": { "id": { "type": "string", "format": "uid", "example": "TiQ8GPVr8qI714Lp5ChAAFFaU24MJy69", "readOnly": true, "description": "The unique tenant identifier." }, "status": { "enum": [ "disabled" ], "type": "string", "description": "The status of the tenant." }, "estimatedPurgeDate": { "type": "string", "format": "date-time", "example": "2023-08-18T00:00:00.000Z", "description": "The estimated date time of when tenant will be purged." } }, "description": "The result of tenant deactivation." }, "TenantMultipleMetaErrorsDetail": { "type": "array", "items": { "$ref": "#/components/schemas/TenantSingleMetaErrorDetail" } }, "TenantPatchErrors": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "required": [ "code", "title" ], "properties": { "code": { "type": "string", "example": "TENANTS-10", "description": "The error code." }, "meta": { "oneOf": [ { "$ref": "#/components/schemas/TenantSingleMetaErrorDetail" }, { "$ref": "#/components/schemas/TenantMultipleMetaErrorsDetail" } ] }, "title": { "type": "string", "example": "Invalid PATCH request", "description": "Summary of the problem." }, "source": { "type": "object", "properties": { "pointer": { "type": "string", "example": "/hostnames/1", "description": "A JSON Pointer to the property that caused the error." }, "parameter": { "type": "string", "description": "The URI query parameter that caused the error." } }, "description": "References to the source of the error." } }, "description": "An error object." } } } }, "TenantPatchSchema": { "type": "array", "items": { "type": "object", "required": [ "op", "path", "value" ], "properties": { "op": { "enum": [ "replace" ], "type": "string", "description": "The operation to be performed." }, "path": { "enum": [ "/name", "/hostnames/1", "/autoAssignCreateSharedSpacesRoleToProfessionals", "/autoAssignPrivateAnalyticsContentCreatorRoleToProfessionals", "/autoAssignDataServicesContributorRoleToProfessionals", "/enableAnalyticCreation", "/enableAppOpeningFeedback" ], "type": "string", "description": "A JSON Pointer value that references a location within the target document where the operation is performed." }, "value": { "oneOf": [ { "type": "string" }, { "type": "boolean" } ], "description": "The value to be used for this operation." } }, "description": "A JSON Patch document as defined in http://tools.ietf.org/html/rfc6902." }, "example": [ { "op": "replace", "path": "/name", "value": "Corp" }, { "op": "replace", "path": "/hostnames/1", "value": "example-tenant.us.qlikcloud.com" }, { "op": "replace", "path": "/autoAssignCreateSharedSpacesRoleToProfessionals", "value": true }, { "op": "replace", "path": "/autoAssignPrivateAnalyticsContentCreatorRoleToProfessionals", "value": false }, { "op": "replace", "path": "/autoAssignDataServicesContributorRoleToProfessionals", "value": true }, { "op": "replace", "path": "/enableAnalyticCreation", "value": false } ] }, "TenantSingleMetaErrorDetail": { "type": "object", "properties": { "code": { "type": "string", "example": "TENANTS-10", "description": "The error code." }, "title": { "type": "string", "example": "Subdomain should be between 3 and 63 characters", "description": "The error summary." } } } } }, "servers": [ { "url": "https://{tenant}.{region}.qlikcloud.com", "variables": { "region": { "default": "us", "description": "The region the tenant is hosted in" }, "tenant": { "default": "your-tenant", "description": "Name of the tenant that will be called" } } } ] }