curl --request GET \
--url https://api.arize.com/v2/webhooks/{webhook_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/webhooks/{webhook_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/webhooks/{webhook_id}', 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://api.arize.com/v2/webhooks/{webhook_id}",
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://api.arize.com/v2/webhooks/{webhook_id}"
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://api.arize.com/v2/webhooks/{webhook_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/webhooks/{webhook_id}")
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{
"id": "V2ViaG9vazoxMjM0NQ==",
"organization_id": "T3JnYW5pemF0aW9uOjEyMzQ1",
"name": "Prompt release notifications",
"description": "Notifies the deploy pipeline when a prompt version is labeled",
"url": "https://example.com/hooks/arize",
"auth_type": "HMAC_SHA256",
"signing_secret_hint": "whsec_…abcd",
"timeout_ms": 30000,
"headers": {
"X-Environment": "production"
},
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:00Z",
"created_by_user_id": "VXNlcjoxMjM0NQ=="
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 404,
"title": "Resource not found",
"detail": "The requested resource with ID '12345' was not found.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-not-found"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Get a webhook
Get a specific webhook by its ID.
curl --request GET \
--url https://api.arize.com/v2/webhooks/{webhook_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arize.com/v2/webhooks/{webhook_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arize.com/v2/webhooks/{webhook_id}', 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://api.arize.com/v2/webhooks/{webhook_id}",
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://api.arize.com/v2/webhooks/{webhook_id}"
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://api.arize.com/v2/webhooks/{webhook_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arize.com/v2/webhooks/{webhook_id}")
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{
"id": "V2ViaG9vazoxMjM0NQ==",
"organization_id": "T3JnYW5pemF0aW9uOjEyMzQ1",
"name": "Prompt release notifications",
"description": "Notifies the deploy pipeline when a prompt version is labeled",
"url": "https://example.com/hooks/arize",
"auth_type": "HMAC_SHA256",
"signing_secret_hint": "whsec_…abcd",
"timeout_ms": 30000,
"headers": {
"X-Environment": "production"
},
"created_at": "2026-08-01T12:00:00Z",
"updated_at": "2026-08-01T12:00:00Z",
"created_by_user_id": "VXNlcjoxMjM0NQ=="
}{
"status": 400,
"title": "Invalid request parameters",
"detail": "The 'name' field is required and must be a non-empty string.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#invalid-request"
}{
"status": 401,
"title": "Authentication required",
"detail": "You must be authenticated to access this resource.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#authentication-required"
}{
"status": 404,
"title": "Resource not found",
"detail": "The requested resource with ID '12345' was not found.",
"instance": "/resource/12345",
"type": "https://arize.com/docs/ax/rest-reference/errors#resource-not-found"
}{
"status": 429,
"title": "Rate limit exceeded",
"detail": "You have exceeded the allowed number of requests. Please try again later.",
"instance": "/resource",
"type": "https://arize.com/docs/ax/rest-reference/errors#rate-limit-exceeded"
}Authorizations
Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format
Path Parameters
The unique webhook identifier (base64) A universally unique identifier (base64-encoded opaque string).
"RW50aXR5OjEyMzQ1"
Response
A webhook object
A webhook is an organization-owned destination that receives event deliveries over HTTPS. Attach a webhook to prompts and evaluators through their webhook-subscription endpoints to choose which events it receives.
Credentials are write-only: the bearer token is never returned, and the HMAC signing secret is returned exactly once, in the create response — only its redacted hint is readable afterwards.
Unique identifier for the webhook
"RW50aXR5OjEyMzQ1"
The unique identifier of the organization that owns the webhook
"RW50aXR5OjEyMzQ1"
Name of the webhook (unique within the organization)
255A brief description of the webhook's purpose. Defaults to an empty string.
The HTTPS endpoint events are delivered to
How deliveries from this webhook are authenticated. Fixed at creation.
BEARER, HMAC_SHA256 How long a delivery request may run before it is abandoned, in milliseconds. Defaults to 30000.
1000 <= x <= 60000Custom HTTP headers sent with each delivery request
Show child attributes
Show child attributes
Timestamp for when the webhook was created
Timestamp for when the webhook was last updated
Redacted hint of the signing secret (e.g. whsec_…abcd), useful for
identifying which secret the webhook uses. Present only for
HMAC_SHA256 webhooks. The full secret is returned exactly once, in
the create response, and cannot be retrieved afterwards.
The unique identifier of the user who created the webhook. Absent when that user has since been removed from the account.
"RW50aXR5OjEyMzQ1"
Was this page helpful?