List webhooks
curl --request GET \
--url https://developer.encrata.com/api/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/api/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.encrata.com/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{
"success": true,
"result": [
{
"id": "<string>",
"workspace_id": "<string>",
"kind": "<string>",
"url": "<string>",
"events": [
"<string>"
],
"is_active": true,
"description": "<string>",
"config": {},
"created_by": {},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"message": "<string>"
}Webhooks
List webhooks
List every webhook endpoint registered in your workspace.
GET
/
api
/
webhooks
List webhooks
curl --request GET \
--url https://developer.encrata.com/api/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/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://developer.encrata.com/api/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://developer.encrata.com/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{
"success": true,
"result": [
{
"id": "<string>",
"workspace_id": "<string>",
"kind": "<string>",
"url": "<string>",
"events": [
"<string>"
],
"is_active": true,
"description": "<string>",
"config": {},
"created_by": {},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"message": "<string>"
}Returns every webhook endpoint in the workspace your API key belongs to.
Any workspace role can list webhooks:
Failures use the same envelope with
Authentication
Send your API key as a bearer token.Authorization: Bearer enc_xxxxxxxxxxxx
admin, tech, or readonly.
Request
This endpoint takes no parameters.curl https://developer.encrata.com/api/webhooks \
-H "Authorization: Bearer enc_xxxxxxxxxxxx"
import requests
response = requests.get(
"https://developer.encrata.com/api/webhooks",
headers={"Authorization": "Bearer enc_xxxxxxxxxxxx"},
)
for webhook in response.json()["result"]:
print(webhook["id"], webhook["url"], webhook["is_active"])
const response = await fetch("https://developer.encrata.com/api/webhooks", {
headers: { Authorization: "Bearer enc_xxxxxxxxxxxx" },
});
const { result } = await response.json();
result.forEach((webhook) => console.log(webhook.id, webhook.url, webhook.is_active));
Response
boolean
true when the request succeeded.object[]
The workspace’s webhook endpoints, newest first. An empty workspace returns
[].Hide webhook
Hide webhook
string
Webhook identifier (UUID). Use it with update, delete, test, and deliveries.
string
The workspace this webhook belongs to.
string
Destination type:
generic, slack, discord, or telegram.string
The HTTPS URL that receives deliveries. Empty for
telegram, whose target is derived from the bot token.string[]
The event types this webhook is subscribed to. See supported events.
boolean
Whether Encrata currently delivers to this endpoint.
string
Your label for the webhook. Empty string when unset.
object
Destination-specific settings. Present only for
telegram, where it carries chat_id.string | null
User ID of the creator, or
null when the creator is unknown or has been removed.string
ISO 8601 creation timestamp.
string
ISO 8601 last-updated timestamp.
string
A human-readable summary. Do not branch on it.
Signing secrets are never returned by this endpoint. To read a secret, fetch the single webhook with
GET /api/webhooks/{id} as a workspace admin.Example response
{
"success": true,
"result": [
{
"id": "360cb300-d885-4c18-af2c-d259f936bb38",
"workspace_id": "51cdc9d9-203c-4345-b06d-222b560460aa",
"kind": "generic",
"url": "https://example.com/webhooks/encrata",
"events": ["lookup.completed", "apikey.created"],
"is_active": true,
"description": "Production webhook",
"created_by": "e861d7cb-1d7f-48d9-ab13-9af06a4055cf",
"created_at": "2026-05-02T12:00:00Z",
"updated_at": "2026-05-02T12:00:00Z"
},
{
"id": "c0a8f1e2-5b3d-4a77-9c21-7f0e4d6b8a19",
"workspace_id": "51cdc9d9-203c-4345-b06d-222b560460aa",
"kind": "slack",
"url": "https://hooks.slack.com/services/T000/B000/XXXXXXXX",
"events": ["credits.low"],
"is_active": true,
"description": "#alerts channel",
"created_by": "e861d7cb-1d7f-48d9-ab13-9af06a4055cf",
"created_at": "2026-05-04T09:12:00Z",
"updated_at": "2026-05-04T09:12:00Z"
}
],
"message": "Webhooks loaded."
}
Errors
| Status | Code | When |
|---|---|---|
401 | unauthorized | The API key is missing, revoked, or disabled. |
403 | forbidden | Your key resolves to no workspace membership. |
500 | internal | Encrata could not load the webhooks. Retry. |
success: false and the code in result.code:
Example error
{
"success": false,
"result": { "code": "forbidden" },
"message": "You don't have access to this workspace."
}
Next steps
Create a webhook
Register an endpoint and get its signing secret.
Verify signatures
Check that a delivery really came from Encrata.
Inspect deliveries
See recent attempts and your endpoint’s replies.
Error reference
Every status code the API returns.
Was this page helpful?