> ## 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.

# Frescura de datasets AML: API de Didit

> Consulta en Didit la actualización de sus datasets de sanciones, PEP, advertencias y medios adversos por fuente, como evidencia de auditoría AML.



Prompt de la API de actualidad de los datasets AML
        Copiar el prompt al portapapeles



      
      

\<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>



      
      

Pegar en

Usa este endpoint para mostrar con qué versiones de las listas se realizó el análisis en la monitorización continua. Combínalo con el historial de análisis por sujeto descrito en [Demostrar que la monitorización se ejecutó](https://docs.didit.me/es/core-technology/aml-screening/continuous-monitoring-aml-screening.md#demostrar-que-la-monitorización-se-ejecutó): el historial indica cuándo se analizó cada sujeto, y este endpoint indica qué tan actualizados estaban los datasets en los que se basaron esos análisis.> [!NOTE]
>
> La ausencia de una fecha se informa como tal y nunca se sustituye. Comprueba primero `availability`: cuando no es `available`, `dataset_freshness` es `null` y no hay nada que leer.## Relacionado- [Monitorización AML continua](https://docs.didit.me/es/core-technology/aml-screening/continuous-monitoring-aml-screening.md)
- [API de análisis AML](https://docs.didit.me/es/standalone-apis/aml-screening.md)
- [Claves de API y acceso con permisos limitados](https://docs.didit.me/es/console/api-keys.md)


## OpenAPI

````yaml es/openapi-25.json GET /v3/aml/dataset-freshness/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/aml/dataset-freshness/:
    get:
      tags:
        - Standalone APIs
      summary: Obtener el estado de actualización del conjunto de datos AML
      description: >-
        Indica lo actualizados que están los conjuntos de datos en los que se
        basa el Análisis AML, por familia de fuentes (`sanctions`, `pep`,
        `warnings`, `adverse_media`), como evidencia de auditoría para la
        [Monitorización AML
        continua](https://docs.didit.me/es/core-technology/aml-screening/continuous-monitoring-aml-screening#demostrar-que-la-monitorización-se-ejecutó).
        La respuesta abarca toda la plataforma: no hay ninguna sesión en la ruta
        ni datos de clientes en el cuerpo, y la respuesta es la misma para todas
        las aplicaciones.


        Siempre devuelve `200` para una clave aceptada. Comprueba primero
        `availability`: cuando no es `available`, `dataset_freshness` es `null`.
        Las fechas nunca se estiman: una familia cuyos conjuntos de datos no
        informaron ninguna fecha no aparece en `sources`, y una familia en la
        que solo algunos conjuntos de datos informaron una tiene
        `oldest_updated_at: null`. Las lecturas se toman mientras se ejecuta la
        monitorización continua, no en cada llamada; `captured_at` indica
        cuándo.


        Una clave de API con alcance limitado necesita `sessions: read`; una
        clave limitada a algunos flujos o a sesiones aprobadas no puede llamar a
        este endpoint. No se cobra nada.
      operationId: get_aml_dataset_freshness
      parameters: []
      responses:
        '200':
          description: >-
            La lectura más reciente de actualización del conjunto de datos, o
            `null` con el motivo.
          content:
            application/json:
              schema:
                type: object
                required:
                  - dataset_freshness
                  - availability
                properties:
                  dataset_freshness:
                    allOf:
                      - $ref: '#/components/schemas/AMLDatasetFreshness'
                    nullable: true
                    description: >-
                      La lectura más reciente, o `null` cuando `availability` no
                      es `available`.
                  availability:
                    type: string
                    enum:
                      - available
                      - not_configured
                      - not_yet_collected
                    description: >-
                      `available` cuando existe una lectura; `not_configured`
                      cuando no se recopilan las fechas de los conjuntos de
                      datos en este entorno; `not_yet_collected` cuando la
                      recopilación está configurada, pero aún no existe ninguna
                      lectura.
              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 clave de API ha expirado. Solo puede expirar una clave creada con
            fecha de caducidad; a partir de esa fecha, toda solicitud que la use
            responde `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            La solicitud no está permitida. Si falta la clave, se recibe el
            mensaje genérico; una clave incorrecta, revocada o expirada recibe
            `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: >-
            Más de 600 solicitudes GET por minuto con esta clave de API. Espera
            el número de segundos indicado en `Retry-After` y vuelve a
            intentarlo.
          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: Segundos hasta que se reinicia la ventana actual de un minuto.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Solicitudes permitidas por minuto en este presupuesto.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Solicitudes restantes en la ventana actual.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Tiempo Unix en que se restablece la ventana.
              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: >-
        Qué tan actualizados estaban los conjuntos de datos AML cuando se
        ejecutó un análisis. Las fechas nunca se estiman.
      required:
        - captured_at
        - provider
        - catalog_version
        - sources
      properties:
        captured_at:
          type: string
          format: date-time
          description: >-
            Cuándo leyó Didit el catálogo de conjuntos de datos del que procede
            este dato de actualización.
        provider:
          type: string
          description: >-
            Identificador opaco de la fuente de datos AML. Trátalo como una
            cadena opaca; no bases ninguna lógica condicional en él.
          example: aml_data_source
        catalog_version:
          type: string
          nullable: true
          description: >-
            Identificador de versión del catálogo de conjuntos de datos, cuando
            la fuente lo indica.
        sources:
          type: object
          description: >-
            Actualidad por familia de conjuntos de datos. Una familia cuyos
            conjuntos de datos no informaron ninguna fecha de actualización no
            aparece, en lugar de rellenarse 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: Actualidad de una familia de conjuntos de datos AML.
      required:
        - last_updated_at
        - oldest_updated_at
        - dataset_count
        - dated_dataset_count
      properties:
        last_updated_at:
          type: string
          format: date-time
          description: >-
            Actualización más reciente de cualquier conjunto de datos de la
            familia.
        oldest_updated_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Límite de antigüedad: todos los conjuntos de datos de la familia
            están, como mínimo, así de actualizados. `null` cuando al menos un
            conjunto de datos de la familia no informó una fecha de
            actualización, porque en ese caso el límite es desconocido.
        dataset_count:
          type: integer
          description: Número de conjuntos de datos de la familia.
        dated_dataset_count:
          type: integer
          description: >-
            Número de esos conjuntos de datos que informaron una fecha de
            actualización.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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