> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Freschezza dataset AML: API

> Verifica quanto sono aggiornati i dataset di sanzioni, PEP, avvisi e notizie negative di Didit, per famiglia di fonte, come evidenza di audit AML.



Prompt per l'API di aggiornamento dei dataset AML
        Copia il prompt negli appunti



      
      

\<pre>

\`Read how current Didit's AML screening datasets are, so I can attach it to an audit of ongoing AML monitoring.

Endpoint:
GET https://verification.didit.me/v3/aml/dataset-freshness/

Authentication:
Use the x-api-key header with my Didit API key. A scoped key needs sessions: read. A key limited to some workflows or to approved sessions can't call this endpoint.

Goal:
\- Get, per AML source family (sanctions, pep, warnings, adverse_media), the most recent dataset update and the staleness bound, and store it next to the AML screening history I hand to an auditor.

Behavior:
\- Platform-wide: no session in the path, no customer data in the answer, the same answer for every application.
\- Always 200. When no reading exists, dataset_freshness is null and availability says why: "not_configured" (dataset dates are not collected in this environment) or "not_yet_collected" (collection is set up, no reading yet).
\- Dates are never estimated. A family whose datasets reported no date is absent from sources. A family where only some datasets reported a date has oldest_updated_at: null.
\- captured_at is when the dates were read. Readings are taken while ongoing monitoring runs, not on each call.

Example call:
curl -X GET "https://verification.didit.me/v3/aml/dataset-freshness/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- availability - "available", "not_configured" or "not_yet_collected". Check it before reading dataset_freshness.
\- dataset_freshness.captured_at - when the reading was taken.
\- dataset_freshness.sources.<family>.last_updated_at - the most recent update in that family.
\- dataset_freshness.sources.<family>.oldest_updated_at - every dataset in the family is at least this current; null when some dates are missing.
\- dataset_freshness.sources.<family>.dataset_count and dated_dataset_count - how many datasets the family has and how many reported a date.
\- dataset_freshness.catalog_version - the data source's own catalog version, when reported.

Failure modes:
\- 401 - the API key has expired.
\- 403 - missing key (a wrong, revoked or expired key gets 401) ({"detail": "You do not have permission to perform this action."}), a scoped key without sessions: read, a key limited to workflows or approved sessions, or a request from outside the key's IP list.
\- 429 - more than 600 GET requests per minute with this key; wait Retry-After seconds.

Side effects: none. Not billed.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

Incolla in

Usa questo endpoint per mostrare con quali versioni delle liste il monitoraggio continuo ha eseguito lo screening. Abbinalo alla cronologia dello screening per soggetto descritta in [Dimostrare che il monitoraggio è stato eseguito](https://docs.didit.me/it/core-technology/aml-screening/continuous-monitoring-aml-screening.md#dimostrare-l’avvenuta-esecuzione-del-monitoraggio): la cronologia indica quando ogni soggetto è stato sottoposto a screening, mentre questo endpoint indica quanto fossero aggiornati i dataset alla base di tali screening.> [!NOTE]
>
> Una data mancante viene segnalata come mancante, non sostituita con un valore alternativo. Controlla prima `availability`: quando non è `available`, `dataset_freshness` è `null` e non c'è nulla da leggere.## Correlati- [Monitoraggio AML continuo](https://docs.didit.me/it/core-technology/aml-screening/continuous-monitoring-aml-screening.md)
- [API per lo Screening AML](https://docs.didit.me/it/standalone-apis/aml-screening.md)
- [Chiavi API e accesso con ambiti limitati](https://docs.didit.me/it/console/api-keys.md)


## OpenAPI

````yaml it/openapi-25.json GET /v3/aml/dataset-freshness/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/aml/dataset-freshness/:
    get:
      tags:
        - Standalone APIs
      summary: Recupera lo stato di aggiornamento dei dataset AML
      description: >-
        Riporta il grado di aggiornamento dei set di dati alla base dello
        screening AML, per famiglia di fonti (`sanctions`, `pep`, `warnings`,
        `adverse_media`), come prova di audit per il [monitoraggio AML
        continuo](https://docs.didit.me/it/core-technology/aml-screening/continuous-monitoring-aml-screening#dimostrare-l’avvenuta-esecuzione-del-monitoraggio).
        La risposta riguarda l'intera piattaforma: nessuna sessione nel
        percorso, nessun dato del cliente nel corpo, la stessa risposta per ogni
        applicazione.


        Sempre `200` per una chiave accettata. Controlla prima `availability`:
        quando non è `available`, `dataset_freshness` è `null`. Le date non
        vengono mai stimate: una famiglia i cui set di dati non hanno riportato
        alcuna data è assente da `sources`, e una famiglia in cui solo alcuni
        set di dati ne hanno riportata una presenta `oldest_updated_at: null`.
        Le rilevazioni vengono effettuate durante l'esecuzione del monitoraggio
        continuo, non a ogni chiamata; `captured_at` indica quando.


        Una chiave API con ambito limitato richiede `sessions: read`; una chiave
        limitata ad alcuni workflow o a sessioni approvate non può chiamare
        questo endpoint. Non viene fatturato nulla.
      operationId: get_aml_dataset_freshness
      parameters: []
      responses:
        '200':
          description: >-
            La lettura più recente della freschezza del dataset, o `null` con il
            motivo.
          content:
            application/json:
              schema:
                type: object
                required:
                  - dataset_freshness
                  - availability
                properties:
                  dataset_freshness:
                    allOf:
                      - $ref: '#/components/schemas/AMLDatasetFreshness'
                    nullable: true
                    description: >-
                      La lettura più recente, o `null` quando `availability` non
                      è `available`.
                  availability:
                    type: string
                    enum:
                      - available
                      - not_configured
                      - not_yet_collected
                    description: >-
                      `available` quando è presente una lettura;
                      `not_configured` quando le date dei set di dati non
                      vengono raccolte in questo ambiente; `not_yet_collected`
                      quando la raccolta è configurata ma non esiste ancora
                      alcuna lettura.
              examples:
                Available:
                  value:
                    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
                Not collected yet:
                  value:
                    dataset_freshness: null
                    availability: not_yet_collected
        '401':
          description: >-
            La chiave API è scaduta. Solo una chiave creata con una data di
            scadenza può scadere; dopo tale data ogni richiesta inviata con essa
            risponde con `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La richiesta non è consentita. Una chiave mancante riceve il
            messaggio generico; una chiave errata, revocata o scaduta riceve
            `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without sessions read:
                  value:
                    detail: This API key has no read access to sessions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            Più di 600 richieste GET al minuto con questa chiave API. Attendi il
            numero di secondi indicato in `Retry-After`, quindi riprova.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: >-
                Secondi fino al ripristino della finestra temporale corrente di
                un minuto.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Richieste consentite al minuto per questo budget.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Richieste rimanenti nell'intervallo corrente.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Ora Unix in cui la finestra si azzera.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/aml/dataset-freshness/' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.aml.retrieve_dataset_freshness()
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.aml.retrieveDatasetFreshness();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.AML.RetrieveDatasetFreshness(ctx)\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.aml().retrieveDatasetFreshness();
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->aml->retrieveDatasetFreshness();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.aml.retrieve_dataset_freshness
            puts result.to_h
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            var result = await client.Aml.RetrieveDatasetFreshnessAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AMLDatasetFreshness:
      type: object
      description: >-
        Livello di aggiornamento dei set di dati AML al momento dell'esecuzione
        dello screening. Le date non vengono mai stimate.
      required:
        - captured_at
        - provider
        - catalog_version
        - sources
      properties:
        captured_at:
          type: string
          format: date-time
          description: >-
            Quando Didit ha letto il catalogo del dataset da cui proviene questa
            informazione sulla freschezza.
        provider:
          type: string
          description: >-
            Identificatore opaco della fonte di dati AML. Trattalo come una
            stringa opaca; non eseguire diramazioni su di esso.
          example: aml_data_source
        catalog_version:
          type: string
          nullable: true
          description: >-
            Identificatore di versione del catalogo dei set di dati, quando la
            fonte ne segnala uno.
        sources:
          type: object
          description: >-
            Grado di aggiornamento per famiglia di dataset. Una famiglia i cui
            dataset non hanno riportato alcuna data di aggiornamento è assente
            anziché compilata con `null`.
          properties:
            sanctions:
              $ref: '#/components/schemas/AMLDatasetSourceFreshness'
            pep:
              $ref: '#/components/schemas/AMLDatasetSourceFreshness'
            warnings:
              $ref: '#/components/schemas/AMLDatasetSourceFreshness'
            adverse_media:
              $ref: '#/components/schemas/AMLDatasetSourceFreshness'
    AMLDatasetSourceFreshness:
      type: object
      description: Grado di aggiornamento di una famiglia di dataset AML.
      required:
        - last_updated_at
        - oldest_updated_at
        - dataset_count
        - dated_dataset_count
      properties:
        last_updated_at:
          type: string
          format: date-time
          description: Aggiornamento più recente di qualsiasi set di dati della famiglia.
        oldest_updated_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Limite di obsolescenza: ogni dataset nella famiglia è aggiornato
            almeno a questa data. `null` quando almeno un dataset nella famiglia
            non ha riportato alcuna data di aggiornamento, poiché in tal caso il
            limite è sconosciuto.
        dataset_count:
          type: integer
          description: Numero di dataset nella famiglia.
        dated_dataset_count:
          type: integer
          description: >-
            Numero di quei dataset che hanno segnalato una data di
            aggiornamento.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.