List Webhooks
curl --request GET \
--url https://app.tuco.ai/api/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.tuco.ai/api/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.tuco.ai/api/webhooks', 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://app.tuco.ai/api/webhooks",
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://app.tuco.ai/api/webhooks"
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://app.tuco.ai/api/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tuco.ai/api/webhooks")
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{
"webhooks": [
{
"id": "<string>",
"url": "<string>",
"events": [
"<string>"
],
"name": "<string>",
"description": {},
"isActive": true,
"lastTriggeredAt": {},
"lastSuccessAt": {},
"lastFailureAt": {},
"failureCount": 123,
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}Webhooks
List Webhooks
List all webhooks registered in your workspace. REST endpoint in the Tuco AI iMessage API — bearer-token auth, JSON request/response, full schema and code.
GET
/
api
/
webhooks
List Webhooks
curl --request GET \
--url https://app.tuco.ai/api/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.tuco.ai/api/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.tuco.ai/api/webhooks', 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://app.tuco.ai/api/webhooks",
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://app.tuco.ai/api/webhooks"
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://app.tuco.ai/api/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tuco.ai/api/webhooks")
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{
"webhooks": [
{
"id": "<string>",
"url": "<string>",
"events": [
"<string>"
],
"name": "<string>",
"description": {},
"isActive": true,
"lastTriggeredAt": {},
"lastSuccessAt": {},
"lastFailureAt": {},
"failureCount": 123,
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}Returns all webhooks for your workspace, sorted by creation date (newest first). Secrets are never returned.
Authentication
Pass your workspace API key as a Bearer token.Authorization: Bearer tuco_sk_xxxxxxxxxxxxx
Response
Array of webhook objects. Each includes:
Show Webhook fields
Show Webhook fields
Webhook ID
Endpoint URL
Subscribed event types
User-friendly name
Optional description
Whether the webhook is currently active
Last time any event was sent (ISO UTC)
Last successful delivery (ISO UTC)
Last failed delivery (ISO UTC)
Consecutive failure count
Creation timestamp (ISO UTC)
Last update timestamp (ISO UTC)
Example
curl "https://app.tuco.ai/api/webhooks" \
-H "Authorization: Bearer tuco_sk_xxxxxxxxxxxxx"
200 Response
{
"webhooks": [
{
"id": "680a1b2c3d4e5f6789012345",
"url": "https://example.com/webhooks/tuco",
"events": ["message.sent", "message.failed", "message.reply"],
"name": "Production webhook",
"description": "Sends events to our CRM",
"isActive": true,
"lastTriggeredAt": "2026-04-12T10:30:00.000Z",
"lastSuccessAt": "2026-04-12T10:30:00.000Z",
"lastFailureAt": null,
"failureCount": 0,
"createdAt": "2026-03-01T00:00:00.000Z",
"updatedAt": "2026-04-12T10:30:00.000Z"
}
]
}
⌘I