Developer API

    Warum Namen zwischen Systemen kopieren, wenn ein API-Aufruf alles erledigt?

    Betten Sie Firmenverifizierung, die Abbildung der Eigentümerstruktur, PEP-Checks, Adverse Media (belastende Medienberichte) und Sanktionssignale direkt in Ihre bestehenden Workflows ein.

    POST/api/v1/searchbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{
        "entity_name": "Acme Trading LLC",
        "entity_type": "company",
        "country": "AE",
        "search_type": "sanctions_check"
      }'
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing",
    #   "estimated_time_seconds": 15 }

    The request

    One POST call, then your poll loop.

    Entity name, type, country, screening type. The call returns 202 with a search_id and an ETA, and the agent works in the background — you poll for the result rather than hold the connection open.

    • entity_nameRequired, 1-500 characters. Alias-aware matching
    • entity_type"person", "company" or "any" (default "any")
    • countryOptional context field; does not filter Quick Check matching
    • search_type"sanctions_check", "adverse_media" or "full_search"

    The response

    Structured JSON. Findings, not a score.

    Core-jurisdiction fields and per-source arrays, plus criminal-watchlist and PEP/RCA findings. Review the available markdown, identifiers and source references; the response does not provide a numeric risk score.

    GET/api/v1/search/{search_id}200 OK
    {
      "id": "SEARCH_ID",
      "entity_name": "Acme Trading LLC",
      "entity_type": "company",
      "status": "completed",
      "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings\n\n**Status:** *Sanctioned*\n\n**Details:**\n- **Matched entity:** ACME TRADING LLC\n- **Authority:** US Treasury OFAC\n...",
      "eu_sanctions": "## EU Sanctions Findings\n\n**Status:** *No relevant listing found*\n...",
      "sanctions_sources": [
        { "source_id": "ofac_sanctions", "title": "OFAC Sanctions",
          "authority": "US Treasury OFAC", "hit_count": 1 },
        { "source_id": "eu_sanctions", "title": "EU Sanctions",
          "authority": "", "hit_count": 0 }
      ],
      "criminal_watchlists": null,
      "pep": null,
      "news_summary": null,
      "final_report": null,
      "created_at": "2026-09-04T09:20:03.771000+00:00",
      "completed_at": "2026-09-04T09:20:19.088000+00:00"
    }
    No relevant listing found / nullSanctioned / potential matchPer-source hit_countStatus and search_type
    • "ofac_sanctions"One markdown field per jurisdiction; read the *Status:* line
    • "sanctions_sources"source_id, title, authority, details, hit_count per source
    • "criminal_watchlists"Markdown when matched, null when nothing matched
    • "pep"Markdown when matched, null when nothing matched
    • "news_summary"Adverse-media report on adverse_media and full_search
    • "status"completed when done; error_* on failure

    API reference

    Three calls cover a screening integration: queue it, poll it, or hand over a file.

    POST/api/v1/searchQueue a screening run. Returns immediately with a search_id; the work happens in the background.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "entity_type": "company",
           "country": "AE", "search_type": "sanctions_check"}'
    Response202 Accepted
    { "search_id": "SEARCH_ID", "status": "processing",
      "message": "Search queued successfully. Poll the GET endpoint for results.",
      "estimated_time_seconds": 15 }
    GET/api/v1/search/{search_id}Poll for the result. Terminal status is completed; failures land in an error_* status.200 OK
    Requestbash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    Response200 OK
    { "id": "SEARCH_ID", "status": "completed", "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings ... *Sanctioned* ...",
      "eu_sanctions": "... *No relevant listing found* ...",
      "sanctions_sources": [{ "source_id": "ofac_sanctions", "hit_count": 1 }],
      "criminal_watchlists": null, "pep": null }
    POST/api/v1/batchUpload a CSV or XLSX with a name column — up to 100 rows and 2 MB. Poll the job, then export the CSV.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/batch \
      -H 'X-API-Key: YOUR_API_KEY' \
      -F 'file=@portfolio.csv'
    Response202 Accepted
    { "job_id": "JOB_ID", "total_rows": 100, "credits_charged": 100,
      "search_type": "sanctions_check", "status": "pending",
      "message": "Batch job created successfully. Poll the GET endpoint for status." }

    Integration patterns

    The API sits between data entry and decision — wherever you need a risk signal.

    • Customer onboarding

      1. Customer signup
      2. POST/api/v1/search
      3. Poll until completed
      4. Approve / hold
    • Payment processing

      1. Transaction init
      2. POST/api/v1/search
      3. Poll until completed
      4. Release / hold
    • CRM re-screen

      1. Record updated
      2. Your scheduler fires
      3. POST/api/v1/search
      4. Write result back

    Selbst entwickeln vs. ScreenVeritAI integrieren

    Selbst entwickeln vs. ScreenVeritAI integrieren
    AspektEigenentwicklungScreenVeritAI-API
    Zeit bis zur Produktion6–12 Monate, um Listen zu beschaffen, das Matching zu bauen und Sonderfälle abzudeckenTage bis zur Integration — produktionsreif ab dem ersten API-Aufruf
    SanktionslistenabdeckungManuelle Einbindung jedes Listenformats; laufende Pflege bei SchemaänderungenJede wichtige Quelle, kontinuierlich gepflegt und aktualisiert
    Matching-GenauigkeitEigenes Fuzzy-Matching erfordert NLP-Know-how und ständiges NachjustierenKI mit Fuzzy-Matching, Transliteration, Alias-Auflösung und phonetischen Algorithmen
    PEP und Adverse MediaGetrennte Anbieter, getrennte Integrationen, getrennte BudgetsPEP, Adverse Media und UBO-Daten in derselben API-Antwort
    Laufende WartungEigenes Team für Listen-Updates, Schemaänderungen und das Nachjustieren von FehlalarmenVollständig verwaltet — Updates, Verbesserungen und Infrastruktur übernehmen wir für Sie
    PrüfpfadEigene Infrastruktur für Logging, Nachweise und Aufbewahrung aufbauenRevisionssichere Nachweispakete mit Quellenangaben inklusive

    In vier Schritten zu eingebetteter Compliance

    1. API-Schlüssel erstellen

      Erstellen Sie im Dashboard einen Schlüssel mit eingegrenztem Berechtigungsumfang nach dem Least-Privilege-Prinzip: search:read, search:write, batch:read, batch:write.

    2. Endpoint integrieren

      Ein einziger POST-Aufruf in Ihrem Onboarding-, Zahlungs- oder CRM-Workflow — senden Sie Name, Typ und Land und erhalten eine Job-ID zurück.

    3. Ergebnisse verarbeiten

      Fragen Sie den Ergebnis-Endpoint per Polling ab und erhalten Sie strukturiertes JSON — Unternehmenskontext, Eigentümerstruktur, PEP, Adverse Media, Sanktionssignale und Risiko-Scores.

    4. Überwachen und benachrichtigen

      Richten Sie kontinuierliches Monitoring ein — die API benachrichtigt Sie, sobald Sanktionslisten aktualisiert werden oder neue Adverse Media auftauchen.

    In wenigen Minuten startklar

    Ein einziger API-Aufruf liefert ein vollständiges Screening-Ergebnis.

    Entität prüfenbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "country": "AE", "search_type": "sanctions_check"}'
    
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing", "estimated_time_seconds": 15 }
    Ergebnis abrufenbash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    
    # 200 OK
    # { "id": "SEARCH_ID", "status": "completed",
    #   "ofac_sanctions": "## OFAC Sanctions Findings ... *No relevant listing found* ...",
    #   "criminal_watchlists": null, "pep": null }

    API-Leistung

    • €0.39

      Quick Check pro Aufruf, keine Plattformgebühr

    • 202

      HTTP-Status bei angenommener Suche; das Ergebnis wird per Polling abgeholt

    • EU

      Gehostet in Finnland; ruhende Daten bleiben in der EU

    FAQ zur API-Integration

    Wie authentifiziere ich API-Anfragen?

    Authentifizieren Sie API-Anfragen mit einem geheimen Schlüssel im X-API-Key-Header. Schlüssel erstellen Sie in Ihrem Dashboard mit gezielt eingegrenzten Berechtigungen.

    Ist die API synchron oder asynchron?

    Asynchron. Sie senden eine Anfrage, erhalten eine Job-ID und rufen die Ergebnisse per Polling ab. Ihre Pipeline wird nie blockiert.

    Welches Antwortformat liefert die API?

    Strukturiertes JSON mit Feldern für zentrale Jurisdiktionen und Arrays pro Quelle sowie Fahndungslisten- und PEP/RCA-Befunden. Prüfen Sie verfügbaren Markdown, Identifikatoren und Quellenverweise. Die Antwort enthält keinen numerischen Risikoscore.

    Welche Rate-Limits gelten?

    Sie werden je Tarifstufe und pro API-Schlüssel vergeben. Die Antwort-Header enthalten das verbleibende Kontingent und den Reset-Zeitstempel.

    Kann ich Entitäten per API im Batch prüfen?

    Ja. Der Batch-Endpoint akzeptiert CSV- oder XLSX-Dateien mit bis zu 100 Zeilen pro Anfrage; die Ergebnisse rufen Sie pro Zeile oder als vollständigen Export ab.

    Wie richte ich laufendes Monitoring per API ein?

    Konfigurieren Sie das Monitoring nach dem ersten Screening. Sobald Listen aktualisiert werden oder neue Adverse Media auftauchen, markiert das Monitoring die Änderung und benachrichtigt Sie in der App.

    Welche Compliance-Daten enthält jedes Screening-Ergebnis?

    Sanktionstreffer über jede wichtige Quelle, PEP-Status samt Familienverbindungen, Adverse Media mit mehrsprachigen Quellenangaben, UBO-Daten, Risikoklasse und ein revisionssicheres Nachweispaket zum Prüfzeitpunkt.

    Wie lange dauert ein Screening?

    Eine Standard-Sanktionsprüfung: Sekunden. Eine Tiefenrecherche mit Adverse Media und Abbildung der Eigentümerstruktur: unter zwei Minuten.

    API-Terminologie

    REST-API
    Web-API auf Basis der Standard-HTTP-Methoden — kompatibel mit jeder Sprache und jedem Framework, das HTTP-Anfragen stellen kann.
    Asynchrone Verarbeitung
    Die API nimmt einen Auftrag sofort an und verarbeitet ihn im Hintergrund — Ergebnisse rufen Sie per Polling ab.
    API-Schlüssel
    Geheimes Token zur Authentifizierung von API-Anfragen, mit gezielten Berechtigungen nach dem Least-Privilege-Prinzip versehen.
    Rate-Limiting
    Begrenzt die Zahl der API-Anfragen pro Zeitfenster je nach Tarifstufe — verbleibendes Kontingent und Reset-Zeitstempel stehen in den Antwort-Headern.
    Strukturierte Antwort
    Maschinenlesbares JSON mit einheitlichen Feldnamen und Typen — ermöglicht automatisches Parsen und Entscheidungslogik.

    REST-API für AML-Screening

    Binden Sie Sanktions-, PEP-, Fahndungslisten-, Adverse-Media- und KYB/UBO-Screening direkt in Ihre Onboarding-, Monitoring- und Transaktionsabläufe ein. Die API ist live: Authentifizieren Sie sich mit einem API-Schlüssel und nutzen Sie dieselbe Screening-Engine wie das Portal.

    Die Endpoints sind allgemein verfügbar — mit API-Key-Authentifizierung und Rate-Limits je Tarifstufe. Erkunden Sie jeden Endpoint in der interaktiven OpenAPI-Dokumentation unter /api/v1/docs.

    Schnellstart

    1. 1. API-Schlüssel erstellen

      Erstellen Sie im Dashboard einen API-Schlüssel mit eingegrenztem Berechtigungsumfang oder generieren Sie ihn programmatisch mit Ihrem Konto-Bearer-Token für Server-zu-Server-Anfragen.

      POST/api/v1/keyscurl
      curl -X POST https://screenveritai.com/api/v1/keys \
        -H "Authorization: Bearer <SUPABASE_JWT>" \
        -H "Content-Type: application/json" \
        -d '{"name":"server-key","permissions":["search:read","search:write"]}'
    2. 2. Erste Suche ausführen

      Übergeben Sie eine Entität im X-API-Key-Header. Die API gibt eine Such-ID zurück, die Sie nach Abschluss der Verarbeitung abrufen.

      POST/api/v1/searchcurl
      curl -X POST https://screenveritai.com/api/v1/search \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -H "Content-Type: application/json" \
        -d '{"entity_name":"Acme Ltd","entity_type":"company","search_type":"full_search"}'
    3. 3. Batch übermitteln

      Senden Sie eine CSV-/XLSX-Datei, um viele Entitäten in einem Auftrag zu prüfen, und rufen Sie Zeilen oder Exporte ab, sobald der Batch abgeschlossen ist.

      POST/api/v1/batchcurl
      curl -X POST https://screenveritai.com/api/v1/batch \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -F "file=@entities.csv"

    Kern-Endpoints

    • POST/api/v1/search

      Erstellt eine Screening-Anfrage für eine Entität. Gibt eine Such-ID und den Verarbeitungsstatus zurück. Konto-, Abdeckungs- und Health-Endpoints sind ebenfalls unter /api/v1 verfügbar.

      Auth: X-API-Key (search:write)

    • POST/api/v1/batch

      Nimmt CSV-/XLSX-Dateien für hochvolumiges Screening entgegen; Zeilen oder Exporte rufen Sie ab, sobald die Aufträge abgeschlossen sind.

      Auth: X-API-Key (batch:write)

    • POST/api/v1/keys

      Erstellt und verwaltet API-Zugangsdaten mit eingegrenzten Berechtigungen, Rate-Limits je Tarifstufe und Nutzungsverfolgung.

      Auth: Bearer-Token (Konto)

    Crypto address checks. Source evidence at 0,39 €.

    Check an address against OFAC’s published digital-currency identifiers. Add native-USDC issuer-block status on Ethereum in the same request, at the same price.

    0,39 € per completed address check · prepaid PAYG only

    • POST/api/v1/crypto-address/checks
    • GET/api/v1/crypto-address/checks/{id}
    OFAC address match
    Exact address lookup under the requested OFAC currency label, such as ETH, XBT, TRX, USDT or USDC. Evidence includes the publication date, source URL, export hash and matching OFAC record.
    Ethereum USDC
    Set network to ethereum to check native-USDC issuer-block status at a finalized Ethereum mainnet block. The result includes the contract address, block number, block hash and contract response. Omit network for an OFAC-only check.
    Create a check
    POST requires X-API-Key with search:write, an Idempotency-Key of 16–128 ASCII letters, digits, underscores, dots, colons or hyphens, and address, currency and integer max_prepaid_cents fields. Set max_prepaid_cents to 39 to authorize the current price. A completed request returns HTTP 200 synchronously.
    Retrieve and retry
    GET requires search:read and returns your saved check without another charge. If a POST response is lost, reuse the same Idempotency-Key and payload. Keep that key while the outcome is uncertain; create a new key only for a deliberate new check.
    Billing
    Completed checks debit 0,39 € from your EUR prepaid balance. Minimum balance top-up: €5. Subscription allowances do not apply. Source failures are unpaid.

    A negative result means no published OFAC match or no native-USDC issuer block in the checked source. It does not establish wallet ownership or clear an address of all risk.

    This is an address-level source check. Transaction tracing, exposure scoring and continuous KYT monitoring are outside its scope. Crypto checks use this separate API; they are not available through name-screening batch uploads, portal history or PDF reports.

    Warum Teams die API nutzen

    • Eine einzige Integration für Sanktions-, PEP-, Fahndungslisten-, Adverse-Media- und KYB/UBO-Screening
    • API-Key-Authentifizierung über den X-API-Key-Header, mit berechtigungsbeschränkten Schlüsseln für Zugriff nach dem Least-Privilege-Prinzip
    • Rate-Limits je Tarifstufe mit Nutzungsprotokollierung für Governance und Kostenkontrolle
    • Such-, Batch-, Keys-, Konto-, Abdeckungs- und Health-Endpoints unter /api/v1
    • Interaktive OpenAPI-Dokumentation unter /api/v1/docs sowie ein maschinenlesbares OpenAPI-Schema
    • Strukturierte Ausgabe, geeignet für Prüfprotokolle, Fallakten und nachgelagerte Entscheidungen

    Integration playbooks

    API-FAQ

    Wie authentifiziere ich API-Anfragen?

    Screening-Anfragen an /api/v1/search und /api/v1/batch authentifizieren Sie über einen API-Schlüssel im X-API-Key-Header. Erstellen Sie Schlüssel im Dashboard oder programmatisch über /api/v1/keys, nachdem Sie sich mit Ihrem Konto-Bearer-Token authentifiziert haben.

    Ist die API allgemein verfügbar?

    Ja. API v1 ist live und allgemein verfügbar. Authentifizieren Sie sich mit einem API-Schlüssel, rufen Sie die Such-, Batch- und Key-Management-Endpoints auf und erkunden Sie alles in der interaktiven OpenAPI-Dokumentation unter /api/v1/docs.

    Kann ich die Berechtigungen eines API-Schlüssels eingrenzen?

    Ja. Schlüssel unterstützen Berechtigungen wie search:read, search:write, batch:read und batch:write, sodass Sie pro Integration Zugriff nach dem Least-Privilege-Prinzip durchsetzen.

    Welche Rate-Limits gelten?

    Rate-Limits werden je API-Stufe vergeben und pro API-Schlüssel durchgesetzt — die Stufe bestimmt den Anfrage-Durchsatz, nicht die Abrechnung. Die Antwort-Header enthalten das Limit, das verbleibende Kontingent und die Reset-Zeitstempel, sodass Sie sauber drosseln können.

    Wo kann ich die Endpoints schnell testen?

    Nutzen Sie die interaktive Dokumentation unter /api/v1/docs für Swagger-Tests und /api/v1/redoc für die Referenzdokumentation. Das OpenAPI-Schema wird unter /api/v1/openapi.json bereitgestellt.

    In wenigen Minuten startklar.

    Tarif wählen und noch heute mit dem Screening beginnen.