# Custom lists

## Create a custom list

1. Go to the 'Audiences' module.&#x20;
2. Click on the 'Create a custom list' button.
3. Insert addresses manually or download the CSV file.&#x20;

> **Note:** Maximum CSV file size = 100 MB

> **Note:** Duplicated addresses will be removed from the custom list.&#x20;

4\. Click on the 'Save' button.&#x20;

> **Note:** Another option to create a custom list is using Add to list block in flows.&#x20;

## Create via API

Custom lists can be created via API, using your team's API key. Upon success, the API responds with the unique numerical ID for your custom list, which you can then use to feed the list with profiles using the next API documented on this page.

### Endpoint

```
https://backend.absolutelabs.app/api/audiences/custom-list/
```

### Request headers

```
- Authentication: Bearer {your API key}
- Content-Type: application/json
```

### Request body example

```
{
  "name": "The name for your Custom List"
}
```

### Response

```
{
  "id": 1337,
  "name": "My new list"
}
```

## Modifying a list via API

To add profiles to a list, remove some, or simply rename a list, you can use the PATCH method on your custom list resource as follows.

### Endpoint

```
https://backend.absolutelabs.app/api/audiences/custom-list/{list_id}
```

### Request headers

```
- Authentication: Bearer {your API key}
- Content-Type: application/json
```

### Request body example

```
{
  "add": ["0xabc...", "0x123...", ...],
  "remove": ["0xabc...", "0x123...", ...],
  "name": "New list name"
}
```

### Response

```
{
  "name_update": {
    "status": "success"
  },
  "addresses_addition": {
    "status": "success"
  },
  "addresses_removal": {
    "status": "success"
  }
}
```
