[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Remove opted-out contacts from ClickSend lists

> Clean every ClickSend contact list of numbers on the Opt-Out List before the next send, and get the count each list lost.

Source: https://cotlet.dev/integrations/clicksend-api-mcp-server/remove-opted-out-contacts

A recipient who replies STOP lands on your Opt-Out List and nowhere else, so each active contact list still holds the number until someone cleans it.

Cotlet does it in your own ClickSend account with list\_contact\_lists, list\_opt\_outs, remove\_opted\_out\_contacts and remove\_duplicates, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=clicksend) [All ClickSend tools](https://cotlet.dev/integrations/clicksend-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can ClickSend do this on its own?

ClickSend moves an opt-out only to the Opt-Out List and leaves your other lists as they are (checked 23 Oct 2026). Cleaning them is the Clean Up menu in the dashboard, one list per run. The official MCP server only searches contact lists and has no opt-out or cleanup tool.

## How you do it in ClickSend today

1. Open the Opt-Out List in the Dashboard to see who opted out; recipients land there automatically when you use a valid opt-out method.
2. Go to Contacts and open the list you want to clean.
3. Click Clean Up, then Remove Opted-out.
4. In the pop-up, pick the list that holds your opt-outs, for example the Opt-Out List, and click Remove.
5. Repeat for each active list, because ClickSend cleans one list at a time.
6. Numbers you collected outside ClickSend go in first, with Import Contacts or + New Contact on the Opt-Out List.

## How to remove opted-out contacts from ClickSend lists

Prompt

```
Compare the Opt-Out List with every contact list except Staff test, remove the opted-out numbers and tell me how many each list lost.
```

1. 01  
### List the lists to clean  
list\_contact\_lists returns every list. The agent takes all of them except the ones your prompt names as exceptions, such as a staff test list, and says which it skipped.
2. 02  
### Read the Opt-Out List first  
list\_opt\_outs gives the opted-out numbers. If it is empty the agent stops, and it reports the count so you see what each cleanup is measured against.
3. 03  
### Clean one list per call  
remove\_opted\_out\_contacts runs once for each list, because ClickSend cleans a single list per run. The agent records removed for each list from the call, and a list that fails does not stop the others.
4. 04  
### Add duplicates only when asked  
remove\_duplicates runs only if your prompt asks for it, with the field you name, phone\_number or email. The agent never compares across lists, as ClickSend does not.
5. 05  
### Report each list  
The agent returns the lists it cleaned with removed per list, the ones it skipped and any that failed, so the Monday send starts from lists that match the Opt-Out List.

### What you get back

Example data

```
Opt-Out List: 212 numbers
Cleaned 4 of 5 lists:
- Newsletter subscribers: 37 removed
- Webinar leads: 12 removed
- Spring sale: 0 removed
- VIP customers: 5 removed
Skipped: Staff test (your exception)
```

### Other ways to ask

- Every Monday before the send, clean all lists against the Opt-Out List and tell me how many each list lost.
- Add these 15 numbers from our CRM export to the Opt-Out List, then clean the Newsletter list.
- Check which of my lists still hold opted-out numbers, but do not remove anyone.

## What ClickSend allows, and what to know first

- ClickSend adds an opted-out person only to the Opt-Out List; they stay on your other active contact lists until you clean each one.
- Reply STOP works automatically only in SMS campaigns, and Quick SMS supports neither Reply STOP nor unsubscribe links.
- The opt-out method depends on the sender: shared and dedicated numbers take STOP or an unsubscribe link, an own number only the link, an alpha tag the link or a prompt to reply STOP to your dedicated number.
- A deleted STOP rule comes back under Message Settings > SMS & MMS > Inbound Rules, with Match For Message starts with, Search Term Stop and the action MOVE\_CONTACT to the Opt-Out List.
- With Share Contacts off, each subaccount sees only its own lists, so each subaccount needs its own opt-out list and cleanup.

remove\_opted\_out\_contacts and remove\_duplicates ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [ClickSend Help: Managing opt-outs](https://help.clicksend.com/en/articles/43124-managing-opt-outs) · [ClickSend Help: Managing your contact lists](https://help.clicksend.com/en/articles/42305-managing-your-contact-lists) · [ClickSend Help: Inbound messaging rules](https://help.clicksend.com/en/articles/42270-inbound-messaging-rules) · [ClickSend Help: Setting up contact lists](https://help.clicksend.com/en/articles/43123-setting-up-contact-lists)

## Call remove\_opted\_out\_contacts from a script

curl

```
curl -X DELETE "https://cotlet.dev/api/v1/clicksend/lists/128734/opted-out-contacts?opt_out_list=Opt-Out+List" \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

Example response

```
{
"list_id": 128734,
"list": "Newsletter subscribers",
"opt_out_list": "Opt-Out List",
"removed": 37
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is clicksend\_write → remove\_opted\_out\_contacts. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/clicksend-api-mcp-server.md#automations)

## ClickSend tools this automation uses

__Cotlet ClickSend tools used to remove opted-out contacts from ClickSend lists__
| Tool | Parameters |
| ---------------------------- | ------------------------ |
| list\_contact\_lists | query, cursor |
| list\_opt\_outs | query, cursor |
| remove\_opted\_out\_contacts | list\_id, opt\_out\_list |
| remove\_duplicates | list\_id, field |

[All 15 ClickSend tools with descriptions](https://cotlet.dev/integrations/clicksend-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect ClickSend to Cotlet?

Yes. You sign in to ClickSend yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get ClickSend once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More ClickSend automations

- [Schedule a ClickSend SMS campaign to a contact list](https://cotlet.dev/integrations/clicksend-api-mcp-server/schedule-sms-campaign.md)
- [Find failed ClickSend texts and see why they failed](https://cotlet.dev/integrations/clicksend-api-mcp-server/find-failed-sms.md)
- [ClickSend API and MCP server: every tool](https://cotlet.dev/integrations/clicksend-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to ClickSend.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with ClickSend.

[Sign up free](https://cotlet.dev/app/signup?app=clicksend)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
