SanctionIQ API

Compliance in seconds — plug our due‑diligence engine straight into your onboarding and monitoring workflows. Build reports programmatically, receive structured results, and keep an auditable trail without the manual effort.

Live v1.0 Rate‑limited

Intro

What is SanctionIQ and how does the API fit?

SanctionIQ is an AI‑powered background‑checking platform that performs multi‑source screening: global sanctions (OFAC/UN/UK/EU), PEPs, adverse media, enforcement lists, open‑web and social signals, corporate registries and more. You submit a subject, we return a structured, auditable report with a Risk Score and a Confidence Rating.
Use the REST API for automation (webhooks/callbacks) or send an email for no‑code use. Results can be delivered as JSON, HTML, or PLAINTEXT.
Privacy by design: SanctionIQ does not store investigation results. Reports are generated on demand and returned only to the client.

Overview

High‑level behaviour of SanctionIQ.

  • Clients submit personal (or company) details in a structured payload.
  • SanctionIQ searches across sanctions lists, PEP databases, adverse media, regulatory sources, Interpol, and open web in near‑real‑time.
  • We compile a report and deliver it via POST callback or Email, in your chosen format.
  • Average completion time: 2–3 minutes per request (translation adds ~30–60s).

Request Lifecycle

How a request flows through the SanctionIQ platform.

  1. Request submitted
    Client sends a POST request to the API with subject data and authentication details.
  2. Validation
    The API validates:
    • API key and email match
    • Account plan and API access permissions
    • Available credits
  3. Immediate response
    If valid, the API returns 200 OK immediately and the request is queued for processing.
  4. Processing
    SanctionIQ performs multi-source screening and builds the report.
  5. Delivery
    The result is delivered via:
    • POST callback to responseURL
    • Email to the registered address
  6. Failure handling
    If processing or delivery fails, credits are automatically refunded.

Quickstart


curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "country": "Gibraltar",
    "firstname": "John",
    "lastname": "Smith",
    "extra": "CEO of Company X",
    "strict": false,
    "APIKey": "ABC123456",
    "email": "client@example.com",
    "responseType": "POST",
    "responseURL": "https://yourapp.com/response/clientId=123456",
    "responseFormat": "JSON"
  }' \
  "SanctionIQ-Endpoint"

await fetch("SanctionIQ-Endpoint", {
  method: "POST",
  headers: {"Content-Type":"application/json"},
  body: JSON.stringify({
    country:"Gibraltar",
    firstname:"John",
    strict:false,
    lastname:"Smith",
    APIKey:"ABC123456",
    email:"client@example.com",
    responseType:"POST",
    responseURL:"https://yourapp.com/callback",
    responseFormat:"JSON"
  })
});

import requests
url = "SanctionIQ-Endpoint"
payload = {
  "country":"Gibraltar",
  "firstname":"John",
  "lastname":"Smith",
  "extra":"CEO of Company X",
  "strict": False,
  "APIKey":"ABC123456",
  "email":"client@example.com",
  "responseType":"POST",
  "responseURL":"https://yourapp.com/response/clientId=123456",
  "responseFormat":"JSON"
}
requests.post(url, json=payload).raise_for_status()

Endpoint

HTTPS POST · Content-Type: application/json

API endpoints are available once API access is enabled in your account.

Alternative (no‑code): email report@sanctioniq.io — see Email mode.

Dev / Test Endpoint

Test integrations without consuming live credits.

Use the development endpoint to simulate report requests without using real credits (limited to 25 requests a month).

https://api.sanctioniq.io/api/v1/dev/report
  • Returns mock responses matching the live API structure
  • Does not consume paid credits
  • Monthly dev usage limits apply

Authentication

Include a valid APIKey and your registered email in the request body. These are validated together. If they don't match, you'll receive 401 Unauthorized.
Requests are also validated against your account plan, API access permissions, and available credits.

{
  "APIKey": "abc12345-secure-key-9876",
  "email":  "client@example.com"
}

Request Payload Schema

Required and optional fields.

Required

FieldTypeDescription
countrystringCountry associated with the subject.
APIKeystringYour issued key.
emailstringRegistered email (also used for delivery if responseType=EMAIL).
responseURLstringYour callback URL.
responseTypestringEMAIL or POST.

All requests are processed asynchronously. The API immediately returns 200 if accepted, and the final result is delivered via callback or email.

responseFormatstringHTML · JSON · PLAINTEXT
Important:responseURL must be a valid public HTTPS URL and must not point to localhost, loopback addresses, private/internal IP ranges, link-local/metadata addresses, or other non-public callback destinations.

Optional

FieldTypeDescription
firstnamestringFirst name of person.
lastnamestringLast name of person.
namestringCompany name (if doing a company search instead of a person).
extrastringContext such as job title, aliases, identifiers.
strictbooleanOptional. Defaults to false. When true, SanctionIQ treats supplied identifiers such as date of birth, country, company name, address or registration number as stricter identity filters. This can reduce false matches, but may return fewer possible results.
returnParamsstringComma‑separated metadata echoed back as returnParams header in callback. e.g. requestId=abc123,jobId=5678
languagestringTranslate the report to a supported language (see Supported Languages section).
Strict Search: The optional strict field gives clients more control over identity matching. Use true when you have reliable identifying details such as DOB, company name, address, registration number or exact country. Leave it as false, or omit it, for broader discovery where possible similar-name matches may be returned for review.
Conditional: Either firstname+lastname or name (for companies) must be present.

Example Request

{
  "country": "Gibraltar",
  "firstname": "John",
  "lastname": "Smith",
  "extra": "CEO of Company X",
  "strict": false,
  "APIKey": "ABC123456",
  "email": "client@example.com",
  "responseType": "POST",
  "responseURL": "https://yourapp.com/response/clientId=123456",
  "responseFormat": "JSON",
  "returnParams": "clienID=12345,accountID=768456"
}

Best practice: make your response parser tolerant to missing fields/arrays in the JSON report (null/empty checks).
The structure of the JSON object may vary slightly depending on the data found for each subject.
Certain fields (e.g., legalIssues, socialMedia, associates, or wealth) may be missing, empty, or contain fewer details if no relevant information was discovered.
This is expected behaviour to ensure concise responses and relevance of data.


Response Delivery

  • POST — SanctionIQ performs a callback to responseURL with the report body, and includes returnParams header if provided.
  • EMAIL — Sent to email. Body contains the results and a Word Document attachment.
  • Typical processing time: 2-3 minutes.
For better performance, we recommend using the POST responseType with a provided callback URL (responseURL).

If the client account is valid and has sufficient credits, SanctionIQ will immediately respond to the initial API request with a 200 OK status. If there are issues with authentication or credits, the API will respond with appropriate error codes as detailed in the error section.

After the initial response is sent, the platform will process the request. Once completed, SanctionIQ will send the final report via the selected delivery method:

  • EMAIL: Sent to the specified email with Word Document attachment.
  • POST: Platform performs a callback with the response data (and includes any returnParams if provided) to the given responseURL.
If there are any errors encountered with the SanctionIQ, the response will also indicate these errors.

Delivery fallback:
If callback delivery fails, SanctionIQ will attempt fallback delivery via email to ensure the report is not lost.

Error Handling

HTTP CodeMessageNotes
200OKAccepted for processing; result will be delivered by the chosen method.
401UnauthorizedAPIKey/email mismatch or not found.
402UnauthorizedNo Credits.
403ForbiddenAPI access not enabled.
423ForbiddenAccount in grace / suspended.
429ForbiddenRate limited.
503SanctionIQ Error – No credits deductedInternal error while processing.

Credits & Billing

  • 1 credit per successful report.
  • No credits deducted for 401/403/503 outcomes.

Supported Languages

Pass the language field or use Email mode suffixes to receive translated reports.

Tap to view full list
Language (English) Native / Local Name
EnglishEnglish
SpanishEspañol / Castellano
FrenchFrançais
ItalianItaliano
PortuguesePortuguês
GermanDeutsch
DutchNederlands
SwedishSvenska
NorwegianNorsk
DanishDansk
FinnishSuomi
IcelandicÍslenska
RussianРусский
UkrainianУкраїнська
PolishPolski
CzechČeština
SlovakSlovenčina
BulgarianБългарски
SerbianСрпски
CroatianHrvatski
SlovenianSlovenščina
GreekΕλληνικά
HungarianMagyar
RomanianRomână
Arabicالعربية
Hebrewעברית
TurkishTürkçe
Persian / Farsiفارسی
Hindiहिन्दी
Urduاردو
Bengaliবাংলা
Punjabiਪੰਜਾਬੀ / پنجابی
Gujaratiગુજરાતી
Marathiमराठी
Tamilதமிழ்
Teluguతెలుగు
Kannadaಕನ್ನಡ
Malayalamമലയാളം
Sinhalaසිංහල
Thaiไทย
VietnameseTiếng Việt
Filipino / TagalogFilipino / Tagalog
Malay / IndonesianBahasa
Chinese (Simplified)简体中文
Chinese (Traditional)繁體中文
Japanese日本語
Korean한국어
SwahiliKiswahili
YorubaYoruba
ZuluZulu
Amharicአማርኛ
SomaliSomali

Response Format Samples

Snippets from real examples (trimmed for brevity). For more up to dat examples, please check Portal examples once logged in.

View full JSON sample  |  View full HTML sample  |  View full PLAINTEXT sample

*Note that the extended section is an optional section used only when extended searches are requested.

{
  "status": "success",
  "fullName": "John Smith",
  "riskProfileConclusion": {
    "riskAssessment": "High Risk",
    "riskScore": 8,
    "confidenceRating": 7
  },
  "sources": [ {"title":"Wikipedia – John Smith", "url":"https://…"} ]
}
<section id="risk-profile">
  <h2>Risk Profile Conclusion</h2>
  <p><strong>Overall Risk Assessment:</strong>
     <span class="pill risk-high">High Risk</span></p>
  <p><strong>Risk Score (0–10):</strong> 8</p>
  <p><strong>Confidence Rating (0–10):</strong> 7</p>
</section>
Name: John Smith
Life Status: Alive
PEP: Yes (President of the Moon)
Sanctions: No listings found (OFAC/UN/UK/EU)
Risk: High (8/10) · Confidence: 7/10

Email mode

Send an email to report@sanctioniq.io. Use the subject to provide the name, country and optional flags.

To: report@sanctioniq.io
Subject: John Smith from Gibraltar, CEO of Awesome Company - LANGUAGE:CASTELLANO - STRICT:TRUE
Body: (leave empty or add your own return parameters)

The results will be emailed back (body + Word Document). The sender email must match the registered SanctionIQ email.

Anything added in the body will be returned in the response email as the variable ReturnParams - e.g. ReturnParams:userID=12345,requestjobID=867950

To use the language parameter, simply add it to the end of your subject as the above example or if both variables used, add it with a comma.

For example: John Smith from Gibraltar – LANGUAGE:CASTELLANO

Strict Search by email:
Add STRICT:TRUE to the subject or body to enable stricter identity matching. If omitted, Strict Search defaults to off. You can combine it with other email flags such as language.

Examples:
John Smith from Gibraltar - DOB: 04/04/1979 - STRICT:TRUE
John Smith from Gibraltar - LANGUAGE:SPANISH - STRICT:TRUE

Risk Score vs Confidence Rating

How we separate inherent risk from certainty of assessment.

FactorEffect on Confidence
Source Reliability+2 to +4 if strong (official/independent)
Data Completeness+2 to +3 if key areas covered
Recency+1 to +2 if ≤ 12 months
Consistency+1 to +2 if corroborated
Contradictions / Missing−1 to −4 where unclear

Interpretation

  • 0–3 Low confidence — sparse/contradictory data.
  • 4–6 Medium — typical profile.
  • 7–8 High — multiple recent, consistent sources.
  • 9–10 Very High — official data + corroboration.

Risk Score Scale (0–10)

What each score band typically means and how to act.

Score Band Label Typical Triggers Suggested Actions
0–2 Very Low No sanctions/PEP flags, clean adverse media, routine footprint only. Standard onboarding. Periodic review as per BAU cadence.
3–4 Low Minor risk indicators (limited media hits, non-material associations). Onboard with light conditions. Set normal monitoring thresholds.
5–6 Medium Some adverse media, indirect exposure, sector/country risk factors. Enhanced due diligence (targeted). Heightened monitoring frequency.
7–8 High PEP status, multiple corroborated negatives, ongoing investigations. Full EDD, senior sign-off, risk mitigation plan before onboarding.
9–10 Critical Confirmed sanctions, serious enforcement actions, severe adverse media. Decline/exit. If regulated relationship exists, escalate immediately.

Changelog

06 Oct 2025
Added language support and Risk Confidence Rating to reports.
Alex
09 Sep 2025
Changed API endpoint URL (Power Platform workflow).
Alex

Disclaimer

SanctionIQ searches public/open sources and curated datasets. While we aim for high accuracy, the service is provided “as‑is” — clients must independently verify results before making legal, financial or compliance decisions. SanctionIQ accepts no liability for actions taken based on automated outputs.

Contact

Support: support@sanctioniq.io · Registration & API access: support@sanctioniq.io