curl --request GET \
--url https://app.thinnest.ai/api/v1/agents/{id}/channels \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/agents/{id}/channels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/agents/{id}/channels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"agent": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"web": {
"id": "ch_0e6b2f71-3c9d-4a58-b1e7-5d2a8f4c9b30",
"connected": true,
"publicKey": "pk_9fQ2xLm7Rt4vWb8KcN3hYd6sJ1pZ",
"previousKeyExpiresAt": null
},
"whatsapp": {
"id": "ch_7a1d4e93-8b2c-4f60-9e15-3c7b0a6d2f48",
"connected": true,
"phoneNumber": "+919820145732",
"flagged": false,
"messagingLimit": "TIER_1K",
"blockingNotices": 0
},
"telegram": {
"id": null,
"connected": false,
"username": null,
"webhookFailed": false
},
"voice": {
"id": "ch_c3f80b2e-6d14-47a9-8e5b-1f9a2c7d4e06",
"answersCalls": true,
"phoneNumber": "+918047361290",
"surfaces": [
"web",
"whatsapp",
"phone"
]
}
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That agent was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Get Agent Channels
Where the agent answers, as the Channels page shows it: the widget key, the WhatsApp number and its health, the Telegram bot and the voice line. No token or secret is ever part of the answer. The widget’s look and the call settings are changed with Update Agent (widget, voice).
curl --request GET \
--url https://app.thinnest.ai/api/v1/agents/{id}/channels \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.thinnest.ai/api/v1/agents/{id}/channels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.thinnest.ai/api/v1/agents/{id}/channels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"agent": "ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71",
"web": {
"id": "ch_0e6b2f71-3c9d-4a58-b1e7-5d2a8f4c9b30",
"connected": true,
"publicKey": "pk_9fQ2xLm7Rt4vWb8KcN3hYd6sJ1pZ",
"previousKeyExpiresAt": null
},
"whatsapp": {
"id": "ch_7a1d4e93-8b2c-4f60-9e15-3c7b0a6d2f48",
"connected": true,
"phoneNumber": "+919820145732",
"flagged": false,
"messagingLimit": "TIER_1K",
"blockingNotices": 0
},
"telegram": {
"id": null,
"connected": false,
"username": null,
"webhookFailed": false
},
"voice": {
"id": "ch_c3f80b2e-6d14-47a9-8e5b-1f9a2c7d4e06",
"answersCalls": true,
"phoneNumber": "+918047361290",
"surfaces": [
"web",
"whatsapp",
"phone"
]
}
}{
"error": "Send a valid API key as `Authorization: Bearer <key>`."
}{
"error": "That agent was not found."
}{
"error": "Over 240 requests a minute. Slow down and retry."
}Authorizations
Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.
Headers
Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.
"org_3fKq9TzQ1mN8vB2xR7cLpA"
Path Parameters
The agent's id (ag_…).
Response
The agent's channels.
Where an agent answers. A channel never set up has id: null.
The agent's id.
"ag_5c4a5f93-2b1e-4d7a-9f60-8e2d1c3b4a71"
The website chat widget.
Show child attributes
Show child attributes
The WhatsApp Business number. Connected in the console.
Show child attributes
Show child attributes
The Telegram bot.
Show child attributes
Show child attributes
Calls.
Show child attributes
Show child attributes