List endpoints
curl --request GET \
--url https://app.base44.com/api/v1/outbound-webhooks/endpoints \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/v1/outbound-webhooks/endpoints"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/v1/outbound-webhooks/endpoints', 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.base44.com/api/v1/outbound-webhooks/endpoints",
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.base44.com/api/v1/outbound-webhooks/endpoints"
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.base44.com/api/v1/outbound-webhooks/endpoints")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/v1/outbound-webhooks/endpoints")
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{
"endpoints": [
{
"activated_at": "2026-10-04T19:25:39.423Z",
"consecutive_failed_deliveries": 0,
"created_date": "2026-10-04T19:25:34.260Z",
"description": "Provisioning",
"health": "healthy",
"id": "6ac2a82edfafd1b6c6a9c27d",
"last_success_at": "2026-10-05T13:23:36.743Z",
"selected_event_types": [
"app.created.v1",
"app.deleted.v1"
],
"state": "active",
"target_url": "https://hooks.example.com/base44"
}
],
"max_endpoints": 10
}{
"error": {
"code": "invalid_request",
"details": {
"fields": [
{
"field": "target_url",
"problem": "Field required"
}
]
},
"message": "The request is invalid."
}
}{
"error": {
"code": "unauthenticated",
"details": {},
"message": "Invalid workspace API key."
}
}{
"error": {
"code": "permission_denied",
"details": {},
"message": "This workspace API key is not permitted to manage outbound webhooks. Needed: [outbound_webhooks:write]"
}
}{
"error": {
"code": "not_found",
"details": {},
"message": "Webhook endpoint not found."
}
}{
"error": {
"code": "limit_exceeded",
"details": {
"max_endpoints": 10
},
"message": "A workspace may have at most 10 webhook endpoints."
}
}{
"error": {
"code": "rate_limited",
"details": {
"retry_after_seconds": 42
},
"message": "Rate limit exceeded. Retry after the interval in the Retry-After header."
}
}{
"error": {
"code": "internal_error",
"details": {},
"message": "An internal error occurred. Retry with exponential backoff."
}
}outbound-webhooks
List endpoints
This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.
Lists the workspace’s endpoints, oldest first. When next_cursor is set, pass it back as cursor for the next page.
GET
/
endpoints
List endpoints
curl --request GET \
--url https://app.base44.com/api/v1/outbound-webhooks/endpoints \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/v1/outbound-webhooks/endpoints"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/v1/outbound-webhooks/endpoints', 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.base44.com/api/v1/outbound-webhooks/endpoints",
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.base44.com/api/v1/outbound-webhooks/endpoints"
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.base44.com/api/v1/outbound-webhooks/endpoints")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/v1/outbound-webhooks/endpoints")
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{
"endpoints": [
{
"activated_at": "2026-10-04T19:25:39.423Z",
"consecutive_failed_deliveries": 0,
"created_date": "2026-10-04T19:25:34.260Z",
"description": "Provisioning",
"health": "healthy",
"id": "6ac2a82edfafd1b6c6a9c27d",
"last_success_at": "2026-10-05T13:23:36.743Z",
"selected_event_types": [
"app.created.v1",
"app.deleted.v1"
],
"state": "active",
"target_url": "https://hooks.example.com/base44"
}
],
"max_endpoints": 10
}{
"error": {
"code": "invalid_request",
"details": {
"fields": [
{
"field": "target_url",
"problem": "Field required"
}
]
},
"message": "The request is invalid."
}
}{
"error": {
"code": "unauthenticated",
"details": {},
"message": "Invalid workspace API key."
}
}{
"error": {
"code": "permission_denied",
"details": {},
"message": "This workspace API key is not permitted to manage outbound webhooks. Needed: [outbound_webhooks:write]"
}
}{
"error": {
"code": "not_found",
"details": {},
"message": "Webhook endpoint not found."
}
}{
"error": {
"code": "limit_exceeded",
"details": {
"max_endpoints": 10
},
"message": "A workspace may have at most 10 webhook endpoints."
}
}{
"error": {
"code": "rate_limited",
"details": {
"retry_after_seconds": 42
},
"message": "Rate limit exceeded. Retry after the interval in the Retry-After header."
}
}{
"error": {
"code": "internal_error",
"details": {},
"message": "An internal error occurred. Retry with exponential backoff."
}
}Authorizations
A workspace API key with the outbound_webhooks:write scope, sent as Authorization: Bearer <key>.
Query Parameters
How many endpoints to return.
Required range:
1 <= x <= 100Example:
10
The next_cursor from the previous page. Omit it for the first page.
Example:
"eyJpZCI6IjZhYzJhODJlZGZhZmQxYjZjNmE5YzI3ZCJ9"
Response
Successful Response
This page of endpoints, oldest first.
Show child attributes
Show child attributes
How many endpoints the workspace can have.
Opaque continuation token. Absent or null on the last page. Pass it back as cursor; do not construct or parse one.
Was this page helpful?