API pentru dezvoltatori

    De ce să copiați nume între sisteme, când un singur apel API face totul?

    Integrați verificarea companiilor, maparea proprietății, verificările PEP, media adversă și semnalele de sancțiuni direct în fluxurile dumneavoastră existente.

    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

    Construire internă vs. integrare ScreenVeritAI

    Construire internă vs. integrare ScreenVeritAI
    AspectConstruire internăAPI ScreenVeritAI
    Timp până la producție6-12 luni pentru a obține listele, a construi potrivirea și a gestiona cazurile particulareZile pentru integrare — gata de producție de la primul apel API
    Acoperirea listelor de sancțiuniPreluare manuală a fiecărui format de listă; întreținere continuă a schemeiFiecare sursă majoră, întreținută și actualizată continuu
    Acuratețea potriviriiPotrivirea fuzzy personalizată necesită expertiză NLP și ajustare constantăAI cu potrivire fuzzy, transliterare, rezolvarea aliasurilor, algoritmi fonetici
    PEP și media adversăFurnizori separați, integrări separate, bugete separateDate PEP, media adversă și UBO în același răspuns API
    Mentenanță continuăEchipă dedicată pentru actualizări de liste, modificări de schemă, ajustarea falsurilor pozitiveComplet gestionat — actualizări, îmbunătățiri și infrastructură, asigurate pentru dumneavoastră
    Jurnal de auditConstruiți-vă propria infrastructură de jurnalizare, dovezi și retențiePachete de dovezi cu marcaj temporal și referințe la surse, incluse

    Patru pași către conformitate integrată

    1. Obțineți cheia API

      Creați o cheie cu permisiuni definite din panoul de control, cu privilegii minime: search:read, search:write, batch:read, batch:write.

    2. Integrați endpoint-ul

      Un singur apel POST către fluxul dumneavoastră de onboarding, plăți sau CRM — trimiteți numele entității, tipul și țara, primiți înapoi un id de job.

    3. Procesați rezultatele

      Interogați endpoint-ul de rezultate pentru JSON structurat — context al companiei, proprietate, PEP, media adversă, semnale de sancțiuni și scoruri de risc.

    4. Monitorizați și alertați

      Configurați monitorizarea continuă — API-ul trimite alerte atunci când listele de sancțiuni se actualizează sau apare media adversă nouă.

    Începeți în câteva minute

    Un singur apel API returnează un rezultat complet de screening.

    Verificați o entitatebash
    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 }
    Verificați rezultatulbash
    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 }

    Performanța API-ului

    • €0.39

      Quick Check per apel, fără taxă de platformă

    • 202

      Stare HTTP când o căutare este acceptată; rezultatul se interoghează apoi

    • EU

      Găzduit în Finlanda; datele în repaus rămân în UE

    Întrebări frecvente despre integrarea API

    Cum autentific cererile API?

    Autentificați cererile API cu o cheie secretă transmisă în header-ul X-API-Key. Cheile sunt create din panoul de control, cu permisiuni definite și de privilegiu minim.

    API-ul este sincron sau asincron?

    Asincron. Trimiteți o cerere, primiți un id de job, recuperați rezultatele prin interogare periodică. Fluxul dumneavoastră nu se blochează niciodată.

    Ce format de răspuns returnează API-ul?

    JSON structurat cu câmpuri pentru jurisdicțiile principale și tablouri pe surse, plus constatări din liste de persoane căutate și PEP/RCA. Examinați markdown-ul, identificatorii și sursele disponibile. Răspunsul nu oferă un scor numeric de risc.

    Ce limite de rată se aplică?

    Alocate în funcție de planul de abonament, per cheie API. Header-ele de răspuns includ cota rămasă și momentul resetării.

    Pot verifica entități în masă, prin API?

    Da. Endpoint-ul de procesare în masă acceptă CSV sau XLSX cu până la 100 de rânduri per cerere, iar rezultatele pot fi recuperate per rând sau ca export complet.

    Cum configurez monitorizarea continuă prin API?

    Configurați monitorizarea după screeningul inițial. Când listele se actualizează sau apare media adversă nouă, monitorizarea semnalează schimbarea și vă alertează în aplicație.

    Ce date de conformitate sunt incluse în fiecare rezultat de screening?

    Potriviri de sancțiuni în fiecare sursă majoră, statut PEP cu conexiuni de familie, media adversă cu citări multilingve, date UBO, nivel de risc și pachet de dovezi cu marcaj temporal.

    Cât durează un screening?

    Verificare standard de sancțiuni: câteva secunde. Cercetare aprofundată, cu media adversă și mapare a proprietății: sub două minute.

    Terminologie API

    API REST
    API web care utilizează metode HTTP standard — compatibil cu orice limbaj sau framework care poate face cereri HTTP.
    Procesare asincronă
    API-ul acceptă imediat un job și îl procesează în fundal — preluați rezultatele prin interogare periodică.
    Cheie API
    Token secret pentru autentificarea cererilor API, cu permisiuni definite, pentru acces cu privilegii minime.
    Limitarea ratei
    Restricționează cererile API per fereastră de timp, în funcție de planul de abonament — cota rămasă și momentul resetării sunt în header-ele de răspuns.
    Răspuns structurat
    JSON care poate fi citit automat, cu nume și tipuri de câmpuri consistente, permițând parsarea automată și logica de decizie.

    API REST pentru screening AML

    Integrați screeningul de sancțiuni, PEP, liste de supraveghere penală, media adversă și KYB/UBO direct în procesele dumneavoastră de onboarding, monitorizare și tranzacții. API-ul este live: autentificați-vă cu o cheie API și apelați același motor de screening folosit de portal.

    Endpoint-urile sunt disponibile publicului larg, cu autentificare prin cheie API și limite per plan. Explorați fiecare endpoint în documentația OpenAPI interactivă de la /api/v1/docs.

    Ghid rapid de pornire

    1. 1. Creați o cheie API

      Creați o cheie API cu permisiuni definite din panoul de control, sau generați una programatic folosind tokenul bearer al contului, pentru cereri server-to-server.

      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. Rulați prima căutare

      Trimiteți o entitate folosind header-ul X-API-Key. API-ul returnează un id de căutare pe care îl recuperați după finalizarea procesării.

      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. Trimiteți o procesare în masă

      Trimiteți un fișier CSV/XLSX pentru a verifica mai multe entități într-o singură procesare, apoi recuperați rândurile sau exporturile după finalizarea procesării.

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

    Endpoint-uri principale

    • POST/api/v1/search

      Creează o cerere de screening pentru o singură entitate. Returnează un id de căutare și statusul procesării. Endpoint-urile de cont, acoperire și stare sunt disponibile tot sub /api/v1.

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

    • POST/api/v1/batch

      Trimiteți fișiere CSV/XLSX pentru screening de volum mare, apoi recuperați rândurile sau exporturile după finalizarea procesărilor.

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

    • POST/api/v1/keys

      Creați și gestionați acreditări API cu permisiuni definite, limite adaptate planului și urmărirea utilizării.

      Autentificare: token Bearer (cont)

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

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

    De ce folosesc echipele acest API

    • O singură integrare pentru screening de sancțiuni, PEP, liste de supraveghere penală, media adversă și KYB/UBO
    • Autentificare prin cheie API, cu header-ul X-API-Key, și chei cu permisiuni definite pentru acces cu privilegii minime
    • Limite per plan, cu jurnalizarea utilizării pentru guvernanță și control al costurilor
    • Endpoint-uri de căutare, procesare în masă, chei, cont, acoperire și stare, toate sub /api/v1
    • Documentație OpenAPI interactivă la /api/v1/docs, plus o schemă OpenAPI care poate fi citită automat
    • Rezultate structurate, potrivite pentru jurnale de audit, dosare de caz și decizii ulterioare

    Integration playbooks

    Întrebări frecvente API

    Cum autentific cererile către API?

    Cererile de screening către /api/v1/search și /api/v1/batch se autentifică printr-o cheie API trimisă în header-ul X-API-Key. Creați chei din panoul de control sau programatic prin /api/v1/keys, după autentificarea cu tokenul bearer al contului.

    API-ul este disponibil publicului larg?

    Da. API v1 este live și disponibil publicului larg. Autentificați-vă cu o cheie API, apelați endpoint-urile de căutare, procesare în masă și gestionare a cheilor, și explorați totul în documentația OpenAPI interactivă de la /api/v1/docs.

    Pot restrânge permisiunile unei chei API?

    Da. Cheile acceptă permisiuni precum search:read, search:write, batch:read și batch:write, astfel încât să puteți impune acces cu privilegii minime pentru fiecare integrare.

    Ce limite de rată se aplică?

    Limitele de rată sunt alocate pe nivel de API și aplicate per cheie API — nivelul reglementează debitul cererilor, nu facturarea. Header-ele de răspuns includ limita, cota rămasă și momentul resetării, pentru a putea temporiza cererile în mod controlat.

    Unde pot testa rapid endpoint-urile?

    Folosiți documentația interactivă de la /api/v1/docs pentru testare Swagger și /api/v1/redoc pentru documentație de tip referință. Schema OpenAPI este disponibilă la /api/v1/openapi.json.

    Începeți screeningul în câteva minute.

    Alegeți un plan și începeți screeningul chiar azi.