cURL
curl --request GET \
--url https://api.teamfollowup.ai/api/agent-builder/agents/{id} \
--header 'Authorization: Bearer YOUR_API_KEY'import requests
url = "https://api.teamfollowup.ai/api/agent-builder/agents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teamfollowup.ai/api/agent-builder/agents/{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.teamfollowup.ai/api/agent-builder/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.teamfollowup.ai/api/agent-builder/agents/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.teamfollowup.ai/api/agent-builder/agents/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/agent-builder/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"agent": {
"id": "agent_1ffdb9717444d0e77346838911",
"agentId": "agent_1ffdb9717444d0e77346838911",
"agentType": "outreach",
"name": "Roofing Follow Up",
"isActive": true,
"hasCustomPrompt": true,
"platformFieldNames": [
"call_summary",
"callback"
],
"campaign": {
"id": "cmp_123",
"name": "Roofing Follow Up",
"system": "appointment_booking",
"agentType": "appointment_booking",
"dialing": "s2l_pd",
"active": false,
"isActive": false,
"type": "s2l_pd",
"activeTags": [
"new_lead"
],
"inactiveTags": [
"do_not_call"
],
"callingWindow": null,
"config": {
"cadenceId": "cad_123",
"calendarId": "calendar_primary"
},
"fromNumbers": [
"+14155551234"
],
"projectId": "proj_123",
"locationId": "loc_abc123",
"businessName": "Acme Roofing",
"createdAt": "2026-07-08T10:00:00.000Z",
"updatedAt": "2026-07-08T10:00:00.000Z"
},
"config": {
"agent": {
"agentName": "Roofing Follow Up"
},
"llm": {
"beginMessage": "Hi, this is Sarah from Acme Roofing.",
"generalPrompt": "# Context\nQualify the lead and book an appointment."
},
"voice": {
"voiceId": "custom_voice_d7515c44b4aaea0ceade0a37ae",
"ambientSound": null,
"ambientSoundVolume": 0.75,
"temperature": 0.8,
"speed": 1
},
"interaction": {
"enableBackchannel": true,
"backchannelFrequency": 0.6,
"backchannelWords": [
"yeah",
"got it"
]
},
"language": {
"language": "en-US",
"denoisingMode": "noise-cancellation"
},
"analysis": {
"outcomes": {
"opt_out": "The lead explicitly asked not to be contacted again.",
"callback": "The lead asked to be called back at a later time.",
"human_needed": "A human team member needs to review or follow up.",
"asked_for_info": "The lead asked to receive additional information."
},
"fields": [
{
"key": "customer_name",
"type": "text",
"prompt": "The full name of the lead.",
"required": true
}
],
"locked": [
"call_summary",
"call_successful"
]
}
},
"createdAt": "2026-07-08T10:00:00.000Z",
"updatedAt": "2026-07-08T10:00:00.000Z"
}
}Get agent
Retrieve one agent and its editable configuration, including prompt, voice, post-call fields, and bound campaign context.
Required API key scope: agents:read.
GET
/
api
/
agent-builder
/
agents
/
{id}
cURL
curl --request GET \
--url https://api.teamfollowup.ai/api/agent-builder/agents/{id} \
--header 'Authorization: Bearer YOUR_API_KEY'import requests
url = "https://api.teamfollowup.ai/api/agent-builder/agents/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.teamfollowup.ai/api/agent-builder/agents/{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.teamfollowup.ai/api/agent-builder/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.teamfollowup.ai/api/agent-builder/agents/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.teamfollowup.ai/api/agent-builder/agents/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/agent-builder/agents/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"agent": {
"id": "agent_1ffdb9717444d0e77346838911",
"agentId": "agent_1ffdb9717444d0e77346838911",
"agentType": "outreach",
"name": "Roofing Follow Up",
"isActive": true,
"hasCustomPrompt": true,
"platformFieldNames": [
"call_summary",
"callback"
],
"campaign": {
"id": "cmp_123",
"name": "Roofing Follow Up",
"system": "appointment_booking",
"agentType": "appointment_booking",
"dialing": "s2l_pd",
"active": false,
"isActive": false,
"type": "s2l_pd",
"activeTags": [
"new_lead"
],
"inactiveTags": [
"do_not_call"
],
"callingWindow": null,
"config": {
"cadenceId": "cad_123",
"calendarId": "calendar_primary"
},
"fromNumbers": [
"+14155551234"
],
"projectId": "proj_123",
"locationId": "loc_abc123",
"businessName": "Acme Roofing",
"createdAt": "2026-07-08T10:00:00.000Z",
"updatedAt": "2026-07-08T10:00:00.000Z"
},
"config": {
"agent": {
"agentName": "Roofing Follow Up"
},
"llm": {
"beginMessage": "Hi, this is Sarah from Acme Roofing.",
"generalPrompt": "# Context\nQualify the lead and book an appointment."
},
"voice": {
"voiceId": "custom_voice_d7515c44b4aaea0ceade0a37ae",
"ambientSound": null,
"ambientSoundVolume": 0.75,
"temperature": 0.8,
"speed": 1
},
"interaction": {
"enableBackchannel": true,
"backchannelFrequency": 0.6,
"backchannelWords": [
"yeah",
"got it"
]
},
"language": {
"language": "en-US",
"denoisingMode": "noise-cancellation"
},
"analysis": {
"outcomes": {
"opt_out": "The lead explicitly asked not to be contacted again.",
"callback": "The lead asked to be called back at a later time.",
"human_needed": "A human team member needs to review or follow up.",
"asked_for_info": "The lead asked to receive additional information."
},
"fields": [
{
"key": "customer_name",
"type": "text",
"prompt": "The full name of the lead.",
"required": true
}
],
"locked": [
"call_summary",
"call_successful"
]
}
},
"createdAt": "2026-07-08T10:00:00.000Z",
"updatedAt": "2026-07-08T10:00:00.000Z"
}
}Authorizations
Send your API key as Authorization: Bearer YOUR_API_KEY.
Path Parameters
Agent id.
Minimum string length:
1⌘I
