Webhooks
Webhook delivery events
Lists a webhook’s recent delivery events (read-only). Each item carries event, status (SUCCESS|FAILED), statusCode, payload, response, durationMs and createdAt (UTC). Use limit (1–50) and event to filter. 404 if the webhook isn’t visible to the calling key; honours the same number scope as GET /api/v1/webhooks.
GET
/
v1
/
webhooks
/
{id}
/
logs
Webhook delivery events
curl --request GET \
--url https://pilotstatus.com.br/v1/webhooks/{id}/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/webhooks/{id}/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/webhooks/{id}/logs', 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://pilotstatus.com.br/v1/webhooks/{id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://pilotstatus.com.br/v1/webhooks/{id}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pilotstatus.com.br/v1/webhooks/{id}/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/webhooks/{id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"webhookId": "wh_01HZX...",
"logs": [
{
"id": "whl_01HZX...",
"webhookId": "wh_01HZX...",
"event": "message.delivered",
"status": "SUCCESS",
"statusCode": 200,
"payload": "{\"event\":\"message.delivered\",\"data\":{}}",
"response": "ok",
"durationMs": 142,
"createdAt": "2026-06-28T09:59:00.000Z"
}
]
}{
"error": "Validation error"
}{
"error": "Unauthorized"
}{
"error": "Too many requests"
}Authorizations
apiKeyapiKeyId
Your ps_ API key
Headers
Scopes to a single number (required for per-number OAuth grants).
Path Parameters
Webhook id.
Query Parameters
Number of events to return (default 50). (integer (1–50))
Filter by event name (e.g. message.delivered).
Response
Recent events
Was this page helpful?
⌘I
Webhook delivery events
curl --request GET \
--url https://pilotstatus.com.br/v1/webhooks/{id}/logs \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/webhooks/{id}/logs"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/webhooks/{id}/logs', 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://pilotstatus.com.br/v1/webhooks/{id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://pilotstatus.com.br/v1/webhooks/{id}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pilotstatus.com.br/v1/webhooks/{id}/logs")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/webhooks/{id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"webhookId": "wh_01HZX...",
"logs": [
{
"id": "whl_01HZX...",
"webhookId": "wh_01HZX...",
"event": "message.delivered",
"status": "SUCCESS",
"statusCode": 200,
"payload": "{\"event\":\"message.delivered\",\"data\":{}}",
"response": "ok",
"durationMs": 142,
"createdAt": "2026-06-28T09:59:00.000Z"
}
]
}{
"error": "Validation error"
}{
"error": "Unauthorized"
}{
"error": "Too many requests"
}