Add/remove tags on a member
curl --request PATCH \
--url https://api.humdov.app/v1/members/{object_id}/tags \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"add": [
"tag_abc123"
],
"remove": []
}
'import requests
url = "https://api.humdov.app/v1/members/{object_id}/tags"
payload = {
"add": ["tag_abc123"],
"remove": []
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({add: ['tag_abc123'], remove: []})
};
fetch('https://api.humdov.app/v1/members/{object_id}/tags', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.humdov.app/v1/members/{object_id}/tags",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'add' => [
'tag_abc123'
],
'remove' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.humdov.app/v1/members/{object_id}/tags"
payload := strings.NewReader("{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.humdov.app/v1/members/{object_id}/tags")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humdov.app/v1/members/{object_id}/tags")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"category": "<string>",
"color": "<string>"
}
]
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}Tags
Add/remove tags on a member
Only admin-created, public-privacy tags can be added or removed this way — system and AI-sourced tags (e.g. tags applied automatically) are never touchable via the API, the same rule the dashboard itself enforces. Returns the member’s full current (assignable) tag list after applying the change.
PATCH
/
members
/
{object_id}
/
tags
Add/remove tags on a member
curl --request PATCH \
--url https://api.humdov.app/v1/members/{object_id}/tags \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"add": [
"tag_abc123"
],
"remove": []
}
'import requests
url = "https://api.humdov.app/v1/members/{object_id}/tags"
payload = {
"add": ["tag_abc123"],
"remove": []
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({add: ['tag_abc123'], remove: []})
};
fetch('https://api.humdov.app/v1/members/{object_id}/tags', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.humdov.app/v1/members/{object_id}/tags",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'add' => [
'tag_abc123'
],
'remove' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.humdov.app/v1/members/{object_id}/tags"
payload := strings.NewReader("{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.humdov.app/v1/members/{object_id}/tags")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humdov.app/v1/members/{object_id}/tags")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"add\": [\n \"tag_abc123\"\n ],\n \"remove\": []\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"category": "<string>",
"color": "<string>"
}
]
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}{
"error": {
"code": "not_found",
"message": "Member not found"
}
}Authorizations
Create a key from the Humdov dashboard's Developer API page. See the Authentication guide for scopes and lifecycle.
Path Parameters
Response
OK
Show child attributes
Show child attributes