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

# Benutzer auflisten API: Vendor-User-Entitäten

> Alle Vendor-User-Entitäten Ihrer Didit-Anwendung abrufen, filterbar nach Status, Suche und Datum. Benutzer-Lebenszyklus per API verwalten.



Prompt zum Auflisten von Benutzern
        Prompt in die Zwischenablage kopieren



      
      

\<pre>

\`Goal: Page through Didit User entities for an application and consume them in your backend.

Endpoint: GET https://verification.didit.me/v3/users/
Auth header: x-api-key: <DIDIT_API_KEY>

Query params (all optional):
\- status: "ACTIVE" | "FLAGGED" | "BLOCKED" (VendorUserStatusChoices, NOT the session enum).
\- search: free-text over vendor_data, display_name, full_name, approved_emails, approved_phones.
\- country: ISO 3166-1 alpha-3 (e.g. "USA", "ESP") — filters by issuing country of approved documents.
\- limit: integer, 1–200, default 50.
\- offset: integer, 0+, default 0. Prefer following the "next" URL from the previous page.

curl:
curl -X GET 'https://verification.didit.me/v3/users/?limit=50&status=ACTIVE' \
-H 'x-api-key: YOUR_API_KEY'

Response 200 (envelope):
\{
"count": <int — exact up to 100, capped above; pagination still works via "next">,
"next": <URL of next page or null>,
"previous": <URL of previous page or null>,
"results": [ UserListItem, ... ]
}

UserListItem key fields: didit_internal_id (UUID), vendor_data (string, may be null), display_name, full_name, effective_name, status, portrait_image_url, session_count, approved_count, declined_count, in_review_count, issuing_states, approved_emails, approved_phones, features (map of feature -> "Approved" | "Declined" | "In Review" | ...), features_list, last_session_at, first_session_at, tags, created_at. See /reference/data-models for the full shape.

Notes:
\- Ordered by last_session_at desc (most recently active first).
\- Deleted users are not returned.
\- vendor_data is a free-form client-supplied string, NOT a UUID. It may be null when the originating session did not provide one.

Pagination loop:
url = 'https://verification.didit.me/v3/users/?limit=200&status=ACTIVE'
while url:
r = requests.get(url, headers={'x-api-key': API_KEY})
r.raise_for_status()
page = r.json()
for user in page['results']:
    ...handle user...
url = page['next']

Failure modes (all return {"detail": "..."} unless noted):
\- 401 — missing or revoked x-api-key.
\- 403 — the API key is revoked or is not valid for this application.
\- 429 — rate-limited. Honour Retry-After header.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Einfügen in

## ÜberblickGibt eine paginierte Liste der [Benutzer-Entitäten](https://docs.didit.me/de/entities/users/overview.md) für die authentifizierte Anwendung zurück. Verwenden Sie diesen Endpoint, um Benutzer mit Ihrem Data Warehouse zu synchronisieren, Benutzer zu finden, die eine Prüfung durch Analysten benötigen, oder nach Anzeigenamen zu suchen.## Wann verwenden- **Periodische Synchronisierung** Ihrer Benutzertabelle mit einem externen BI-System oder Data Warehouse.
- **Analystenwarteschlangen**: Filtern Sie nach `status=FLAGGED` oder veraltetem `last_activity_at`, um einen Posteingang für Prüfungen zu füllen.
- **Benutzer suchen** nach `display_name`, `full_name` oder `vendor_data`.## Filter und Paginierung| Query-Parameter | Beschreibung |
| - | - |
| `status` | Filtern nach `ACTIVE`, `FLAGGED` oder `BLOCKED`. |
| `search` | Teilzeichenkettenabgleich über `vendor_data`, `display_name`, `full_name`, E-Mail-Adressen und Telefonnummern. |
| `country_code` | Filtern nach `issuing_states` (ISO 3166-1 alpha-3). |
| `created_after`, `created_before` | Zeitraum der Erstellung (ISO 8601). |
| `last_activity_after`, `last_activity_before` | Zeitraum der letzten Aktivität. |
| `page_size` | 1 bis 200. Standardwert: 50. |
| `cursor` | Paginierungs-Cursor aus der vorherigen Antwort. |## Hinweise- Jedes Element der Antwort enthält `didit_internal_id`. `vendor_data` kann `null` sein, wenn die ursprüngliche Sitzung oder Transaktion keinen Wert übergeben hat.
- Dieser Endpoint paginiert über einen Cursor. Speichern Sie den `next`-Cursor zwischen den Aufrufen und beenden Sie die Abfrage, sobald `next` leer ist.
- Alle Felder einer Benutzerzeile finden Sie im [Datenmodell für Benutzer](https://docs.didit.me/de/entities/users/data-model.md).## BerechtigungenJeder aktive API-Schlüssel der Anwendung kann diesen Endpoint aufrufen. API-Schlüssel von Didit sind an die Anwendung gebunden, nicht an Rollen: Die [Rollen und Berechtigungen](https://docs.didit.me/de/console/roles-permissions.md) der Console (`list:users` und weitere) bestimmen, was eine *Person* in der Console tun darf, und werden für Datenverkehr der Management API nicht ausgewertet. Steuern Sie, wer diesen Endpoint aufrufen darf, indem Sie steuern, wer den API-Schlüssel der Anwendung lesen darf.## Verwandte Themen- [Überblick über Benutzer](https://docs.didit.me/de/entities/users/overview.md)
- [Benutzer abrufen](https://docs.didit.me/de/management-api/users/get.md)
- [Benutzeroperationen](https://docs.didit.me/de/entities/users/operations.md)


## OpenAPI

````yaml de/openapi-25.json GET /v3/users/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/users/:
    get:
      tags:
        - Users
      summary: Benutzer auflisten
      description: >-
        Liste der [Benutzer](/entities/users), die Didit aus KYC-Sitzungen mit
        denselben `vendor_data` (Freitext-String, KEINE UUID) zusammenstellt,
        zuzüglich über die API erstellter Benutzer. Paginierte Ausgabe, sortiert
        nach `last_session_at` absteigend. Dieser Endpoint unterstützt keine
        Filter- oder Suchparameter – rufen Sie Seiten ab und filtern Sie
        clientseitig.
      operationId: list_users
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          description: >-
            Seitengröße. Standardmäßig 50, wenn nicht angegeben. Es gibt kein
            festes Maximum, aber halten Sie die Seiten klein, um die Latenz
            gering zu halten.
        - name: offset
          in: query
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Nullbasierter Offset des ersten zurückzugebenden Datensatzes. Folgen
            Sie vorzugsweise der `next`-URL der vorherigen Seite, statt diesen
            Wert manuell zu berechnen.
      responses:
        '200':
          description: >-
            Paginierte Liste von Benutzern mit Verifizierungsstatus,
            Sitzungsanzahl und Aufschlüsselung der Funktionen.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: >-
                      Anzahl der übereinstimmenden Zeilen – exakt bis 100,
                      darüber hinaus aus Performancegründen auf 100 begrenzt.
                      Verwenden Sie diesen Wert nicht, um die letzte Seite zu
                      erkennen; verlassen Sie sich stattdessen darauf, dass
                      `next` `null` ist.
                  next:
                    type: string
                    nullable: true
                    description: >-
                      Absolute URL der nächsten Seite oder `null` auf der
                      letzten Seite.
                  previous:
                    type: string
                    nullable: true
                    description: >-
                      Absolute URL der vorherigen Seite oder `null` auf der
                      ersten Seite.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserListItem'
              examples:
                Example:
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - didit_internal_id: f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418
                        vendor_data: user-abc-123
                        display_name: null
                        full_name: John Michael Doe
                        date_of_birth: '1990-05-15'
                        effective_name: John Michael Doe
                        status: ACTIVE
                        portrait_image_url: https://<media-host>/...
                        session_count: 3
                        approved_count: 2
                        declined_count: 0
                        in_review_count: 1
                        issuing_states:
                          - USA
                        approved_emails:
                          - john@example.com
                        approved_phones:
                          - '+14155551234'
                        features:
                          ID_VERIFICATION: Approved
                          LIVENESS: Approved
                          FACE_MATCH: Approved
                          AML: Approved
                        features_list:
                          - feature: ID_VERIFICATION
                            status: Approved
                          - feature: LIVENESS
                            status: Approved
                          - feature: FACE_MATCH
                            status: Approved
                          - feature: AML
                            status: Approved
                        last_session_at: '2025-06-15T10:30:00Z'
                        last_activity_at: '2025-06-15T10:30:00Z'
                        first_session_at: '2025-06-01T08:00:00Z'
                        tags:
                          - uuid: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
                            name: VIP
                            color: '#2567FF'
                        created_at: '2025-06-01T08:00:00Z'
                      - didit_internal_id: 6ed99d53-e8f5-4cf8-9ac1-4a506cb40f6b
                        vendor_data: null
                        display_name: Jane S.
                        full_name: Jane Elizabeth Smith
                        date_of_birth: '1985-11-22'
                        effective_name: Jane S.
                        status: FLAGGED
                        portrait_image_url: null
                        session_count: 1
                        approved_count: 0
                        declined_count: 0
                        in_review_count: 1
                        issuing_states: []
                        approved_emails: []
                        approved_phones: []
                        features:
                          ID_VERIFICATION: In Review
                        features_list:
                          - feature: ID_VERIFICATION
                            status: In Review
                        last_session_at: '2025-06-20T14:00:00Z'
                        last_activity_at: '2025-06-20T14:05:00Z'
                        first_session_at: '2025-06-20T14:00:00Z'
                        tags: []
                        created_at: '2025-06-20T14:00:00Z'
        '401':
          description: >-
            Keine Anmeldedaten angegeben. Anfragen an `/v3/users/*`-Pfade ohne
            einen `x-api-key`-Header (oder `Authorization: Bearer`-Token) werden
            von der Authentifizierungs-Middleware abgelehnt, bevor sie die API
            erreichen.
          content:
            application/json:
              examples:
                Missing credentials:
                  value:
                    detail: >-
                      You must be authenticated with a valid access token to
                      access this endpoint.
        '403':
          description: >-
            Der Schlüssel kann keine Benutzer für diese Anwendung auflisten. Ein
            fehlender Schlüssel gibt `403` zurück; ein falscher, widerrufener
            oder abgelaufener Schlüssel gibt `401` zurück.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: >-
            Rate-Limit überschritten; drosseln Sie die Anfragen und wiederholen
            Sie den Versuch nach dem in `Retry-After` angegebenen Intervall.
          content:
            application/json:
              examples:
                Rate limited:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X GET 'https://verification.didit.me/v3/users/?limit=50' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.users.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

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

            for await (const item of didit.users.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Users.ListAutoPaging(ctx, didit.UsersListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

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

            for (var item : client.users().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

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

            foreach ($didit->users->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.users.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

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

            await foreach (var item in await client.Users.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    UserListItem:
      type: object
      description: Ein verifizierter Benutzer.
      properties:
        didit_internal_id:
          type: string
          format: uuid
          description: Didits stabile interne UUID für diesen Benutzer.
        vendor_data:
          type: string
          nullable: true
          description: >-
            Ihre eindeutige Kennung für diesen Benutzer (beim Erstellen von
            Sitzungen übergeben). Dies kann null sein, wenn keine Vendor-Kennung
            angegeben wurde.
        display_name:
          type: string
          nullable: true
          description: Von Ihnen festgelegter benutzerdefinierter Anzeigename
        full_name:
          type: string
          nullable: true
          description: Aus verifizierten Dokumenten extrahierter vollständiger Name
        date_of_birth:
          type: string
          format: date
          nullable: true
        effective_name:
          type: string
          nullable: true
          description: >-
            Bester verfügbarer Name: display_name, falls gesetzt, andernfalls
            full_name
        status:
          type: string
          enum:
            - ACTIVE
            - FLAGGED
            - BLOCKED
          description: >-
            Lebenszyklusstatus des Benutzerdatensatzes (KEIN Sitzungsstatus).
            `ACTIVE` ist der Standard, `FLAGGED` markiert den Benutzer für
            manuelle Prüfung, `BLOCKED` verhindert neue Sitzungen für dieses
            `vendor_data`.
        portrait_image_url:
          type: string
          nullable: true
          description: >-
            Vorsignierte URL des Porträtfotos des Benutzers (läuft nach wenigen
            Stunden ab)
        session_count:
          type: integer
          description: Gesamtzahl der Verifizierungssitzungen für diesen Benutzer
        approved_count:
          type: integer
          description: Anzahl der genehmigten Sitzungen
        declined_count:
          type: integer
          description: Anzahl der abgelehnten Sitzungen
        in_review_count:
          type: integer
          description: Anzahl der Sitzungen in Prüfung
        issuing_states:
          type: array
          items:
            type: string
          description: >-
            ISO 3166-1-Alpha-3-Codes der Ausstellungsländer, die auf den
            genehmigten Ausweisdokumenten dieses Benutzers gefunden wurden, z.
            B. `["USA", "ESP"]`. Leeres Array, wenn keine vorhanden sind.
        approved_emails:
          type: array
          items:
            type: string
          description: >-
            Verifizierte E-Mail-Adressen, die aus den genehmigten Sitzungen
            dieses Benutzers erfasst wurden, z. B. `["john@example.com"]`.
        approved_phones:
          type: array
          items:
            type: string
          description: >-
            Verifizierte Telefonnummern, die aus den genehmigten Sitzungen
            dieses Benutzers erfasst wurden, z. B. `["+14155551234"]`.
        features:
          type: object
          description: >-
            Aggregierter Status pro Funktion über alle Sitzungen dieses
            Benutzers hinweg. Mögliche Schlüssel: `ID_VERIFICATION`, `NFC`,
            `LIVENESS`, `FACE_MATCH`, `POA`, `QUESTIONNAIRE`,
            `EMAIL_VERIFICATION`, `PHONE`, `AML`, `IP_ANALYSIS`,
            `AGE_ESTIMATION`, `DATABASE_VALIDATION`. Mögliche Werte: `Approved`,
            `Declined`, `In Review`, `Not Finished`, `Resub Requested`.
        features_list:
          type: array
          items:
            type: object
            properties:
              feature:
                type: string
              status:
                type: string
          description: >-
            Dieselben Daten wie `features`, als geordnetes Array von `{feature,
            status}`-Objekten.
        last_session_at:
          type: string
          format: date-time
          nullable: true
          description: Zeitstempel der letzten Sitzung
        first_session_at:
          type: string
          format: date-time
          nullable: true
          description: Zeitstempel der ersten Sitzung
        last_activity_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Zeitstempel der letzten Aktivität bei diesem Benutzer (Sitzung,
            Transaktion, Statusänderung, Datenbearbeitung usw.).
        tags:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              color:
                type: string
          description: Diesem Benutzer zugewiesene Tags
        created_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.

````

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