# Groups

## The Group model

| Key         | Type    | Description                                                     |
| ----------- | ------- | --------------------------------------------------------------- |
| id          | String  | The unique identifier for the group which is given by Tiledesk. |
| name        | String  | The group name.                                                 |
| members     | Array   | The group members                                               |
| trashed     | Boolean | Determine if the group is deleted                               |
| attributes  | Object  | The custom attributes which are set for the group.              |
| createdAt   | String  | The time when the group was created.                            |
| updatedAt   | String  | The time when the group was updated.                            |
| createdBy   | String  | The unique identifier of the row creator                        |
| id\_project | String  | The unique identifier of the project                            |

## Get all groups

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/:project_id/groups`

Allows an account to list all the groups of the project.

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Headers

| Name          | Type   | Description                            |
| ------------- | ------ | -------------------------------------- |
| Authorization | string | authorization token. Basic Auth or JWT |

{% tabs %}
{% tab title="200 " %}

```
[
   {
      "_id":"5c34b5149f22a7001681e887",
      "updatedAt":"2019-01-08T14:35:09.621Z",
      "createdAt":"2019-01-08T14:35:00.625Z",
      "name":"gruppo1",
      "trashed":false,
      "id_project":"5b55e806c93dde00143163dd",
      "createdBy":"5ab0f3fa57066e0014bfd71e",
      "__v":0,
      "members":[
         "5ad5bd40c975820014ba9009"
      ]
   },
   {
      "_id":"5c34b52a9f22a7001681e888",
      "updatedAt":"2019-01-08T14:35:29.678Z",
      "createdAt":"2019-01-08T14:35:22.489Z",
      "name":"gruppo2",
      "trashed":false,
      "id_project":"5b55e806c93dde00143163dd",
      "createdBy":"5ab0f3fa57066e0014bfd71e",
      "__v":0,
      "members":[
         "5ab0f3fa57066e0014bfd71e"
      ]
   }
]
```

{% endtab %}
{% endtabs %}

Example

```
curl -v -X GET -u andrea.leo@f21.it:123456 https://api.tiledesk.com/v3/5b55e806c93dde00143163dd/groups
```

## Get the group by id

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/:project_id/groups/:id`

Fetche the group by his or her id

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| id          | string | the group identifier                                                                     |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Headers

| Name          | Type   | Description                            |
| ------------- | ------ | -------------------------------------- |
| Authorization | string | authorization token. Basic Auth or JWT |

{% tabs %}
{% tab title="200 " %}

```
  {
   "_id":"5c34b52a9f22a7001681e888",
   "updatedAt":"2019-01-08T14:35:29.678Z",
   "createdAt":"2019-01-08T14:35:22.489Z",
   "name":"gruppo2",
   "trashed":false,
   "id_project":"5b55e806c93dde00143163dd",
   "createdBy":"5ab0f3fa57066e0014bfd71e",
   "__v":0,
   "members":[
      "5ab0f3fa57066e0014bfd71e"
   ]
}
```

{% endtab %}
{% endtabs %}

Example:

```
curl -v -X GET -u andrea.leo@f21.it:123456 https://api.tiledesk.com/v3/5b55e806c93dde00143163dd/groups/5c34b52a9f22a7001681e888
```

## Create a new group

<mark style="color:green;">`POST`</mark> `https://api.tiledesk.com/v3/:project_id/groups`

Allows to add more groups.

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | The project\_id is a unique code assigned to your project when you create it in Tiledesk |

#### Headers

| Name          | Type   | Description                            |
| ------------- | ------ | -------------------------------------- |
| Authorization | string | authorization token. Basic Auth or JWT |
| Content-Type  | string | use "application/json" value           |

#### Request Body

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| name    | string | The group name         |
| members | array  | The group members ids. |

{% tabs %}
{% tab title="200 " %}

```
 {
   "_id":"5c34b52a9f22a7001681e888",
   "updatedAt":"2019-01-08T14:35:29.678Z",
   "createdAt":"2019-01-08T14:35:22.489Z",
   "name":"gruppo2",
   "trashed":false,
   "id_project":"5b55e806c93dde00143163dd",
   "createdBy":"5ab0f3fa57066e0014bfd71e",
   "__v":0,
   "members":[
      "5ab0f3fa57066e0014bfd71e"
   ]
}
```

{% endtab %}
{% endtabs %}

Example:

```
curl -v -X POST -H 'Content-Type: application/json' -u andrea.leo@f21.it:123456  -d '{"name":"new group1", "members":["5ab0f3fa57066e0014bfd71e"]}' https://api.tiledesk.com/v3/5b55e806c93dde00143163dd/groups
```

## Update a group

<mark style="color:orange;">`PUT`</mark> `https://api.tiledesk.com/v3/:project_id/groups/:id`

Allows to update a group.

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | The project\_id is a unique code assigned to your project when you create it in Tiledesk |
| id          | string | The group identifier                                                                     |

#### Headers

| Name          | Type   | Description                            |
| ------------- | ------ | -------------------------------------- |
| Authorization | string | authorization token. Basic Auth or JWT |
| Content-Type  | string | use "application/json" value           |

#### Request Body

| Name    | Type   | Description            |
| ------- | ------ | ---------------------- |
| name    | string | The group name         |
| members | array  | The group members ids. |

{% tabs %}
{% tab title="200 " %}

```
 {
   "_id":"5c34b52a9f22a7001681e888",
   "updatedAt":"2019-01-08T14:35:29.678Z",
   "createdAt":"2019-01-08T14:35:22.489Z",
   "name":"gruppo2",
   "trashed":false,
   "id_project":"5b55e806c93dde00143163dd",
   "createdBy":"5ab0f3fa57066e0014bfd71e",
   "__v":0,
   "members":[
      "5ab0f3fa57066e0014bfd71e"
   ]
}
```

{% endtab %}
{% endtabs %}

Example:

```
curl -v -X PUT -H 'Content-Type: application/json' -u andrea.leo@f21.it:123456  -d '{"name":"new group1", "members":["5ab0f3fa57066e0014bfd71e"]}' https://api.tiledesk.com/v3/5b55e806c93dde00143163dd/groups/groups/5c34b52a9f22a7001681e888
```

## Delete a group

<mark style="color:red;">`DELETE`</mark> `https://api.tiledesk.com/v3/:project_id/groups/:id`

Allows to delete a group.

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | The project\_id is a unique code assigned to your project when you create it in Tiledesk |
| id          | string | The group identifier                                                                     |

#### Headers

| Name          | Type   | Description                            |
| ------------- | ------ | -------------------------------------- |
| Authorization | string | authorization token. Basic Auth or JWT |

{% tabs %}
{% tab title="200 " %}

```
 {
   "_id":"5c34b52a9f22a7001681e888",
   "updatedAt":"2019-01-08T14:35:29.678Z",
   "createdAt":"2019-01-08T14:35:22.489Z",
   "name":"gruppo2",
   "trashed":false,
   "id_project":"5b55e806c93dde00143163dd",
   "createdBy":"5ab0f3fa57066e0014bfd71e",
   "__v":0,
   "members":[
      "5ab0f3fa57066e0014bfd71e"
   ]
}
```

{% endtab %}
{% endtabs %}

Example:

```
curl -v -X DELETE -H 'Content-Type: application/json' -u andrea.leo@f21.it:123456  https://api.tiledesk.com/v3/5b55e806c93dde00143163dd/groups/5c34b52a9f22a7001681e888
```
