curl -X GET 'https://verification.didit.me/v3/aml/dataset-freshness/' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
resp = requests.get(
'https://verification.didit.me/v3/aml/dataset-freshness/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
timeout=10,
)
resp.raise_for_status()
body = resp.json()
if body['availability'] == 'available':
for family, info in body['dataset_freshness']['sources'].items():
print(family, info['last_updated_at'], info['oldest_updated_at'])const resp = await fetch('https://verification.didit.me/v3/aml/dataset-freshness/', {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Freshness lookup failed: ${resp.status}`);
const body = await resp.json();
if (body.availability === 'available') {
for (const [family, info] of Object.entries(body.dataset_freshness.sources)) {
console.log(family, info.last_updated_at, info.oldest_updated_at);
}
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/aml/dataset-freshness/",
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/aml/dataset-freshness/"
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/aml/dataset-freshness/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/aml/dataset-freshness/")
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{
"dataset_freshness": {
"captured_at": "2026-10-17T06:00:12.345678+00:00",
"provider": "aml_data_source",
"catalog_version": "20261017054500-abc",
"sources": {
"sanctions": {
"last_updated_at": "2026-10-17T04:10:00+00:00",
"oldest_updated_at": "2026-10-15T22:30:00+00:00",
"dataset_count": 48,
"dated_dataset_count": 48
},
"pep": {
"last_updated_at": "2026-10-16T23:05:00+00:00",
"oldest_updated_at": null,
"dataset_count": 12,
"dated_dataset_count": 11
}
}
},
"availability": "available"
}Get AML Dataset Freshness
Check how current Didit’s sanctions, PEP, warnings and adverse media datasets are, per source family, as audit evidence for AML monitoring.
curl -X GET 'https://verification.didit.me/v3/aml/dataset-freshness/' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
resp = requests.get(
'https://verification.didit.me/v3/aml/dataset-freshness/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
timeout=10,
)
resp.raise_for_status()
body = resp.json()
if body['availability'] == 'available':
for family, info in body['dataset_freshness']['sources'].items():
print(family, info['last_updated_at'], info['oldest_updated_at'])const resp = await fetch('https://verification.didit.me/v3/aml/dataset-freshness/', {
headers: { 'x-api-key': process.env.DIDIT_API_KEY },
});
if (!resp.ok) throw new Error(`Freshness lookup failed: ${resp.status}`);
const body = await resp.json();
if (body.availability === 'available') {
for (const [family, info] of Object.entries(body.dataset_freshness.sources)) {
console.log(family, info.last_updated_at, info.oldest_updated_at);
}
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/aml/dataset-freshness/",
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/aml/dataset-freshness/"
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/aml/dataset-freshness/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/aml/dataset-freshness/")
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{
"dataset_freshness": {
"captured_at": "2026-10-17T06:00:12.345678+00:00",
"provider": "aml_data_source",
"catalog_version": "20261017054500-abc",
"sources": {
"sanctions": {
"last_updated_at": "2026-10-17T04:10:00+00:00",
"oldest_updated_at": "2026-10-15T22:30:00+00:00",
"dataset_count": 48,
"dated_dataset_count": 48
},
"pep": {
"last_updated_at": "2026-10-16T23:05:00+00:00",
"oldest_updated_at": null,
"dataset_count": 12,
"dated_dataset_count": 11
}
}
},
"availability": "available"
}availability first: when it is not available, dataset_freshness is null and there is nothing to read.Related
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.
Response
The latest dataset freshness reading, or null with the reason.
The latest reading, or null when availability is not available.
Show child attributes
Show child attributes
available when a reading exists; not_configured when dataset dates are not collected in this environment; not_yet_collected when collection is set up but no reading exists yet.
available, not_configured, not_yet_collected