openapi: 3.2.0 info: title: Tenants API version: '' 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 tags: - name: Tenants 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 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 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 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 operationId: getApiV1TenantsMe x-operation-id-source: derived 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. TenantCreationRequest: type: object properties: datacenter: type: string example: us-east-1 description: 'The datacenter where the tenant is located. Supported locations for commercial licenses: - `ap-northeast-1`: Japan (jp) - `ap-southeast-1`: Australia (ap) - `ap-southeast-2`: Singapore (sg) - `eu-central-1`: Germany (de) - `eu-west-1`: Ireland (eu) - `eu-west-2`: United Kingdom (uk) - `us-east-1`: United States of America (us) ' licenseKey: type: string example: 1234567890 description: The signed license key of the license that will be associated with the created tenant. 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. 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 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. 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. 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' 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