cURL
curl --request PUT \
--url https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"labels": [
"roofing",
"pilot"
]
}'import requests
url = "https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels"
payload = { "labels": ["roofing", "pilot"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({labels: ['roofing', 'pilot']})
};
fetch('https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels', 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.teamfollowup.ai/api/tfu-live-agents/{id}/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'roofing',
'pilot'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.teamfollowup.ai/api/tfu-live-agents/{id}/labels"
payload := strings.NewReader("{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"agentId": "tfu_live:example_agent",
"labels": [
"pilot",
"roofing"
]
}
}Set TFU Live agent labels
Replace the agent label set using the same normalization as the dashboard. Empty labels clears the set. This does not change its prompt, version or active status.
Required scope: agents:write.
Required API key scope: agents:write.
PUT
/
api
/
tfu-live-agents
/
{id}
/
labels
cURL
curl --request PUT \
--url https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"labels": [
"roofing",
"pilot"
]
}'import requests
url = "https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels"
payload = { "labels": ["roofing", "pilot"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({labels: ['roofing', 'pilot']})
};
fetch('https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels', 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.teamfollowup.ai/api/tfu-live-agents/{id}/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'roofing',
'pilot'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.teamfollowup.ai/api/tfu-live-agents/{id}/labels"
payload := strings.NewReader("{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/tfu-live-agents/{id}/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"roofing\",\n \"pilot\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"agentId": "tfu_live:example_agent",
"labels": [
"pilot",
"roofing"
]
}
}Authorizations
Send your API key as Authorization: Bearer YOUR_API_KEY.
Path Parameters
TFU Live agent id. Never use an ordinary provider agent id.
Query Parameters
Sub-account belonging to the authenticated agency and any narrower credential location binding.
Body
application/json
The complete TFU Live authored agent or an explicit draft.
Maximum array length:
20Required string length:
1 - 40⌘I
