curl -X GET 'https://verification.didit.me/v3/events/?event_category=payment&event_category=dispute&matched_only=true&occurred_from=2026-10-01T00:00:00Z&limit=50' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
url = 'https://verification.didit.me/v3/events/'
params = {
'event_category': ['payment', 'dispute'],
'matched_only': 'true',
'occurred_from': '2026-10-01T00:00:00Z',
'limit': 50,
}
while url:
resp = requests.get(
url,
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params=params,
timeout=10,
)
resp.raise_for_status()
page = resp.json()
for event in page['results']:
print(event['event_uuid'], event['action_type'], event['status'])
url, params = page['next'], Noneconst params = new URLSearchParams([
['event_category', 'payment'],
['event_category', 'dispute'],
['matched_only', 'true'],
['occurred_from', '2026-10-01T00:00:00Z'],
['limit', '50'],
]);
let url = `https://verification.didit.me/v3/events/?${params}`;
while (url) {
const resp = await fetch(url, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Request failed: ${resp.status}`);
const page = await resp.json();
for (const event of page.results) console.log(event.event_uuid, event.action_type, event.status);
url = page.next;
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/events/",
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/events/"
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/events/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/events/")
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{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"event_uuid": "11111111-2222-3333-4444-555555555555",
"event_id": "chargeback-2026-10-16-000318",
"event_category": "dispute",
"action_type": "chargeback_opened",
"occurred_at": "2026-10-16T14:02:11Z",
"received_at": "2026-10-16T14:02:12.418230Z",
"status": "IN_REVIEW",
"score": 60,
"subject_vendor_data": "user-42",
"subject_entity_type": "individual",
"subject_uuid": "66666666-7777-8888-9999-000000000000",
"counterparty_vendor_data": null,
"session_id": null,
"device_fingerprint": null,
"ip_address": null,
"ip_country": null,
"amount": "250.000000000000000000",
"currency": "EUR",
"game_id": null,
"round_id": null,
"bonus_id": null,
"affiliate_code": null,
"payment_reference_id": "dep_735",
"retention_class": "monetary_or_compliance",
"rules_matched_count": 1,
"correlation_pending": false,
"is_droppable": false
},
{
"event_uuid": "22222222-3333-4444-5555-666666666666",
"event_id": "login-2026-10-15-000912",
"event_category": "auth",
"action_type": "login",
"occurred_at": "2026-10-15T08:30:00.120000Z",
"received_at": "2026-10-15T08:30:00.734512Z",
"status": "ACCEPTED",
"score": 0,
"subject_vendor_data": "user-42",
"subject_entity_type": "individual",
"subject_uuid": "66666666-7777-8888-9999-000000000000",
"counterparty_vendor_data": null,
"session_id": "web-session-abc",
"device_fingerprint": "fp-a8c1",
"ip_address": "203.0.113.42",
"ip_country": "ES",
"amount": null,
"currency": null,
"game_id": null,
"round_id": null,
"bonus_id": null,
"affiliate_code": null,
"payment_reference_id": null,
"retention_class": "standard",
"rules_matched_count": 0,
"correlation_pending": false,
"is_droppable": true
}
]
}List Monitoring Events
List monitoring events with filters for category, status, subject, device, IP, payment reference and time window, newest first.
curl -X GET 'https://verification.didit.me/v3/events/?event_category=payment&event_category=dispute&matched_only=true&occurred_from=2026-10-01T00:00:00Z&limit=50' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
url = 'https://verification.didit.me/v3/events/'
params = {
'event_category': ['payment', 'dispute'],
'matched_only': 'true',
'occurred_from': '2026-10-01T00:00:00Z',
'limit': 50,
}
while url:
resp = requests.get(
url,
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params=params,
timeout=10,
)
resp.raise_for_status()
page = resp.json()
for event in page['results']:
print(event['event_uuid'], event['action_type'], event['status'])
url, params = page['next'], Noneconst params = new URLSearchParams([
['event_category', 'payment'],
['event_category', 'dispute'],
['matched_only', 'true'],
['occurred_from', '2026-10-01T00:00:00Z'],
['limit', '50'],
]);
let url = `https://verification.didit.me/v3/events/?${params}`;
while (url) {
const resp = await fetch(url, {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Request failed: ${resp.status}`);
const page = await resp.json();
for (const event of page.results) console.log(event.event_uuid, event.action_type, event.status);
url = page.next;
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/events/",
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/events/"
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/events/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/events/")
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{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"event_uuid": "11111111-2222-3333-4444-555555555555",
"event_id": "chargeback-2026-10-16-000318",
"event_category": "dispute",
"action_type": "chargeback_opened",
"occurred_at": "2026-10-16T14:02:11Z",
"received_at": "2026-10-16T14:02:12.418230Z",
"status": "IN_REVIEW",
"score": 60,
"subject_vendor_data": "user-42",
"subject_entity_type": "individual",
"subject_uuid": "66666666-7777-8888-9999-000000000000",
"counterparty_vendor_data": null,
"session_id": null,
"device_fingerprint": null,
"ip_address": null,
"ip_country": null,
"amount": "250.000000000000000000",
"currency": "EUR",
"game_id": null,
"round_id": null,
"bonus_id": null,
"affiliate_code": null,
"payment_reference_id": "dep_735",
"retention_class": "monetary_or_compliance",
"rules_matched_count": 1,
"correlation_pending": false,
"is_droppable": false
},
{
"event_uuid": "22222222-3333-4444-5555-666666666666",
"event_id": "login-2026-10-15-000912",
"event_category": "auth",
"action_type": "login",
"occurred_at": "2026-10-15T08:30:00.120000Z",
"received_at": "2026-10-15T08:30:00.734512Z",
"status": "ACCEPTED",
"score": 0,
"subject_vendor_data": "user-42",
"subject_entity_type": "individual",
"subject_uuid": "66666666-7777-8888-9999-000000000000",
"counterparty_vendor_data": null,
"session_id": "web-session-abc",
"device_fingerprint": "fp-a8c1",
"ip_address": "203.0.113.42",
"ip_country": "ES",
"amount": null,
"currency": null,
"game_id": null,
"round_id": null,
"bonus_id": null,
"affiliate_code": null,
"payment_reference_id": null,
"retention_class": "standard",
"rules_matched_count": 0,
"correlation_pending": false,
"is_droppable": true
}
]
}rules_matched_count move.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.
Query Parameters
Maximum number of events per page. Defaults to 50. Values above 1000000 return 400; a non-numeric, zero or negative value falls back to 50.
1 <= x <= 1000000Number of events to skip. Defaults to 0. Prefer following the next URL from the response.
0 <= x <= 1000000Only events in these categories. Repeat the parameter for several values (?event_category=payment&event_category=dispute); an event matching any of them is returned.
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom Only events with these action types (exact, case-sensitive). Repeat for several values.
Only events with these statuses. Repeat for several values.
ACCEPTED, APPROVED, IN_REVIEW, DECLINED Only events in these retention classes. Repeat for several values.
low_value, standard, risk_relevant, monetary_or_compliance Exact match on the subject's vendor_data. The same id can name an individual and a company; add subject_entity_type to pick one, or use GET /v3/events/subjects/{vendor_data}/.
company returns only events of company subjects; any other non-empty value (for example individual) returns only events of individuals. Omit it to return both.
individual, company Exact match on the business.vendor_data sent with the event.
Exact match on session.session_id.
Exact match on device_context.fingerprint.
Exact match on the event's IP address.
Exact match on the promoted game_id.
Exact match on the promoted round_id.
Exact match on the promoted affiliate_code.
Exact match on the payment reference (from transaction_context.payment_reference_id or payload.payment_reference_id).
Exact match on the promoted counterparty_vendor_data.
true (also 1 or yes, case-insensitive) returns only events at least one rule matched (rules_matched_count above 0). Any other value is ignored.
Only events with occurred_at at or after this instant (inclusive). Send an ISO 8601 value: 2026-10-01T00:00:00Z, an explicit offset with the + percent-encoded (2026-10-01T02:00:00%2B02:00; an unencoded + is decoded as a space and the value no longer parses), or a date alone (2026-10-01), which means 00:00:00 UTC of that day. A value without an offset is read as UTC. Values in any other format are not accepted.
Only events with occurred_at at or before this instant (inclusive). A date alone means the start of that day, so occurred_to=2026-10-15 excludes the rest of 15 October; send 2026-10-15T23:59:59Z to include it. Send an ISO 8601 value: 2026-10-01T00:00:00Z, an explicit offset with the + percent-encoded (2026-10-01T02:00:00%2B02:00; an unencoded + is decoded as a space and the value no longer parses), or a date alone (2026-10-01), which means 00:00:00 UTC of that day. A value without an offset is read as UTC. Values in any other format are not accepted.
Case-insensitive substring match on event_id, action_type, subject_vendor_data or counterparty_vendor_data.
Response
One page of event summaries.
One page of monitoring events, newest occurred_at first.
Number of matching events, exact up to 100 and capped at 100 above that. Do not compute page counts from it; follow next until it is null.
URL of the next page, or null on the last page.
URL of the previous page, or null on the first page.
Show child attributes
Show child attributes