# Update a suppression group

## API overview

A suppression group, or an [unsubscribe group](/docs/sendgrid/ui/sending-email/create-and-manage-unsubscribe-groups/), is a specific type of email from which your recipients can unsubscribe. For example, daily newsletter and system alerts can be suppression groups. Manage your suppression groups using Twilio Sendgrid API. You can also specify suppression groups by using an [X-SMTPAPI header](/docs/sendgrid/for-developers/sending-email/building-an-x-smtpapi-header#suppression-groups).

Make sure that the names and descriptions of your suppression groups are recipient-friendly. Recipients can view these names and descriptions when managing their email subscriptions.

You can create and retrieve up to 200 suppression groups for a Twilio Sendgrid account.

## Operation overview

```json
{"path":"https://api.sendgrid.com/v3/asm/groups/{group_id}","method":"patch","servers":[{"url":"https://api.sendgrid.com","description":"for global users and subusers"},{"url":"https://api.eu.sendgrid.com","description":"for EU regional subusers"}]}
```

**This endpoint allows you to update or change a suppression group.**

## Operation details

### Authentication

API Key

### Headers

```json
[{"in":"header","name":"Authorization","required":true,"default":"Bearer <<YOUR_API_KEY_HERE>>","schema":{"type":"string"}},{"name":"on-behalf-of","in":"header","description":"The `on-behalf-of` header allows you to make API calls from a parent account on behalf of the parent's Subusers or customer accounts. You will use the parent account's API key when using this header. When making a call on behalf of a customer account, the property value should be \"account-id\" followed by the customer account's ID (e.g., `on-behalf-of: account-id <account-id>`). When making a call on behalf of a Subuser, the property value should be the Subuser's username (e.g., `on-behalf-of: <subuser-username>`). It is important to use the Base URL that corresponds to the region of the account or Subuser you specify in the `on-behalf-of` header. See [**On Behalf Of**](/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/on-behalf-of) for more information.","required":false,"schema":{"type":"string"},"refName":"#/components/parameters/OnBehalfOf","modelName":"__components_parameters_OnBehalfOf"}]
```

### Path parameters

```json
[{"name":"group_id","in":"path","description":"The ID of the suppression group you would like to retrieve.","required":true,"schema":{"type":"string"}}]
```

### Request body

```json
{"schema":{"example":{"id":103,"name":"Item Suggestions","description":"Suggestions for items our users might like."},"type":"object","properties":{"name":{"type":"string","description":"The name of your suppression group. Required when creating a group.","maxLength":30},"description":{"type":"string","description":"A brief description of your suppression group. Required when creating a group.","maxLength":100},"is_default":{"type":"boolean","description":"Indicates if you would like this to be your default suppression group."}}},"encodingType":"application/json"}
```

### Responses

```json
[{"responseCode":"201","schema":{"description":"","content":{"application/json":{"schema":{"title":"Suppressions: Suppression Group","type":"object","required":["id","name","description"],"refName":"SuppressionGroup","modelName":"SuppressionGroup","properties":{"id":{"type":"number","description":"The id of the suppression group."},"name":{"type":"string","description":"The name of the suppression group. Each group created by a user must have a unique name.","maxLength":30},"description":{"type":"string","description":"A description of the suppression group.","maxLength":100},"is_default":{"type":"boolean","default":false,"description":"Indicates if this is the default suppression group."},"unsubscribes":{"type":"integer","description":"The unsubscribes associated with this group."}}},"examples":{"response":{"value":{"id":103,"name":"Item Suggestions","description":"Suggestions for items our users might like."}}}}}}}]
```

Update a suppression group.

```js
const client = require("@sendgrid/client");
client.setApiKey(process.env.SENDGRID_API_KEY);

const group_id = "group_id";
const data = {
  name: "Item Suggestions",
  description: "Suggestions for items our users might like.",
};

const request = {
  url: `/v3/asm/groups/${group_id}`,
  method: "PATCH",
  body: data,
};

client
  .request(request)
  .then(([response, body]) => {
    console.log(response.statusCode);
    console.log(response.body);
  })
  .catch((error) => {
    console.error(error);
  });
```

```python
import os
from sendgrid import SendGridAPIClient


sg = SendGridAPIClient(os.environ.get("SENDGRID_API_KEY"))

group_id = "group_id"
data = {
    "name": "Item Suggestions",
    "description": "Suggestions for items our users might like.",
}

response = sg.client.asm.groups._(group_id).patch(request_body=data)

print(response.status_code)
print(response.body)
print(response.headers)
```

```csharp
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SendGrid;

public class Program {
    public static async Task Main() {
        string apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
        var client = new SendGridClient(apiKey);

        var groupId = "group_id";
        var data =
            @"{
            ""name"": ""Item Suggestions"",
            ""description"": ""Suggestions for items our users might like.""
        }";

        var response = await client.RequestAsync(
            method: SendGridClient.Method.PATCH,
            urlPath: $"asm/groups/{groupId}",
            requestBody: data);

        Console.WriteLine(response.StatusCode);
        Console.WriteLine(response.Body.ReadAsStringAsync().Result);
        Console.WriteLine(response.Headers.ToString());
    }
}
```

```java
import com.sendgrid.*;
import java.io.IOException;
import org.json.JSONObject;
import java.util.HashMap;

public class Example {
    public static void main(String[] args) throws IOException {
        try {
            SendGrid sg = new SendGrid(System.getenv("SENDGRID_API_KEY"));
            Request request = new Request();
            request.setMethod(Method.PATCH);
            request.setEndpoint("/asm/groups/group_id");
            request.setBody(new JSONObject(new HashMap<String, Object>() {
                {
                    put("name", "Item Suggestions");
                    put("description", "Suggestions for items our users might like.");
                }
            }).toString());
            Response response = sg.api(request);
            System.out.println(response.getStatusCode());
            System.out.println(response.getBody());
            System.out.println(response.getHeaders());
        } catch (IOException ex) {
            throw ex;
        }
    }
}
```

```go
package main

import (
	"fmt"
	"github.com/sendgrid/sendgrid-go"
	"os"
)

func main() {
	apiKey := os.Getenv("SENDGRID_API_KEY")
	host := "https://api.sendgrid.com"
	request := sendgrid.GetRequest(apiKey, "/v3/asm/groups/group_id", host)
	request.Method = "PATCH"
	request.Body = []byte(`{
  "name": "Item Suggestions",
  "description": "Suggestions for items our users might like."
}`)
	response, err := sendgrid.API(request)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		fmt.Println(response.StatusCode)
		fmt.Println(response.Body)
		fmt.Println(response.Headers)
	}
}
```

```php
<?php
// Uncomment the next line if you're using a dependency loader (such as Composer) (recommended)
// require 'vendor/autoload.php';

// Uncomment next line if you're not using a dependency loader (such as Composer)
// require_once '<PATH TO>/sendgrid-php.php';

$apiKey = getenv("SENDGRID_API_KEY");
$sg = new \SendGrid($apiKey);
$request_body = json_decode('{
    "name": "Item Suggestions",
    "description": "Suggestions for items our users might like."
}');
$group_id = "group_id";

try {
    $response = $sg->client
        ->asm()
        ->groups()
        ->_($group_id)
        ->patch($request_body);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $ex) {
    echo "Caught exception: " . $ex->getMessage();
}
```

```ruby
require 'sendgrid-ruby'
include SendGrid

sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
data = JSON.parse('{
  "name": "Item Suggestions",
  "description": "Suggestions for items our users might like."
}')
group_id = "group_id"

response = sg.client.asm.groups._(group_id).patch(request_body: data)
puts response.status_code
puts response.headers
puts response.body
```

```bash
curl -X PATCH "https://api.sendgrid.com/v3/asm/groups/group_id" \
--header "Authorization: Bearer $SENDGRID_API_KEY" \
--header "Content-Type: application/json" \
--data '{"name": "Item Suggestions", "description": "Suggestions for items our users might like."}'
```
