openapi: 3.2.0 info: title: Brands 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: Brands paths: /api/v1/brands: get: tags: - Brands summary: List brands responses: '200': content: application/json: schema: $ref: '#/components/schemas/BrandsList' description: OK Response '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' parameters: - in: query name: endingBefore schema: type: string required: false description: Cursor to previous. - in: query name: limit schema: type: integer default: 5 maximum: 100 minimum: 1 required: false description: Maximum number of brands to retrieve. - in: query name: sort schema: enum: - id - +id - -id - createdAt - +createdAt - -createdAt - updatedAt - +updatedAt - -updatedAt type: string default: -id required: false description: Field to sort by, prefixed with -/+ to indicate the order. - in: query name: startingAfter schema: type: string required: false description: Cursor to the next page. description: Lists all brand entries for a tenant. operationId: getBrands x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 post: tags: - Brands summary: Create a new brand responses: '201': content: application/json: schema: $ref: '#/components/schemas/Brand' description: Created Response '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' description: Creates a new brand. operationId: postBrands requestBody: content: multipart/form-data: schema: type: object required: - name properties: logo: type: string format: binary description: The path and name of a JPG or PNG file that will be adjusted to fit in a 'box' measuring 109px in width and 62 px in height while maintaining aspect ratio. Maximum size of 300 KB, but smaller is recommended. name: type: string description: Name of the brand. styles: type: string format: binary description: The path and name of a JSON file to define brand style settings. Maximum size is 100 KB. This property is not currently operational. favIcon: type: string format: binary description: The path and name of a properly formatted ICO file. Maximum size is 100 KB. description: type: string description: Description of the brand. example: logo: image-file-content name: My brand styles: json-file-content favIcon: image-file-content description: Some brand description encoding: logo: contentType: image/png, image/jpeg styles: contentType: application/json favIcon: contentType: image/x-icon, image/vnd.microsoft.icon x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/brands/{brand-id}: get: tags: - Brands summary: Retrieve a brand responses: '200': content: application/json: schema: $ref: '#/components/schemas/Brand' description: OK Response '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' description: Returns a specific brand. operationId: getBrandsByBrandId x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 patch: tags: - Brands summary: Update a brand responses: '204': description: No Content Response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' description: Patches a brand. operationId: patchBrandsByBrandId requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/BrandPatch' required: true x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 delete: tags: - Brands summary: Delete a brand responses: '204': description: No Content Response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' description: Deletes a specific brand. If the active brand is deleted, the tenant will return to the Qlik default. operationId: deleteBrandsByBrandId x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/brands/{brand-id}/actions/activate: post: tags: - Brands summary: Activate a brand responses: '200': content: application/json: schema: $ref: '#/components/schemas/Brand' description: Responds with the brand that was activated. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' description: Sets the brand active and de-activates any other active brand. If the brand is already active, no action is taken. operationId: postBrandsByBrandIdActionsActivate requestBody: content: application/json: {} x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/brands/{brand-id}/actions/deactivate: post: tags: - Brands summary: Deactivate a brand responses: '200': content: application/json: schema: $ref: '#/components/schemas/Brand' description: Responds with the brand that was deactivated. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' description: Sets the brand so it is no longer active, returning the tenant the Qlik default brand. If the brand is already inactive, no action is taken. operationId: postBrandsByBrandIdActionsDeactivate requestBody: content: application/json: {} x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/brands/{brand-id}/files/{brand-file-id}: get: tags: - Brands summary: Download brand file responses: '200': content: '*/*': schema: type: string format: binary description: OK Response '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - in: header name: Accept schema: type: string default: '*/*' required: false description: Media type accepted for the downloaded brand file. - $ref: '#/components/parameters/brand-id' - $ref: '#/components/parameters/brand-file-id' description: Downloads the specified brand file. operationId: getBrandsByBrandIdFilesByBrandFileId x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 post: tags: - Brands summary: Creates a brand file responses: '201': content: application/json: schema: $ref: '#/components/schemas/BrandFile' description: Created Response '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' - $ref: '#/components/parameters/brand-file-id' description: Creates a brand file for the specified identifier. operationId: postBrandsByBrandIdFilesByBrandFileId requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: The path and name of a file to upload. additionalProperties: false encoding: file: contentType: image/png, image/jpeg, image/x-icon, image/vnd.microsoft.icon, application/json required: true x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 put: tags: - Brands summary: Update a brand file responses: '200': content: application/json: schema: $ref: '#/components/schemas/BrandFile' description: OK Response - file updated '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' - $ref: '#/components/parameters/brand-file-id' description: Updates the specified brand file. operationId: putBrandsByBrandIdFilesByBrandFileId requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: A file to upload. additionalProperties: false encoding: file: contentType: image/png, image/jpeg, image/x-icon, image/vnd.microsoft.icon, application/json required: true x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 delete: tags: - Brands summary: Delete a brand file responses: '204': description: No content response. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' parameters: - $ref: '#/components/parameters/brand-id' - $ref: '#/components/parameters/brand-file-id' description: Deletes the specified brand file. operationId: deleteBrandsByBrandIdFilesByBrandFileId x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/brands/active: get: tags: - Brands summary: Retrieve active brand responses: '200': content: application/json: schema: $ref: '#/components/schemas/NoActiveBrand' description: No active brand, returns an empty response. '301': description: Successful redirect. description: Returns the current active brand. If using the Qlik default brand, no value is returned. operationId: getBrandsActive x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 components: schemas: Brand: type: object required: - id - name - description - files properties: id: type: string readOnly: true name: type: string files: type: array items: $ref: '#/components/schemas/BrandFile' description: Collection of resources that make up the brand. active: type: boolean readOnly: true createdAt: type: string format: date-time example: '2024-01-01T00:00:00.000Z' readOnly: true description: The UTC timestamp when the brand was created. createdBy: type: string readOnly: true description: ID of a user that created the brand. updatedAt: type: string format: date-time example: '2024-01-01T00:00:00.000Z' readOnly: true description: The UTC timestamp when the brand was last updated. updatedBy: type: string readOnly: true description: ID of a user that last updated the brand. description: type: string description: A brand is a collection of assets for applying custom branding. Only a single brand can be active in a tenant. BrandPatch: type: object required: - op - path properties: op: enum: - add - remove - replace type: string description: The operation to be performed. path: enum: - /name - /description type: string example: /description description: The path for the given resource field to patch. value: type: string description: The value to be used for this operation. description: A JSON Patch document as defined in https://datatracker.ietf.org/doc/html/rfc6902. BrandFile: type: object properties: id: enum: - logo - favIcon - styles type: string eTag: type: string path: type: string contentType: type: string description: Represents one of the assets used as part of the brand. These include logos, favicons, and some styles. NoActiveBrand: type: object description: Empty object inferring lack of active branding. Link: required: - href properties: href: type: string description: URL of a resource request. ErrorResponse401: type: object properties: errors: type: array items: type: object properties: code: type: string example: HTTP-401 title: type: string example: Unauthorized detail: type: string example: The user is not authorized to access the service. traceId: type: string ErrorResponse400: type: object properties: errors: type: array items: type: object properties: code: type: string example: HTTP-400 title: type: string example: Bad request detail: type: string example: The request is incorrect. traceId: type: string ErrorResponse403: type: object properties: errors: type: array items: type: object properties: code: type: string example: HTTP-403 title: type: string example: Forbidden detail: type: string example: You don't have sufficient permissions to access this resource. traceId: type: string BrandsList: type: object properties: data: type: array items: $ref: '#/components/schemas/Brand' links: properties: next: $ref: '#/components/schemas/Link' prev: $ref: '#/components/schemas/Link' self: $ref: '#/components/schemas/Link' description: A collection of brands. ErrorResponse404: type: object properties: errors: type: array items: type: object properties: code: type: string example: HTTP-404 title: type: string example: Not found detail: type: string example: The resource was not found. traceId: type: string ErrorResponse500: type: object properties: errors: type: array items: type: object properties: code: type: string example: HTTP-500 title: type: string example: Internal Server Error detail: type: string example: Something went wrong in the server. traceId: type: string responses: BadRequest: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse400' description: Bad Request Unauthorized: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse401' description: Unauthorized Forbidden: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse403' description: Forbidden NotFound: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse404' description: Not found InternalServerError: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse500' description: Internal Server Error parameters: brand-id: in: path name: brand-id schema: type: string required: true description: The brand's unique identifier. brand-file-id: in: path name: brand-file-id schema: enum: - logo - favIcon - styles type: string required: true description: The unique identifier of a file within a brand.