Qlik Groups API
Groups is the resource representing a group in the system, to which space and tenant roles can be assigned to simplify access control management.
Groups is the resource representing a group in the system, to which space and tenant roles can be assigned to simplify access control management.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/groups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
{
"info": {
"title": "groups",
"version": ""
},
"paths": {
"/api/v1/groups": {
"get": {
"tags": [
"groups"
],
"summary": "List groups",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Groups"
}
}
},
"description": "An array of groups, and pagination links."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Invalid request parameters for querying groups."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Unauthorized, JWT is invalid or not provided."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "All operations failed due to insufficient permissions."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"parameters": [
{
"in": "query",
"name": "filter",
"schema": {
"type": "string"
},
"description": "The advanced filtering to use for the query. Refer to [RFC 7644](https://datatracker.ietf.org/doc/rfc7644/) for the syntax. Cannot be combined with any of the fields marked as deprecated. All conditional statements within this query parameter are case insensitive."
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1
},
"description": "The number of groups to retrieve."
},
{
"in": "query",
"name": "next",
"schema": {
"type": "string",
"format": "uid",
"example": "507f191e810c19729de860ea"
},
"description": "The next page cursor."
},
{
"in": "query",
"name": "prev",
"schema": {
"type": "string",
"format": "uid",
"example": "507f191e810c19729de860ga"
},
"description": "The previous page cursor."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string"
},
"description": "Optional resource field name to sort on, eg. name. Can be prefixed with +/- to determine order, defaults to (+) ascending."
},
{
"in": "query",
"name": "systemGroups",
"schema": {
"type": "boolean",
"default": false
},
"description": "Return system groups (e.g. Everyone) instead of regular groups. Cannot be combined with any other query parameters."
},
{
"in": "query",
"name": "totalResults",
"schema": {
"type": "boolean"
},
"description": "Whether to return a total match count in the result. Defaults to false."
}
],
"description": "Returns a list of groups with cursor-based pagination.",
"operationId": "getGroups",
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "1",
"limit": 1000
}
},
"post": {
"tags": [
"groups"
],
"summary": "Create group",
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
},
"description": "Group was successfully created."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Invalid request was made."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Unauthorized to create a group."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Forbidden from creating a group."
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Name conflict when attempting to create a new group."
},
"413": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Payload was too large."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"description": "Creates a new group. The maximum number of groups a tenant can have is 10,000. Group names are case-sensitive, and must be unique.",
"operationId": "postGroups",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupPostSchema"
}
}
},
"required": true
},
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "2",
"limit": 100
}
}
},
"/api/v1/groups/{groupId}": {
"get": {
"tags": [
"groups"
],
"summary": "Get group by ID",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Group"
}
}
},
"description": "Request successfully completed."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "The operation failed due to insufficient permissions."
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Group ID not found or Invalid format."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal Server Error."
}
},
"parameters": [
{
"in": "path",
"name": "groupId",
"schema": {
"type": "string"
},
"required": true,
"description": "The group's unique identifier"
}
],
"description": "Returns the requested group.",
"operationId": "getGroupById",
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "1",
"limit": 1000
}
},
"patch": {
"tags": [
"groups"
],
"summary": "Update group by ID",
"responses": {
"204": {
"description": "Group updated successfully."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Invalid request for patching a user."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Unauthorized to patch a group."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Forbidden from patching a group."
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Group was not found."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"parameters": [
{
"in": "path",
"name": "groupId",
"schema": {
"type": "string",
"format": "uid"
},
"required": true,
"description": "The ID of the group to update."
}
],
"description": "Updates the requested group.",
"operationId": "updateGroupById",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupPatchSchema"
}
}
},
"required": true
},
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "2",
"limit": 100
}
},
"delete": {
"tags": [
"groups"
],
"summary": "Delete group by ID",
"responses": {
"204": {
"description": "Group deleted successfully."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Unauthorized."
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Group ID not found or Invalid format."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
}
},
"parameters": [
{
"in": "path",
"name": "groupId",
"schema": {
"type": "string",
"format": "uid"
},
"required": true,
"description": "The ID of the group to delete."
}
],
"description": "Deletes the requested group.",
"operationId": "deleteGroupById",
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "2",
"limit": 100
}
}
},
"/api/v1/groups/actions/filter": {
"post": {
"tags": [
"groups"
],
"summary": "Filter groups",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Groups"
}
}
},
"description": "Groups retrieved."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Advanced query filter syntax error or query params format error or filter too complex."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Unauthorized, JWT invalid or not provided."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "The operation failed due to insufficient permissions."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"parameters": [
{
"in": "query",
"name": "limit",
"schema": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1
},
"required": false,
"description": "The number of user entries to retrieve."
},
{
"in": "query",
"name": "next",
"schema": {
"type": "string"
},
"required": false,
"description": "Get users with IDs that are higher than the target user ID. Cannot be used in conjunction with prev."
},
{
"in": "query",
"name": "prev",
"schema": {
"type": "string"
},
"required": false,
"description": "Get users with IDs that are lower than the target user ID. Cannot be used in conjunction with next."
},
{
"in": "query",
"name": "sort",
"schema": {
"enum": [
"name",
"+name",
"-name"
],
"type": "string",
"default": "+name"
},
"required": false,
"description": "The field to sort by, with +/- prefix indicating sort order"
}
],
"description": "Retrieves a list of groups matching the filter using advanced query string.",
"operationId": "groups_api_actions_filter",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Filter"
}
}
},
"required": false,
"description": "Will contain the query filter to apply. It shall not contain more than 100 ids."
},
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "special",
"limit": 200
}
}
},
"/api/v1/groups/settings": {
"get": {
"tags": [
"groups-settings"
],
"summary": "Get group settings",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupSettings"
}
}
},
"description": "The requested tenant's group settings."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Not authorized."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "The operation failed due to insufficient permissions."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"description": "Returns the tenant's group settings, such as whether automatic group creation and IdP group synchronization are enabled or disabled, and roles assigned to system groups.",
"operationId": "groups_api_get_settings",
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "1",
"limit": 1000
}
},
"patch": {
"tags": [
"groups-settings"
],
"summary": "Update group settings",
"responses": {
"204": {
"description": "Config updated successfully."
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Bad request. Payload could not be parsed to a JSON Patch or Patch operations are invalid."
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Not authorized."
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "The operation failed due to insufficient permissions."
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"headers": {
"retry-after": {
"schema": {
"type": "integer",
"default": 1
},
"description": "The amount of seconds to wait before retrying the request."
}
},
"description": "Request has been rate limited."
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Errors"
}
}
},
"description": "Internal server error."
}
},
"description": "Updates the tenant's group settings, such as whether automatic group creation and IdP group synchronization are enabled or disabled, and roles assigned to system groups.",
"operationId": "patchSettings",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SettingsPatchSchema"
}
}
},
"required": true
},
"x-qlik-visibility": "public",
"x-qlik-stability": "stable",
"x-qlik-deprecated": false,
"x-qlik-tier": {
"tier": "2",
"limit": 100
}
}
}
},
"openapi": "3.0.0",
"components": {
"schemas": {
"AssignedRoles": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"type",
"level"
],
"properties": {
"id": {
"type": "string",
"format": "uid",
"example": "507f191e810c19729de860ea",
"description": "The unique role identitier"
},
"name": {
"type": "string",
"example": "A Custom Role",
"readOnly": true,
"description": "The role name"
},
"type": {
"enum": [
"default",
"custom"
],
"type": "string",
"example": "custom",
"readOnly": true,
"description": "The type of role"
},
"level": {
"enum": [
"admin",
"user"
],
"type": "string",
"example": "user",
"readOnly": true,
"description": "The role level"
}
},
"description": "represents a role entity stored in the database"
},
"description": "An array of role references. Visibility dependant on access level. Must have access to roles to view other users' assigned roles."
},
"AssignedRolesRefIDs": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uid",
"example": "507f191e810c19729de860ea",
"description": "The unique role identitier"
}
},
"description": "represents a role entity stored in the database"
},
"example": [
{
"id": "507f191e810c19729de860ea"
}
],
"description": "An array of role reference identifiers."
},
"AssignedRolesRefNames": {
"type": "array",
"items": {
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "TenantAdmin",
"description": "The name of the role"
}
}
},
"example": [
{
"name": "TenantAdmin"
}
],
"description": "An array of role reference names."
},
"Error": {
"type": "object",
"required": [
"code",
"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 problem."
},
"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": "integer",
"description": "The HTTP status code."
}
},
"description": "An error object describing the error."
},
"Errors": {
"type": "object",
"example": {
"errors": [
{
"code": "GROUPS-7",
"title": "Not found",
"status": 404
}
],
"traceId": "00000000000000000137b213cf12a77b"
},
"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."
},
"Filter": {
"properties": {
"filter": {
"type": "string",
"example": "(id eq \"626949b9017b657805080bbd\" or id eq \"626949bf017b657805080bbe\") and (status eq \"active\" or status eq \"deleted\")",
"description": "The advanced filtering to be applied the query. All conditional statements within this query parameter are case insensitive."
}
},
"description": "An advanced query filter to be used for complex user querying in the tenant."
},
"Group": {
"type": "object",
"required": [
"id",
"tenantId",
"name",
"status",
"createdAt",
"lastUpdatedAt",
"links"
],
"properties": {
"id": {
"type": "string",
"format": "uid",
"example": "507f191e810c19729de860ea",
"readOnly": true,
"description": "The unique identifier for the group",
"x-qlik-filterable": true
},
"name": {
"type": "string",
"example": "Development",
"maxLength": 256,
"minLength": 1,
"description": "The name of the group.",
"x-qlik-filterable": true
},
"links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"type": "object",
"required": [
"href"
],
"properties": {
"href": {
"type": "string",
"format": "uri",
"example": "http://mytenant.us.qlikcloud.com/api/v1/groups/507f191e810c19729de860ea",
"description": "Link to the current group document"
}
}
}
},
"description": "Contains Links for current document"
},
"status": {
"enum": [
"active",
"disabled"
],
"type": "string",
"example": "active",
"description": "The state of the group.",
"x-qlik-filterable": true
},
"tenantId": {
"type": "string",
"format": "uid",
"example": "q3VRZ4YMixRaLKEPhkZWM-XMIDN7cO8f",
"description": "The tenant identifier associated with the given group"
},
"createdAt": {
"type": "string",
"format": "date-time",
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qliksense/refs/heads/main/openapi/qliksense-groups.json