curl --request POST \
--url https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume', 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/{endpoint_id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/{endpoint_id}/resume"
req, _ := http.NewRequest("POST", 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.post("https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"activated": true,
"detail": "",
"endpoint": {
"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"
},
"http_status": 200
}{
"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."
}
}Resume an endpoint
Resumes a paused endpoint. One you paused resumes right away. One Base44 paused after repeated failures (auto_paused) must pass the activation test again, which runs in the same call: The test is a signed webhook.test.v1 event. The endpoint activates only if it answers with a 2xx status within 5 seconds and returns the event’s data.challenge in its response body. activated says whether it did; when it didn’t, failure_category, http_status and detail say why.
curl --request POST \
--url https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume', 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/{endpoint_id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/{endpoint_id}/resume"
req, _ := http.NewRequest("POST", 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.post("https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/v1/outbound-webhooks/endpoints/{endpoint_id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"activated": true,
"detail": "",
"endpoint": {
"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"
},
"http_status": 200
}{
"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>.
Path Parameters
The endpoint's ID.
"6ac2a82edfafd1b6c6a9c27d"
Response
Successful Response
The endpoint and the result of its activation test.
Whether the endpoint passed the test and is active.
Show child attributes
Show child attributes
{
"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"
}
A sentence explaining the result. Not a stable contract.
Why the test failed: timeout, transport (no connection), server_error (5xx), client_error (4xx, or a 2xx without the challenge), redirect, ssrf_rejected (the URL resolved to a non-public address) or internal. Null on success.
The status your endpoint answered with. Null when it didn't answer.
Was this page helpful?