Udvikler-API

    Hvorfor kopiere navne mellem systemer, når ét API-kald klarer det hele?

    Indbyg virksomhedsverifikation, ejerskabskortlægning, PEP-tjek, negativ omtale og sanktionssignaler direkte i dine eksisterende arbejdsgange.

    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

    Byg selv vs. integrér ScreenVeritAI

    Byg selv vs. integrér ScreenVeritAI
    AspektByg selvScreenVeritAI API
    Tid til produktion6-12 måneder til at skaffe lister, bygge matchning og håndtere særtilfældeDage til at integrere — produktionsklar fra første API-kald
    Dækning af sanktionslisterManuel indlæsning af hvert listeformat; løbende skemavedligeholdelseAlle store kilder, vedligeholdt og opdateret løbende
    MatchningsnøjagtighedSkræddersyet fuzzy matching kræver NLP-ekspertise og konstant finjusteringAI med fuzzy matching, translitteration, aliasopløsning og fonetiske algoritmer
    PEP og negativ omtaleSeparate leverandører, separate integrationer, separate budgetterPEP, negativ omtale og UBO-data i samme API-svar
    Løbende vedligeholdelseDedikeret team til listeopdateringer, skemaændringer og finjustering af falske positiverFuldt administreret — opdateringer, forbedringer og infrastruktur håndteres for dig
    RevisionssporByg din egen logning, dokumentation og opbevaringsinfrastrukturTidsstemplede dokumentationspakker med kildehenvisninger inkluderet

    Fire trin til indbygget compliance

    1. Få din API-nøgle

      Opret en afgrænset nøgle fra dit dashboard med minimumsrettigheder: search:read, search:write, batch:read, batch:write.

    2. Integrér endpointet

      Ét POST-kald til dit onboarding-, betalings- eller CRM-flow — send enhedsnavn, type og land, og få et job-ID tilbage.

    3. Behandl resultater

      Poll resultat-endpointet for struktureret JSON — virksomhedskontekst, ejerskab, PEP, negativ omtale, sanktionssignaler og risikoscorer.

    4. Overvåg og alarmér

      Konfigurér løbende overvågning — API'et sender alarmer, når sanktionslister opdateres, eller ny negativ omtale dukker op.

    Kom i gang på få minutter

    Ét API-kald returnerer et komplet screeningresultat.

    Screen en enhedbash
    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 }
    Tjek resultatbash
    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-ydeevne

    • €0.39

      Quick Check pr. kald, intet platformgebyr

    • 202

      HTTP-status når en søgning er accepteret; resultatet hentes derefter

    • EU

      Hostet i Finland; data i hvile bliver i EU

    Ofte stillede spørgsmål om API-integration

    Hvordan autentificerer jeg API-forespørgsler?

    Autentificer API-forespørgsler med en hemmelig nøgle sendt i X-API-Key-headeren. Nøgler oprettes fra dit dashboard med afgrænsede rettigheder.

    Er API'et synkront eller asynkront?

    Asynkron. Send en anmodning, få et job-ID, hent resultater ved polling. Din pipeline blokeres aldrig.

    Hvilket svarformat returnerer API'et?

    Struktureret JSON med felter for centrale jurisdiktioner og arrays pr. kilde samt fund fra efterlysningslister og PEP/RCA. Gennemgå tilgængelig markdown, identifikatorer og kildehenvisninger. Svaret giver ikke en numerisk risikoscore.

    Hvilke rate limits gælder?

    Tildelt pr. abonnementsniveau pr. API-nøgle. Svarheaders indeholder resterende kvote og nulstillingstidspunkt.

    Kan jeg screene enheder i batch via API'et?

    Ja. Batch-endpointet accepterer CSV eller XLSX med op til 100 rækker pr. forespørgsel, og resultater kan hentes pr. række eller som en samlet eksport.

    Hvordan opsætter jeg løbende overvågning via API'et?

    Konfigurér overvågning efter den indledende screening. Når lister opdateres, eller ny negativ omtale dukker op, markerer overvågningen ændringen og advarer dig i appen.

    Hvilke compliance-data er inkluderet i hvert screeningresultat?

    Sanktionsmatch på tværs af alle store kilder, PEP-status med familieforbindelser, negativ omtale med flersprogede kildehenvisninger, UBO-data, risikoklassificering og tidsstemplet dokumentationspakke.

    Hvor lang tid tager en screening?

    Standard sanktionstjek: sekunder. Dybderesearch med negativ omtale og ejerskabskortlægning: under to minutter.

    API-terminologi

    REST API
    Web-API, der bruger standard HTTP-metoder — kompatibelt med ethvert sprog eller framework, der kan sende HTTP-forespørgsler.
    Asynkron behandling
    API'en accepterer et job med det samme og behandler det i baggrunden — hent resultater via polling.
    API-nøgle
    Hemmeligt token til autentificering af API-forespørgsler, afgrænset med specifikke rettigheder for minimumsadgang.
    Rate limiting
    Begrænser API-forespørgsler pr. tidsvindue efter abonnementsniveau — resterende kvote og nulstillingstidspunkt fremgår af svarheaders.
    Struktureret svar
    Maskinlæsbar JSON med konsistente feltnavne og -typer, der muliggør automatisk parsing og beslutningslogik.

    REST API til AML-screening

    Integrér sanktions-, PEP-, kriminalliste-, negativ omtale- og KYB/UBO-screening direkte i dine onboarding-, overvågnings- og transaktionsflows. API'et er live: autentificér med en API-nøgle, og kald den samme screeningmotor, som portalen bruger.

    Endpoints er generelt tilgængelige med API-nøgle-autentificering og rate limits pr. niveau. Udforsk hvert endpoint i den interaktive OpenAPI-dokumentation på /api/v1/docs.

    Kom hurtigt i gang

    1. 1. Opret en API-nøgle

      Opret en afgrænset API-nøgle i dit dashboard, eller udsted en programmatisk med din kontos bearer-token til server-til-server-forespørgsler.

      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. Kør din første søgning

      Indsend en enhed med X-API-Key-headeren. API'et returnerer et søge-id, du henter, når behandlingen er afsluttet.

      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. Indsend en batch

      Send en CSV/XLSX-fil for at screene mange enheder i ét job, og hent derefter rækker eller eksporter, når batchen er færdig.

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

    Centrale endpoints

    • POST/api/v1/search

      Opret en screeningforespørgsel for én enhed. Returnerer et søge-id og behandlingsstatus. Endpoints til konto, dækning og drift er også tilgængelige under /api/v1.

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

    • POST/api/v1/batch

      Indsend CSV/XLSX-filer til screening i stort volumen, og hent derefter rækker eller eksporter, når jobbene er afsluttet.

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

    • POST/api/v1/keys

      Opret og administrér API-legitimationsoplysninger med afgrænsede rettigheder, niveaubaserede rate limits og forbrugssporing.

      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.

    Hvorfor teams bruger API'et

    • Én integration til sanktions-, PEP-, kriminalliste-, negativ omtale- og KYB/UBO-screening
    • API-nøgle-autentificering via X-API-Key-headeren, med rettighedsafgrænsede nøgler for minimumsadgang
    • Rate limits pr. niveau med forbrugslogning til governance og omkostningsstyring
    • Search-, batch-, keys-, account-, coverage- og health-endpoints under /api/v1
    • Interaktiv OpenAPI-dokumentation på /api/v1/docs plus et maskinlæsbart OpenAPI-skema
    • Struktureret output egnet til revisionslogs, sagsakter og efterfølgende beslutninger

    Integration playbooks

    Ofte stillede spørgsmål om API'et

    Hvordan autentificerer jeg API-forespørgsler?

    Screeningforespørgsler til /api/v1/search og /api/v1/batch autentificeres med en API-nøgle sendt i X-API-Key-headeren. Opret nøgler i dit dashboard, eller programmatisk via /api/v1/keys, efter du har autentificeret med din kontos bearer-token.

    Er API'et generelt tilgængeligt?

    Ja. API v1 er live og generelt tilgængeligt. Autentificér med en API-nøgle, kald search-, batch- og nøglestyrings-endpoints, og udforsk alt i den interaktive OpenAPI-dokumentation på /api/v1/docs.

    Kan jeg afgrænse rettigheder for API-nøgler?

    Ja. Nøgler understøtter rettigheder som search:read, search:write, batch:read og batch:write, så du kan håndhæve minimumsadgang pr. integration.

    Hvilke rate limits gælder?

    Rate limits tildeles pr. API-niveau og håndhæves pr. API-nøgle — niveauet styrer anmodningsgennemstrømningen, ikke faktureringen. Svarheaders indeholder grænsen, den resterende kvote og nulstillingstidspunkter, så du kan trappe forbruget ned uden problemer.

    Hvor kan jeg hurtigt teste endpoints?

    Brug den interaktive dokumentation på /api/v1/docs til Swagger-test og /api/v1/redoc til referencestil-dokumentation. OpenAPI-skemaet leveres på /api/v1/openapi.json.

    Kom i gang med screening på få minutter.

    Vælg en plan, og start screeningen i dag.