curl --request GET \
--url https://api.parallellabs.app/api/v0/agents/{agentId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.parallellabs.app/api/v0/agents/{agentId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.parallellabs.app/api/v0/agents/{agentId}', 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.parallellabs.app/api/v0/agents/{agentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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.parallellabs.app/api/v0/agents/{agentId}"
req, _ := http.NewRequest("GET", 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.get("https://api.parallellabs.app/api/v0/agents/{agentId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/agents/{agentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"avatarImage": "<string>",
"systemPrompt": "<string>",
"agentPrompt": "<string>",
"customColors": {},
"model": "<string>",
"channelSettings": {},
"leadFields": [
{}
],
"contactListId": "<string>",
"aiContactCaptureEnabled": true,
"isActive": true,
"knowledgeBaseEnabled": true,
"knowledgeBaseScope": "<string>",
"multiStepToolsEnabled": true,
"multiStepMaxTurns": 123,
"shortCode": "<string>",
"created": 123,
"updated": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Get a specific agent by ID.
Returns the full agent configuration including channel settings, lead fields, and branding options.
curl --request GET \
--url https://api.parallellabs.app/api/v0/agents/{agentId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.parallellabs.app/api/v0/agents/{agentId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.parallellabs.app/api/v0/agents/{agentId}', 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.parallellabs.app/api/v0/agents/{agentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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.parallellabs.app/api/v0/agents/{agentId}"
req, _ := http.NewRequest("GET", 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.get("https://api.parallellabs.app/api/v0/agents/{agentId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/agents/{agentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"avatarImage": "<string>",
"systemPrompt": "<string>",
"agentPrompt": "<string>",
"customColors": {},
"model": "<string>",
"channelSettings": {},
"leadFields": [
{}
],
"contactListId": "<string>",
"aiContactCaptureEnabled": true,
"isActive": true,
"knowledgeBaseEnabled": true,
"knowledgeBaseScope": "<string>",
"multiStepToolsEnabled": true,
"multiStepMaxTurns": 123,
"shortCode": "<string>",
"created": 123,
"updated": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Response
Agent details
Agent object
Agent ID
Agent name
URL or base64 avatar image
AI system instructions
Agent-specific prompt
Branding colors configuration
AI model
Multi-channel configuration
Lead field definitions
Smart list ID
Whether AI passively extracts contact info from conversations
Whether agent is active
Whether the agent answers from the knowledge base
Knowledge base folder the agent is limited to (e.g. / or /shared/Support)
Whether the agent can chain multiple tool-calling turns (knowledge base search, MCP servers, integration toolsets) instead of a single round
Tool-calling turns allowed before tools are removed and the agent must answer (1-10, default 5)
Shareable URL code
Creation timestamp
Last update timestamp

