curl -X GET 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/analytics/?date_from=2026-10-01&date_to=2026-10-16' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
destination_uuid = '11111111-2222-3333-4444-555555555555'
resp = requests.get(
f'https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params={'date_from': '2026-10-01', 'date_to': '2026-10-16'},
timeout=10,
)
resp.raise_for_status()
summary = resp.json()['summary']
print(f"{summary['failed_deliveries']} of {summary['total_deliveries']} failed ({summary['error_rate_percentage']}%)")const destinationUuid = '11111111-2222-3333-4444-555555555555';
const params = new URLSearchParams({ date_from: '2026-10-01', date_to: '2026-10-16' });
const resp = await fetch(`https://verification.didit.me/v3/webhook/destinations/${destinationUuid}/analytics/?${params}`, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Request failed: ${resp.status}`);
const { summary, points } = await resp.json();
console.log(summary.error_rate_percentage, points.length);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/",
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://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/"
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://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/")
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{
"summary": {
"total_deliveries": 1250,
"failed_deliveries": 12,
"min_response_time_ms": 38,
"avg_response_time_ms": 164,
"max_response_time_ms": 5004,
"error_rate_percentage": 1
},
"points": [
{
"date": "2026-10-14",
"total_deliveries": 410,
"failed_deliveries": 0,
"min_response_time_ms": 38,
"avg_response_time_ms": 152,
"max_response_time_ms": 911
},
{
"date": "2026-10-15",
"total_deliveries": 395,
"failed_deliveries": 12,
"min_response_time_ms": 41,
"avg_response_time_ms": 190,
"max_response_time_ms": 5004
},
{
"date": "2026-10-16",
"total_deliveries": 445,
"failed_deliveries": 0,
"min_response_time_ms": 40,
"avg_response_time_ms": 151,
"max_response_time_ms": 1220
}
]
}Get Webhook Destination Analytics
Delivery totals, failure rate and response times for one webhook destination, overall and per UTC day, for any date range.
curl -X GET 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/analytics/?date_from=2026-10-01&date_to=2026-10-16' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
destination_uuid = '11111111-2222-3333-4444-555555555555'
resp = requests.get(
f'https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params={'date_from': '2026-10-01', 'date_to': '2026-10-16'},
timeout=10,
)
resp.raise_for_status()
summary = resp.json()['summary']
print(f"{summary['failed_deliveries']} of {summary['total_deliveries']} failed ({summary['error_rate_percentage']}%)")const destinationUuid = '11111111-2222-3333-4444-555555555555';
const params = new URLSearchParams({ date_from: '2026-10-01', date_to: '2026-10-16' });
const resp = await fetch(`https://verification.didit.me/v3/webhook/destinations/${destinationUuid}/analytics/?${params}`, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Request failed: ${resp.status}`);
const { summary, points } = await resp.json();
console.log(summary.error_rate_percentage, points.length);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/",
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://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/"
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://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/")
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{
"summary": {
"total_deliveries": 1250,
"failed_deliveries": 12,
"min_response_time_ms": 38,
"avg_response_time_ms": 164,
"max_response_time_ms": 5004,
"error_rate_percentage": 1
},
"points": [
{
"date": "2026-10-14",
"total_deliveries": 410,
"failed_deliveries": 0,
"min_response_time_ms": 38,
"avg_response_time_ms": 152,
"max_response_time_ms": 911
},
{
"date": "2026-10-15",
"total_deliveries": 395,
"failed_deliveries": 12,
"min_response_time_ms": 41,
"avg_response_time_ms": 190,
"max_response_time_ms": 5004
},
{
"date": "2026-10-16",
"total_deliveries": 445,
"failed_deliveries": 0,
"min_response_time_ms": 40,
"avg_response_time_ms": 151,
"max_response_time_ms": 1220
}
]
}Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Path Parameters
UUID of the destination (the uuid returned by GET /v3/webhook/destinations/).
Query Parameters
First UTC day to include, as YYYY-MM-DD (inclusive). Omit to start from the oldest delivery available. dateFrom is accepted as an alias.
Last UTC day to include, as YYYY-MM-DD (inclusive). Must not be earlier than date_from. dateTo is accepted as an alias.
Response
Delivery statistics for the destination.