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

# लिस्ट बनाएँ API: अनुमति सूची और कस्टम लिस्ट

> Didit में POST /v3/lists/ से नई अनुमति सूची या कस्टम लिस्ट बनाएँ। सिस्टम ब्लॉकलिस्ट स्वतः बनती हैं। प्रति कॉल भुगतान, कोई अनुबंध नहीं।



सूची बनाने का API प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\`Create a new allowlist or custom list in my Didit application through the Management API.

Endpoint:
POST https://verification.didit.me/v3/lists/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs workflows: write.

Goal:
\- Create an allowlist (matching items are treated as trusted, for example to skip a duplicated-face or duplicated-IP action; it never overrides a blocklist match) or a custom list (for workflow conditions, transaction rules, or manual review).
\- System blocklists are provisioned by Didit, one per entry type. You cannot create a blocklist.

Request body (application/json):
\{
"name": "Trusted office IPs",          // required, at most 255 characters, unique among the application's lists
"description": "Office egress ranges", // optional
"list_type": "allowlist",              // required: "allowlist" or "custom"
"entry_type": "ip_address"             // required: face | document | phone | email | ip_address | device_fingerprint | wallet_address | bank_account | country | user | business | key
}

entry_type is fixed once the list exists: it decides how entry values are validated and matched.

Example call:
curl -X POST "https://verification.didit.me/v3/lists/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Trusted office IPs", "list_type": "allowlist", "entry_type": "ip_address"}'

Example response (201):
\{
"uuid": "66666666-7777-8888-9999-000000000000",
"name": "Trusted office IPs",
"description": "",
"list_type": "allowlist",
"entry_type": "ip_address",
"is_system": false,
"entry_count": 0,
"last_entry_added_at": null,
"created_at": "2026-10-12T09:15:44.031876Z",
"updated_at": "2026-10-12T09:15:44.031876Z"
}

Persist the returned uuid: use it as list_uuid in the entry calls, and as the value of a workflow or transaction rule condition with value_type "list".

Failure modes:
\- 400: list_type is "blocklist", a required field is missing, name is longer than 255 characters, entry_type is unknown, or another list of the application already has this name ({ "name": ["A list with this name already exists for this application."] }).
\- 401: the API key has expired.
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401) ({ "detail": "You do not have permission to perform this action." }), or a scoped key without workflows: write.
\- 429: rate limited (see /integration/rate-limiting); back off and retry.

Side effects:
\- Creates a new list in the application the API key belongs to.

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

\</pre>



      
      

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

अपने एप्लिकेशन के लिए एक सूची बनाएँ। केवल `allowlist` और `custom` सूचियाँ बनाई जा सकती हैं: Didit हर प्रविष्टि प्रकार के लिए एक सिस्टम ब्लॉकलिस्ट प्रदान करता है, और आप [एंट्री बनाएँ](https://docs.didit.me/hi/management-api/lists/create-entry.md) के माध्यम से उसमें जोड़ते हैं।`entry_type` को सावधानी से चुनें: इसे बाद में बदला नहीं जा सकता, और यही तय करता है कि जोड़े गए हर मान की जाँच कैसे होगी। हर सूची प्रकार क्या करता है, यह जानने के लिए [सूचियाँ](https://docs.didit.me/hi/management-api/lists/overview.md) देखें।


## OpenAPI

````yaml hi/openapi-25.json POST /v3/lists/
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/lists/:
    post:
      tags:
        - Lists
      summary: एक सूची बनाएँ
      description: >-
        उस एप्लिकेशन में एक अनुमति सूची या एक कस्टम सूची बनाता है जिससे API
        कुंजी संबंधित है। ब्लॉकलिस्ट नहीं बनाई जा सकती हैं: Didit प्रति
        प्रविष्टि प्रकार एक सिस्टम ब्लॉकलिस्ट प्रदान करता है, और आप [Create a
        list entry](https://docs.didit.me/hi/management-api/lists/create-entry)
        के साथ इसमें जोड़ते हैं। `entry_type` निर्माण के बाद नहीं बदल सकता है और
        यह तय करता है कि प्रविष्टि मानों को कैसे मान्य और मिलान किया जाए। अनुमति
        सूची की प्रविष्टियां मेल खाने वाले आइटमों को विश्वसनीय के रूप में
        चिह्नित करती हैं (उदाहरण के लिए, एक फ़ेस अनुमति सूची डुप्लिकेट-फ़ेस
        कार्रवाई को छोड़ देती है) और कभी भी ब्लॉकलिस्ट मिलान को ओवरराइड नहीं
        करती हैं; `value_type: "list"` के साथ किसी वर्कफ़्लो या लेन-देन नियम
        शर्त से किसी भी सूची को संदर्भित करें। स्कोप्ड API कुंजी के लिए
        `workflows: write` की आवश्यकता होती है।
      operationId: create_list
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - list_type
                - entry_type
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: >-
                    सूची का नाम। यह एप्लिकेशन की हर दूसरी सूची के नाम से भिन्न
                    होना चाहिए, जिसमें सिस्टम सूचियाँ भी शामिल हैं।
                description:
                  type: string
                  default: ''
                  description: वैकल्पिक फ़्री-टेक्स्ट विवरण।
                list_type:
                  type: string
                  enum:
                    - allowlist
                    - custom
                  description: >-
                    `allowlist` या `custom`। `blocklist` को `400` के साथ
                    अस्वीकार कर दिया जाता है।
                entry_type:
                  type: string
                  enum:
                    - face
                    - document
                    - phone
                    - email
                    - ip_address
                    - device_fingerprint
                    - wallet_address
                    - bank_account
                    - country
                    - user
                    - business
                    - key
                  description: >-
                    सूची में क्या समाहित है: `face`, `document` (दस्तावेज़
                    संख्या), `phone`, `email`, `ip_address` (IP पता या CIDR
                    रेंज), `device_fingerprint`, `wallet_address`,
                    `bank_account`, `country` (ISO 3166-1 alpha-3), `user` या
                    `business` (आपका `vendor_data`), या `key` (कोई भी स्ट्रिंग)।
                    यह तय करता है कि प्रविष्टि मानों को कैसे मान्य और मिलान किया
                    जाता है। बाद में बदला नहीं जा सकता।
            examples:
              IP allowlist:
                value:
                  name: Trusted office IPs
                  description: Office egress ranges
                  list_type: allowlist
                  entry_type: ip_address
              Custom country list:
                value:
                  name: Enhanced due diligence countries
                  list_type: custom
                  entry_type: country
      responses:
        '201':
          description: सूची बनाई गई।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceList'
              examples:
                New allowlist:
                  value:
                    uuid: 22222222-3333-4444-5555-666666666666
                    name: Trusted office IPs
                    description: Office egress ranges
                    list_type: allowlist
                    entry_type: ip_address
                    is_system: false
                    entry_count: 0
                    last_entry_added_at: null
                    created_at: '2026-10-12T09:15:44.031876Z'
                    updated_at: '2026-10-12T09:15:44.031876Z'
        '400':
          description: बॉडी अमान्य है।
          content:
            application/json:
              examples:
                Blocklist refused:
                  value:
                    list_type:
                      - >-
                        Cannot create additional blocklist lists. System
                        blocklists are auto-created for each application.
                Duplicate name:
                  value:
                    name:
                      - >-
                        A list with this name already exists for this
                        application.
                Missing fields:
                  value:
                    name:
                      - This field is required.
                    list_type:
                      - This field is required.
                    entry_type:
                      - This field is required.
                Unknown entry type:
                  value:
                    entry_type:
                      - '"iban" is not a valid choice.'
                Name too long:
                  value:
                    name:
                      - Ensure this field has no more than 255 characters.
        '401':
          description: >-
            स्कोप्ड API कुंजी की समय-सीमा समाप्त हो गई है। अन्य प्रमाणीकरण
            विफलताओं पर `403` मिलता है।
          content:
            application/json:
              examples:
                Expired API key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            `x-api-key` हेडर अनुपस्थित है (गलत, निरस्त या समय-सीमा समाप्त कुंजी
            को `401` मिलता है), या किसी स्कोप्ड API कुंजी में `workflows: write`
            की कमी है या इसका उपयोग इसकी अनुमति सूची से बाहर के किसी IP पते से
            किया गया है।
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without workflows access:
                  value:
                    detail: This API key has no write access to workflows.
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST 'https://verification.didit.me/v3/lists/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "name": "Trusted office IPs",
                "description": "Office egress ranges",
                "list_type": "allowlist",
                "entry_type": "ip_address"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.lists.create(
                name="Trusted office IPs",
                description="Office egress ranges",
                list_type="allowlist",
                entry_type="ip_address",
            )
            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.lists.create({
              name: "Trusted office IPs",
              description: "Office egress ranges",
              list_type: "allowlist",
              entry_type: "ip_address",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Lists.Create(ctx, didit.ListsCreateParams{\n\tName:        \"Trusted office IPs\",\n\tDescription: didit.String(\"Office egress ranges\"),\n\tListType:    \"allowlist\",\n\tEntryType:   \"ip_address\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;
            import me.didit.types.ListsCreateParams;

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

            var result = client.lists().create(ListsCreateParams.builder()
                    .name("Trusted office IPs")
                    .description("Office egress ranges")
                    .listType(ListsCreateParams.ListType.of("allowlist"))
                    .entryType(ListsCreateParams.EntryType.of("ip_address"))
                    .build());
            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->lists->create([
                'name' => 'Trusted office IPs',
                'description' => 'Office egress ranges',
                'list_type' => 'allowlist',
                'entry_type' => 'ip_address',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.lists.create(
              name: "Trusted office IPs",
              description: "Office egress ranges",
              list_type: "allowlist",
              entry_type: "ip_address"
            )
            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.Lists.CreateAsync(new ListsCreateParams
            {
                Name = "Trusted office IPs",
                Description = "Office egress ranges",
                ListType = "allowlist",
                EntryType = "ip_address",
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    ComplianceList:
      type: object
      description: एक एप्लिकेशन की ब्लॉकलिस्ट, allowlist या कस्टम सूची।
      required:
        - uuid
        - name
        - description
        - list_type
        - entry_type
        - is_system
        - entry_count
        - last_entry_added_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            सूची पहचानकर्ता। इसे सूची और प्रविष्टि endpoint में `list_uuid` के
            रूप में, और `value_type: "list"` के साथ वर्कफ़्लो या लेन-देन नियम
            शर्त के मान के रूप में उपयोग करें।
        name:
          type: string
          maxLength: 255
          description: सूची का नाम, एप्लिकेशन की सूचियों के बीच अद्वितीय।
        description:
          type: string
          description: मुक्त-पाठ विवरण। सेट न होने पर खाली स्ट्रिंग।
        list_type:
          type: string
          enum:
            - blocklist
            - allowlist
            - custom
          description: >-
            `blocklist`: एक मिलान सत्र या लेन-देन को अस्वीकार कर देता है (केवल
            सिस्टम सूचियां, प्रति प्रविष्टि प्रकार एक)। `allowlist`: मिलान करने
            वाले आइटम विश्वसनीय होते हैं, उदाहरण के लिए एक फ़ेस अनुमति सूची
            डुप्लिकेट-फ़ेस कार्रवाई को छोड़ देती है; कभी भी ब्लॉकलिस्ट मिलान को
            ओवरराइड नहीं करती। `custom`: वर्कफ़्लो और लेन-देन नियम शर्तों में
            उपयोग किया जाता है (`value_type: "list"`)।
        entry_type:
          type: string
          enum:
            - face
            - document
            - phone
            - email
            - ip_address
            - device_fingerprint
            - wallet_address
            - bank_account
            - country
            - user
            - business
            - key
          description: >-
            सूची में क्या समाहित है: `face`, `document` (दस्तावेज़ संख्या),
            `phone`, `email`, `ip_address` (IP पता या CIDR रेंज),
            `device_fingerprint`, `wallet_address`, `bank_account`, `country`
            (ISO 3166-1 alpha-3), `user` या `business` (आपका `vendor_data`), या
            `key` (कोई भी स्ट्रिंग)। यह तय करता है कि प्रविष्टि मानों को कैसे
            मान्य और मिलान किया जाता है।
        is_system:
          type: boolean
          description: >-
            Didit द्वारा प्रदान की जाने वाली सूचियों के लिए `true`: प्रत्येक
            प्रविष्टि प्रकार (`face`, `document`, `phone`, `email`,
            `ip_address`, `device_fingerprint`, `wallet_address`,
            `bank_account`, `user`, `business`) के लिए एक ब्लॉकलिस्ट, **High
            Risk Countries** कस्टम सूची, और सिस्टम अनुमत सूचियाँ। सिस्टम सूचियों
            का नाम बदला, संपादित या हटाया नहीं जा सकता; आप उनकी प्रविष्टियाँ
            जोड़ और हटा सकते हैं।
        entry_count:
          type: integer
          minimum: 0
          description: वर्तमान में सूची में प्रविष्टियों की संख्या।
        last_entry_added_at:
          type: string
          format: date-time
          nullable: true
          description: नवीनतम वर्तमान प्रविष्टि कब जोड़ी गई थी। खाली सूची के लिए `null`।
        created_at:
          type: string
          format: date-time
          description: सूची कब बनाई गई थी।
        updated_at:
          type: string
          format: date-time
          description: सूची अंतिम बार कब अपडेट की गई थी।
  responses:
    RateLimitedWrite:
      description: >-
        प्रति API कुंजी प्रति मिनट 300 अनुरोधों की साझा लिखने की सीमा पार हो गई।
        पुनः प्रयास करने से पहले `Retry-After` का पालन करें।
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
            properties:
              detail:
                type: string
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
  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.