POST /v1/actions/remove-tag
Remove a tag from a contact. The tag itself is not deleted.
Removes a tag from a contact. The tag definition itself is not deleted — only the contact-tag link. If the tag doesn't exist, the call still returns 200.
POST /api/v1/actions/remove-tag
Request body
| Field | Type | Required |
|---|---|---|
contact_id |
UUID | one of |
phone |
string | one of |
tag |
string | yes |
curl -X POST https://www.qyvo.io/api/v1/actions/remove-tag \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"phone": "+14155550123", "tag": "vip-2026"}'
const result = await fetch('https://www.qyvo.io/api/v1/actions/remove-tag', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.QYVO_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ phone: '+14155550123', tag: 'vip-2026' }),
}).then((r) => r.json());
$result = Http::withToken(env('QYVO_TOKEN'))
->post('https://www.qyvo.io/api/v1/actions/remove-tag', [
'phone' => '+14155550123',
'tag' => 'vip-2026',
])
->json();
import os, httpx
result = httpx.post(
'https://www.qyvo.io/api/v1/actions/remove-tag',
headers={'Authorization': f"Bearer {os.environ['QYVO_TOKEN']}"},
json={'phone': '+14155550123', 'tag': 'vip-2026'},
).json()
Response — 200 OK
{
"id": "01J1Y...",
"phone": "+14155550123",
"tag_removed": "vip-2026",
"tags": ["fr-FR"]
}
