---
title: "Remove tags from a contact"
description: "Removes one or more tags from an existing contact."
---

> Documentation Index
> Fetch the complete documentation index at: https://zacx.io/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Zacx Public API › Contacts

`POST /tags/remove`

Removes one or more tags from an existing contact.

## Authentication

- `bearerAuth`, http, header `Authorization`

## Request body

- `removeContactTags.phoneNumber` (string, required) — The contact's phone number with country code. A leading `+` is accepted.
  - example `"+11234567890"`
- `removeContactTags.tags` (array<string>, required) — Tag names.
  - example `["test-tag"]`

## Example request

```json
{
  "phoneNumber": "+11234567890",
  "tags": [
    "test-tag"
  ]
}
```

## Code samples

### cURL

```curl
curl --request POST \
  --url https://api.zacx.io/v1/tags/remove \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "phoneNumber": "+11234567890",
  "tags": [
    "test-tag"
  ]
}
'
```

### TypeScript

```typescript
const url = 'https://api.zacx.io/v1/tags/remove';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json', Authorization: 'Bearer <token>'},
  body: JSON.stringify({phoneNumber: '+11234567890', tags: ['test-tag']})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.zacx.io/v1/tags/remove"

payload = {
    "phoneNumber": "+11234567890",
    "tags": ["test-tag"]
}
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <token>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

The tags were processed.

#### Example

```json
{
  "status": "success",
  "message": "Tag successfully removed from the contact"
}
```

- `removeContactTags.response.200.status` (string, required)
- `removeContactTags.response.200.message` (string, required)
- `removeContactTags.response.200.code` (string, optional) — Present when the call succeeded but changed nothing, for example `TAG_ALREADY_ASSOCIATED`.

### 404

The contact or the tag was not found.

#### Example

```json
{
  "status": "error",
  "code": "CONTACT_NOT_FOUND",
  "message": "The contact with given phoneNumber was not found."
}
```

- `removeContactTags.response.404.status` (string, required)
- `removeContactTags.response.404.code` (string, required) — Stable machine-readable error code.
- `removeContactTags.response.404.message` (string, required) — Human-readable explanation.


Source: https://zacx.io/api/contact/remove-tags/index.md
