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

# AML स्क्रीनिंग इतिहास CSV एक्सपोर्ट API

> Didit API से किसी सत्र का सतत AML निगरानी इतिहास CSV फ़ाइल में डाउनलोड करें, हर पूरे हुए री-स्क्रीन के लिए एक पंक्ति, ऑडिटर को सौंपने के लिए तैयार।

AML स्क्रीनिंग इतिहास एक्सपोर्ट करने के लिए API प्रॉम्प्ट
प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें

<pre>
  \`Download the ongoing AML monitoring history of one Didit verification session as a CSV file through the API.

  Endpoint:
  GET [https://verification.didit.me/v3/session/\{session\_id}/aml-screening-history/export/](https://verification.didit.me/v3/session/\{session_id}/aml-screening-history/export/)

  Authentication:
  Send my Didit API key in the x-api-key header. A scoped key needs decisions: read and media: read (the response is a file; without media: read the call returns 403).

  Goal:

  * Produce the audit evidence that ongoing AML monitoring ran for a subject, as a file a compliance team can hand to an auditor.

  Query parameters:

  * node\_id (optional): the workflow node ID of the AML check when the session ran several AML steps. Without it, the most recent AML check is used.

  Behavior:

  * Works for user (KYC) and business (KYB) session IDs.
  * Streams text/csv with Content-Disposition: attachment; filename="aml-screening-history-SESSION\_ID.csv". Not paginated: the file holds the whole history, newest first.
  * The first line is the header. Each following line is one completed re-screen.
  * Columns: screened\_at, outcome, provider, aml\_status, aml\_score, total\_hits, datasets\_captured\_at, datasets\_sanctions\_last\_updated\_at, datasets\_pep\_last\_updated\_at, datasets\_warnings\_last\_updated\_at, datasets\_adverse\_media\_last\_updated\_at, datasets\_catalog\_version.
  * Empty cell = unknown. Dataset dates are never estimated.
  * provider is an identifier of the data source; treat it as an opaque string.
  * Values that would start a spreadsheet formula (=, +, -, @) are prefixed with an apostrophe.
  * Errors come back as JSON, not CSV.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/aml-screening-history/export/](https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/aml-screening-history/export/)" \
  -H "x-api-key: YOUR\_API\_KEY" \
  -o aml-screening-history.csv

  Failure modes:

  * 401: the API key has expired.
  * 403: missing key (a wrong, revoked or expired key gets 401), a key of another application, a scoped key without decisions: read or media: read, or a request from outside the key's IP allowlist.
  * 404: the session does not exist, was deleted, or is outside a scoped key's limits, or it has no AML check (for that node\_id).

  Side effects: none. This is a pure read.

  For the full integration shape, see /integration/integration-prompt.\`
</pre>

यहाँ पेस्ट करें

फ़ाइल में वही स्क्रीनिंग होती हैं जो [AML स्क्रीनिंग इतिहास सूचीबद्ध करें](https://docs.didit.me/hi/management-api/sessions/aml-screening-history.md) में हैं, बस हर स्क्रीनिंग एक पंक्ति में समतल कर दी जाती है। साथ ही, जहाँ रिपोर्ट की गई हो, वहाँ हर सूची समूह (प्रतिबंध, PEP, चेतावनियाँ, प्रतिकूल मीडिया) की डेटासेट अपडेट की तिथि भी शामिल होती है। Business Console में यही एक्सपोर्ट AML परिणाम के बगल में उपलब्ध है। हर मान का अर्थ जानने के लिए [सतत AML निगरानी](https://docs.didit.me/hi/core-technology/aml-screening/continuous-monitoring-aml-screening.md) देखें।


## OpenAPI

````yaml hi/openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/export/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: पहचान सत्यापन API। x-api-key हेडर के साथ प्रमाणीकृत करें।
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/aml-screening-history/export/:
    get:
      tags:
        - Sessions
      summary: CSV के रूप में AML स्क्रीनिंग इतिहास एक्सपोर्ट करें
      description: >-
        वही सतत-निगरानी इतिहास जो `GET
        /v3/session/{sessionId}/aml-screening-history/` देता है, CSV फ़ाइल के
        रूप में डाउनलोड करें, प्रति पूर्ण पुनः-स्क्रीन एक पंक्ति, नवीनतम पहले,
        किसी ऑडिटर को सौंपने के लिए तैयार। फ़ाइल पूरी तरह स्ट्रीम की जाती है
        (कोई पेजिनेशन नहीं) और एक हेडर पंक्ति से शुरू होती है; एक खाली सेल का
        अर्थ अज्ञात है, डेटासेट तिथियों का कभी अनुमान नहीं लगाया जाता है, और जो
        मान स्प्रेडशीट फॉर्मूला शुरू कर सकता है उसके आगे एक एपोस्ट्रोफी लगाई
        जाती है। KYC और KYB सत्र ID के लिए काम करता है; जब सत्र में एक से अधिक
        AML चरण चले हों तो `node_id` पास करें। एक कैलेंडर माह एक्सपोर्ट करने के
        लिए `month` पास करें। त्रुटियाँ CSV के बजाय JSON के रूप में लौटाई जाती
        हैं। स्कोप्ड API कुंजी के लिए `decisions: read` और `media: read` की
        आवश्यकता होती है: रिस्पॉन्स एक फ़ाइल है, इसलिए `media: read` के बिना
        कुंजी को `403` मिलता है।
      operationId: get_v3_session_aml_screening_history_export
      parameters:
        - name: sessionId
          in: path
          required: true
          description: >-
            सत्यापन सत्र का UUID (`POST /v3/session/` द्वारा लौटाया गया
            `session_id`)। उपयोगकर्ता सत्यापन (KYC) और व्यवसाय सत्यापन (KYB)
            दोनों सत्र ID स्वीकार करता है: सर्वर दोनों सत्र प्रकारों में ID को
            रिज़ॉल्व करता है। यह एक सही प्रारूप वाला UUID होना चाहिए; गलत
            प्रारूप वाला मान रूट से मेल नहीं खाता है और एक HTML `404` लौटाता है।
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - name: node_id
          in: query
          required: false
          description: >-
            AML चेक का वर्कफ़्लो ग्राफ़ नोड ID। केवल तभी आवश्यक जब सत्र में एक
            से अधिक AML चरण चले हों; इसके बिना नवीनतम AML चेक का उपयोग किया जाता
            है। अज्ञात नोड के लिए `404` लौटाया जाता है।
          schema:
            type: string
            example: feature_aml_1
        - name: month
          in: query
          required: false
          description: >-
            `YYYY-MM` के रूप में एक UTC कैलेंडर माह। केवल उस महीने में पूरी की
            गई स्क्रीनिंग ही लौटाई जाती हैं; इसके बिना हर महीना लौटाया जाता है।
            एक विकृत माह `400` लौटाता है।
          schema:
            type: string
            pattern: ^\d{4}-(0[1-9]|1[0-2])$
            example: 2026-09
      responses:
        '200':
          description: >-
            CRLF लाइन एंडिंग्स के साथ `text/csv` के रूप में स्ट्रीम की गई CSV
            फ़ाइल। कॉलम, क्रम में: `screened_at` (जब पुनः स्क्रीनिंग समाप्त
            हुई), `outcome` (`NO_CHANGE`, `CHANGED` या `FAILED`), `provider`
            (AML डेटा स्रोत का अपारदर्शी पहचानकर्ता; इस पर शाखा न बनाएं),
            `aml_status`, `aml_score`, `total_hits`, `datasets_captured_at`,
            `datasets_sanctions_last_updated_at`,
            `datasets_pep_last_updated_at`, `datasets_warnings_last_updated_at`,
            `datasets_adverse_media_last_updated_at`,
            `datasets_catalog_version`, `run_id` (निगरानी रन),
            `entities_screened` (`1`, या विफल रन के लिए `0`) और `new_hits`
            (अज्ञात होने पर खाली)। तिथियां UTC ऑफ़सेट के साथ ISO 8601 हैं। जिस
            सत्र में अभी तक कोई पुनः स्क्रीनिंग नहीं हुई है, वह केवल हेडर लाइन
            लौटाता है।
          headers:
            Content-Disposition:
              description: >-
                `attachment; filename="aml-screening-history-{sessionId}.csv"`,
                या `aml-screening-history-{sessionId}-{month}.csv` जब `month`
                पास किया जाता है।
              schema:
                type: string
                example: >-
                  attachment;
                  filename="aml-screening-history-11111111-2222-3333-4444-555555555555.csv"
          content:
            text/csv:
              schema:
                type: string
                format: binary
              example: "screened_at,outcome,provider,aml_status,aml_score,total_hits,datasets_captured_at,datasets_sanctions_last_updated_at,datasets_pep_last_updated_at,datasets_warnings_last_updated_at,datasets_adverse_media_last_updated_at,datasets_catalog_version,run_id,entities_screened,new_hits\r\n2026-09-14T04:12:33.481207+00:00,NO_CHANGE,aml_data_source,Approved,0.0,0,2026-09-14T03:58:02.114820+00:00,2026-09-13T21:10:00+00:00,2026-09-13T08:00:00+00:00,2026-09-12T18:45:00+00:00,,2026-09-13,aaaaaaaa-1111-2222-3333-444444444444,1,0\r\n2026-09-13T04:11:58.020914+00:00,FAILED,aml_data_source,Approved,0.0,0,,,,,,,bbbbbbbb-1111-2222-3333-444444444444,0,\r\n"
        '400':
          description: '`month` एक `YYYY-MM` कैलेंडर माह नहीं है।'
          content:
            application/json:
              schema:
                type: object
                properties:
                  month:
                    type: array
                    items:
                      type: string
              examples:
                Malformed month:
                  summary: month=2026-13
                  value:
                    month:
                      - Not a calendar month. Use YYYY-MM.
        '401':
          description: >-
            स्कोप्ड API कुंजी की समय-सीमा समाप्त हो गई है। यह एकमात्र मामला है
            जो `401` लौटाता है: अनुपलब्ध, अमान्य या निरस्त कुंजी `403` लौटाती
            है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Expired key:
                  summary: कुंजी की समाप्ति तिथि बीत चुकी है
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            प्रमाणीकरण या प्राधिकरण विफलता। अनुपस्थित कुंजी `403` लौटाती है, और
            किसी अन्य एप्लिकेशन की कुंजी, इस endpoint के लिए आवश्यक अनुमति के
            बिना वाली स्कोप्ड कुंजी, तथा कुंजी की IP अनुमति सूची (allowlist) के
            बाहर से किया गया अनुरोध भी यही लौटाता है; गलत, निरस्त या समय-सीमा
            समाप्त कुंजी `401` लौटाती है। उन्हें `detail` द्वारा पहचानें।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Missing or invalid credentials:
                  summary: कोई x-api-key हेडर नहीं है, या कुंजी सत्यापन में विफल रही
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Other application:
                  summary: एक मान्य कुंजी जो सत्र से भिन्न एप्लिकेशन से संबंधित है
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without decisions read:
                  summary: 'स्कोप्ड कुंजी में decisions: read की कमी है'
                  value:
                    detail: This API key has no read access to decisions.
                Scoped key without media read:
                  summary: >-
                    स्कोप्ड कुंजी में media: read की कमी है (रिस्पॉन्स एक फ़ाइल
                    है)
                  value:
                    detail: This API key has no read access to media.
                IP not allowed:
                  summary: कुंजी की IP अनुमति सूची से बाहर का अनुरोध
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            सत्र मौजूद नहीं है, हटा दिया गया था या स्कोप्ड कुंजी की सीमाओं से
            बाहर है, या इसमें कोई AML जांच नहीं है (दिए गए `node_id` के लिए)।
            सत्र लुकअप क्रेडेंशियल जांच से पहले चलता है, इसलिए एक अज्ञात
            `sessionId` वैध कुंजी के बिना भी `404` लौटाता है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Unknown session:
                  summary: इस ID वाला कोई सत्र मौजूद नहीं है, या इसे हटा दिया गया था
                  value:
                    detail: Not found.
                Outside key limits:
                  summary: >-
                    सत्र स्कोप्ड कुंजी की सीमाओं से बाहर है (कुछ क्षण पहले हटाए
                    गए सत्र के लिए भी लौटाया जाता है)
                  value:
                    detail: Session not found.
                No AML check:
                  summary: सत्र में कभी AML चरण नहीं चला
                  value:
                    detail: The session does not have an AML check.
                No AML check for node:
                  summary: node_id सत्र की AML जांच से मेल नहीं खाता है
                  value:
                    detail: >-
                      The session does not have an AML check for node
                      'feature_aml_2'.
        '429':
          description: >-
            रेट लिमिट पार हो गई: प्रति API कुंजी प्रति मिनट 600 GET अनुरोध। पुनः
            प्रयास करने से पहले `Retry-After` सेकंड तक प्रतीक्षा करें;
            `X-RateLimit-*` हेडर बजट दिखाते हैं।
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Rate limited:
                  summary: वर्तमान मिनट का बजट समाप्त हो गया
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: पुनः प्रयास करने से पहले प्रतीक्षा करने के सेकंड।
              schema:
                type: integer
                minimum: 1
                example: 30
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/aml-screening-history/export/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -o aml-screening-history.csv
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            content = client.sessions.export_aml_screening_history(
                "11111111-2222-3333-4444-555555555555",
            )
            with open("download.csv", "wb") as file:
                file.write(content)
        - lang: javascript
          label: Node.js
          source: >-
            import { writeFile } from "node:fs/promises";

            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const content = await
            didit.sessions.exportAmlScreeningHistory("11111111-2222-3333-4444-555555555555");

            await writeFile("download.csv", Buffer.from(await
            content.arrayBuffer()));
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresp, err := client.Sessions.ExportAMLScreeningHistory(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsExportAMLScreeningHistoryParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer resp.Body.Close()\nfile, err := os.Create(\"download.csv\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer file.Close()\nif _, err := io.Copy(file, resp.Body); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: >-
            import java.nio.file.Path;

            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            client.sessions().exportAmlScreeningHistory("11111111-2222-3333-4444-555555555555")
                    .writeTo(Path.of("download.csv"));
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $content =
            $didit->sessions->exportAmlScreeningHistory('11111111-2222-3333-4444-555555555555');

            $content->saveTo('download.csv');
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            content =
            didit.sessions.export_aml_screening_history("11111111-2222-3333-4444-555555555555")

            File.binwrite("download.csv", content)
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var content = await
            client.Sessions.ExportAmlScreeningHistoryAsync("11111111-2222-3333-4444-555555555555");

            await content.SaveToAsync("download.csv");
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys
        से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप
        किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या
        स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक
        सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी
        समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी,
        कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP
        सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी
        के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को
        छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write
        के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं।
        देखें https://docs.didit.me/console/api-keys।

````

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