Delete tag
curl --request DELETE \
--url https://api.coval.dev/v1/tags/{tag_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/tags/{tag_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/tags/{tag_id}', 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.coval.dev/v1/tags/{tag_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/tags/{tag_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.coval.dev/v1/tags/{tag_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/tags/{tag_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"tag": {
"name": "tags/01HX2ABC3DEF4GHI5JKL6MNO7P",
"id": "01HX2ABC3DEF4GHI5JKL6MNO7P",
"tag_name": "production",
"color": "#3b82f6",
"create_time": "2025-10-14T12:00:00Z",
"created_by": "engineer@example.com"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "PERMISSION_DENIED",
"message": "Insufficient permissions",
"details": [
{
"field": "permissions",
"description": "API key does not have required permission: tags:write"
}
]
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Tag not found",
"details": [
{
"field": "tag_id",
"description": "Tag not found or not accessible by your organization"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}Tags
Delete tag
Delete a tag. The tag is soft-deleted (status=‘DELETED’) and removed from all associated resources. Creating a new tag with the same name will reactivate this record without restoring prior assignments. Inactive resources are also unassigned; the resources themselves remain.
DELETE
/
tags
/
{tag_id}
Delete tag
curl --request DELETE \
--url https://api.coval.dev/v1/tags/{tag_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/tags/{tag_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/tags/{tag_id}', 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.coval.dev/v1/tags/{tag_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/tags/{tag_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.coval.dev/v1/tags/{tag_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/tags/{tag_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"tag": {
"name": "tags/01HX2ABC3DEF4GHI5JKL6MNO7P",
"id": "01HX2ABC3DEF4GHI5JKL6MNO7P",
"tag_name": "production",
"color": "#3b82f6",
"create_time": "2025-10-14T12:00:00Z",
"created_by": "engineer@example.com"
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "PERMISSION_DENIED",
"message": "Insufficient permissions",
"details": [
{
"field": "permissions",
"description": "API key does not have required permission: tags:write"
}
]
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Tag not found",
"details": [
{
"field": "tag_id",
"description": "Tag not found or not accessible by your organization"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}Authorizations
API key for authentication
Headers
Workspace that scopes this operation. When omitted, the organization's active default workspace is used when one can be resolved.
Required string length:
1 - 26Path Parameters
Tag resource ID
Response
Tag deleted successfully
Tag resource. Tags are used to organize agents, personas, test sets, metrics, and run templates.
Show child attributes
Show child attributes
Was this page helpful?