> ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Get Group Integrations > Retrieves the integrations that the group/channel has. At least one of the following integration permissions is required: * `manage-incoming-integrations` * `manage-own-incoming-integrations` * `manage-outgoing-integrations` * `manage-own-outgoing-integrations` It will return the integrations based on the user's permission. ### Changelog | Version | Description | | ------- | ----------- | |9.0.0 | Removed the `fields` and `query` parameters. Returns `403` with `errorType: error-forbidden` instead of `400` when refused. | | 1.1.0 | Separate permissions in incoming and outgoing. | | 0.49.0 | Added | ## OpenAPI ````json GET /api/v1/groups.getIntegrations { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Rooms" }, "servers": [ { "url": "https://apiexplorer.support.rocket.chat" } ], "tags": [ { "name": "Channels" }, { "name": "Directory" }, { "name": "Groups" }, { "name": "Rooms" }, { "name": "Teams" }, { "name": "Room Invites" }, { "name": "Subscriptions" }, { "name": "ABAC" } ], "paths": { "/api/v1/groups.getIntegrations": { "get": { "tags": [ "Groups" ], "summary": "Get Group Integrations", "description": "Retrieves the integrations that the group/channel has. At least one of the following integration permissions is required:\n* `manage-incoming-integrations`\n* `manage-own-incoming-integrations`\n* `manage-outgoing-integrations`\n* `manage-own-outgoing-integrations`\n\nIt will return the integrations based on the user's permission. \n### Changelog\n| Version | Description |\n| ------- | ----------- |\n|9.0.0 | Removed the `fields` and `query` parameters. Returns `403` with `errorType: error-forbidden` instead of `400` when refused. |\n| 1.1.0 | Separate permissions in incoming and outgoing. |\n| 0.49.0 | Added |", "operationId": "get-api-v1-groups.getIntegrations", "parameters": [ { "$ref": "#/components/parameters/Auth-Token" }, { "$ref": "#/components/parameters/UserId" }, { "schema": { "type": "string", "example": "6731de043b74d3c57d334d0c" }, "in": "query", "name": "roomId", "description": "Enter the private channel's ID. Alternatively, you can enter the room name using the `roomName` query parameter. You can find the IDs by using any of the following endpoints:\n* Get List of User Groups: This endpoint returns all private channels in the workspace, if you have the required permissions to view them.\n* Get Groups: This endpoint returns the private channels that you are a member of.", "required": true }, { "$ref": "#/components/parameters/offset" }, { "$ref": "#/components/parameters/count" }, { "$ref": "#/components/parameters/sort" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "integrations": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "enabled": { "type": "boolean" }, "username": { "type": "string" }, "alias": { "type": "string" }, "avatar": { "type": "string" }, "name": { "type": "string" }, "triggerWords": { "type": "array", "items": { "type": "string" } }, "urls": { "type": "array", "items": { "type": "string" } }, "token": { "type": "string" }, "script": { "type": "string" }, "scriptEnabled": { "type": "boolean" }, "impersonateUser": { "type": "boolean" }, "scriptCompiled": { "type": "string" }, "scriptError": { "type": "string" }, "type": { "type": "string" }, "userId": { "type": "string" }, "channel": { "type": "array", "items": { "type": "string" } }, "_createdAt": { "type": "string" }, "_createdBy": { "type": "object", "properties": { "username": { "type": "string" }, "_id": { "type": "string" } } }, "_updatedAt": { "type": "string" } } } }, "success": { "type": "boolean" } } }, "examples": { "Success": { "value": { "integrations": [ { "_id": "WMQDChpnYTRmFre9h", "enabled": true, "username": "rocket.cat", "alias": "Guggy", "avatar": "http://res.guggy.com/logo_128.png", "name": "Guggy", "triggerWords": [ "!guggy", "guggy", "gif+" ], "urls": [ "http://text2gif.guggy.com/guggify" ], "token": "8DFS89DMKLWEN", "script": "const config = {\n color: '#ffffff'\n};\n\nclass Script {\n prepare_outgoing_request({ request }) {\n const trigger = request.data.trigger_word + ' ';\n const phrase = request.data.text.replace(trigger, '');\n request.headers['Content-Type']='application/json';\n request.headers['apiKey']=request.data.token;\n return {\n url: request.url,\n headers: request.headers,\n data: {format: 'gif', sentence: phrase},\n method: 'POST'\n };\n }\n\n process_outgoing_response({ request, response }) {\n if(response.content.gif) {\n return {\n content: {\n attachments: [\n {\n image_url: response.content.gif,\n color: ((config['color'] != '') ? '#' + config['color'].replace('#', '') : '#ffffff')\n }\n ]\n }\n };\n } else {\n return {\n content: {\n text: 'Sorry I don\\'t have a photo for you :disappointed_relieved:'\n }\n };\n }\n }\n}", "scriptEnabled": true, "impersonateUser": false, "scriptCompiled": "function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}var config={color:'#ffffff'};var Script=function(){function Script(){_classCallCheck(this,Script)}Script.prototype.prepare_outgoing_request=function prepare_outgoing_request(_ref){var request=_ref.request;var trigger=request.data.trigger_word+' ';var phrase=request.data.text.replace(trigger,'');request.headers['Content-Type']='application/json';request.headers['apiKey']=request.data.token;return{url:request.url,headers:request.headers,data:{format:'gif',sentence:phrase},method:'POST'}};Script.prototype.process_outgoing_response=function process_outgoing_response(_ref2){var request=_ref2.request;var response=_ref2.response;if(response.content.gif){return{content:{attachments:[{image_url:response.content.gif,color:config['color']!=''?'#'+config['color'].replace('#',''):'#ffffff'}]}}}else{return{content:{text:'Sorry I don\\'t have a photo for you :disappointed_relieved:'}}}};return Script}();", "scriptError": "", "type": "webhook-outgoing", "userId": "rocket.cat", "channel": [ "#private-group-name" ], "_createdAt": "2017-01-05T17:06:05.66Z", "_createdBy": { "username": "graywolf336", "_id": "R4jgcQaQhvvK6K3iY" }, "_updatedAt": "2017-01-05T17:06:05.66Z" } ], "success": true } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" }, "errorType": { "type": "string" } } }, "examples": { "Example 1": { "value": { "success": false, "error": "The parameter \"roomId\" or \"roomName\" is required [error-room-param-not-provided]", "errorType": "error-room-param-not-provided" } } } } } }, "401": { "$ref": "#/components/responses/authorizationError" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" }, "errorType": { "type": "string" } } }, "examples": { "Example 2": { "value": { "success": false, "error": "User does not have the permissions required for this action", "errorType": "error-forbidden" } } } } } } } } } }, "components": { "parameters": { "Auth-Token": { "name": "X-Auth-Token", "in": "header", "description": "The `authToken` of the authenticated user.", "required": true, "schema": { "type": "string" }, "example": "RScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f" }, "UserId": { "name": "X-User-Id", "in": "header", "description": "The `userId` of the authenticated user.", "required": true, "schema": { "type": "string" }, "example": "rbAXPnMktTFbNpwtJ" }, "offset": { "name": "offset", "in": "query", "description": "Number of items to \"skip\" in the query, i.e. requests return count items, skipping the first offset items. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": false, "schema": { "type": "integer" }, "example": 50 }, "count": { "name": "count", "in": "query", "description": "The number of items to return. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": false, "schema": { "type": "integer" }, "example": 50 }, "sort": { "name": "sort", "in": "query", "description": "List of fields to order by, and in which direction. This is a JSON object, with properties listed in desired order, with values of 1 for ascending, or -1 for descending. For example, {\"value\": -1, \"_id\": 1}. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": false, "schema": {} } }, "responses": { "authorizationError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } } }, "examples": { "Authorization Error": { "value": { "success": false, "error": "You must be logged in to do this." } } } } } } } } } ````