INTELLIGENCE API
Programmatic Entity Intelligence
REST API access to 100M+ resolved entities across 500+ authoritative sources. Screen any entity in under 200ms with structured risk scoring, sanctions data, and ownership transparency.
Entity Ontology
Not Aggregation — Resolution.
Naralin doesn't just collect data — it resolves, links, and structures 500+ fragmented sources into a unified entity ontology. Every record is cross-referenced, identity-resolved, and mapped into a semantic graph of entities, relationships, and risk signals. The result is a living intelligence layer, not a search index.
/v1/entity/lookupEntity Lookup
Fuzzy-match any entity by name against 100M+ records across 500+ sources. Returns a composite risk score, full signal breakdown, offshore leak appearances, and sanctions history. Available on all tiers.
| 1 | curl -X POST "https://api.naralin.ai/v1/entity/lookup" \ |
| 2 | -H "x-api-key: nar_live_a8b3c2d1_bQ7zR..." \ |
| 3 | -H "Content-Type: application/json" \ |
| 4 | -d '{ |
| 5 | "name": "Mossack Fonseca", |
| 6 | "jurisdiction": "PA" |
| 7 | }' |
| 1 | { |
| 2 | "entity_id": "ent_7f3a9c2d", |
| 3 | "canonical_name": "Mossack Fonseca & Co.", |
| 4 | "entity_type": "company", |
| 5 | "risk_score": 94, |
| 6 | "risk_level": "CRITICAL", |
| 7 | "has_active_sanctions": false, |
| 8 | "is_pep": false, |
| 9 | "jurisdictions": ["PA"], |
| 10 | "offshore_leak_appearances": [ |
| 11 | { |
| 12 | "dataset": "panama_papers", |
| 13 | "role": "intermediary", |
| 14 | "entity_count": 11516 |
| 15 | } |
| 16 | ], |
| 17 | "signals": [ |
| 18 | { |
| 19 | "type": "OFFSHORE_LEAK", |
| 20 | "severity": "HIGH", |
| 21 | "label": "Intermediary in Panama Papers", |
| 22 | "source": "leak exposure" |
| 23 | } |
| 24 | ] |
| 25 | } |
/v1/entity/batch_lookupBatch Lookup
Screen up to 100 entities in a single request. Each entity is resolved, scored, and returned with full risk detail. Batch lookups count by entity, not by request.
| 1 | curl -X POST "https://api.naralin.ai/v1/entity/batch_lookup" \ |
| 2 | -H "x-api-key: nar_live_a8b3c2d1_bQ7zR..." \ |
| 3 | -H "Content-Type: application/json" \ |
| 4 | -d '{ |
| 5 | "entities": [ |
| 6 | { "name": "Huawei Technologies", "jurisdiction": "CN" }, |
| 7 | { "name": "ZTE Corporation", "jurisdiction": "CN" }, |
| 8 | { "name": "Kaspersky Lab", "jurisdiction": "RU" } |
| 9 | ] |
| 10 | }' |
| 1 | { |
| 2 | "results": [ |
| 3 | { |
| 4 | "entity_id": "ent_9a1b2c3d", |
| 5 | "canonical_name": "Huawei Technologies Co., Ltd.", |
| 6 | "risk_score": 87, |
| 7 | "risk_level": "HIGH", |
| 8 | "has_active_sanctions": true, |
| 9 | "sanctions": [ |
| 10 | { "list": "BIS_ENTITY_LIST", "source": "BIS" } |
| 11 | ] |
| 12 | }, |
| 13 | { |
| 14 | "entity_id": "ent_4e5f6a7b", |
| 15 | "canonical_name": "ZTE Corporation", |
| 16 | "risk_score": 72, |
| 17 | "risk_level": "HIGH", |
| 18 | "has_active_sanctions": false |
| 19 | }, |
| 20 | { |
| 21 | "entity_id": "ent_8c9d0e1f", |
| 22 | "canonical_name": "Kaspersky Lab", |
| 23 | "risk_score": 65, |
| 24 | "risk_level": "MEDIUM", |
| 25 | "has_active_sanctions": false |
| 26 | } |
| 27 | ], |
| 28 | "batch_id": "batch_3f8a2b1c", |
| 29 | "total": 3, |
| 30 | "processed": 3 |
| 31 | } |
/v1/entity/{id}Get Entity
Fetch a full entity record by stable ID. Returns the complete dossier: risk breakdown, officers, identifiers, ownership chain, and source citations.
| 1 | curl "https://api.naralin.ai/v1/entity/ent_7f3a9c2d" \ |
| 2 | -H "x-api-key: nar_live_a8b3c2d1_bQ7zR..." |
| 1 | { |
| 2 | "entity_id": "ent_7f3a9c2d", |
| 3 | "canonical_name": "Mossack Fonseca & Co.", |
| 4 | "entity_type": "company", |
| 5 | "status": "dissolved", |
| 6 | "risk_score": 94, |
| 7 | "risk_level": "CRITICAL", |
| 8 | "risk_breakdown": { |
| 9 | "sanctions": 0, |
| 10 | "pep": 0, |
| 11 | "offshore_leak_exposure": 40, |
| 12 | "jurisdiction_risk": 22, |
| 13 | "shell_indicators": 18, |
| 14 | "network_risk": 14 |
| 15 | }, |
| 16 | "jurisdictions": ["PA"], |
| 17 | "officers": [ |
| 18 | { |
| 19 | "name": "Jürgen Mossack", |
| 20 | "role": "founding_partner", |
| 21 | "is_pep": false |
| 22 | }, |
| 23 | { |
| 24 | "name": "Ramón Fonseca Mora", |
| 25 | "role": "founding_partner", |
| 26 | "is_pep": true, |
| 27 | "pep_tier": 2 |
| 28 | } |
| 29 | ], |
| 30 | "sources_checked": 42, |
| 31 | "last_updated": "2026-03-22T00:00:00Z" |
| 32 | } |
SDKs
Start Screening in Minutes
Official SDKs with full type definitions, automatic retry, rate limit handling, and sandbox mode.
| 1 | pip install naralin |
| 1 | from naralin import Client |
| 2 | |
| 3 | client = Client(api_key="nar_live_...") |
| 4 | result = client.entity.lookup( |
| 5 | name="Mossack Fonseca", |
| 6 | jurisdiction="PA" |
| 7 | ) |
| 8 | |
| 9 | print(f"Risk: {result.risk_level}") |
| 10 | print(f"Score: {result.risk_score}") |
| 11 | print(f"Sanctioned: {result.has_active_sanctions}") |
| 1 | npm install naralin |
| 1 | import { Naralin } from 'naralin'; |
| 2 | |
| 3 | const client = new Naralin(); |
| 4 | const result = await client.entity.lookup({ |
| 5 | name: 'Mossack Fonseca', |
| 6 | jurisdiction: 'PA', |
| 7 | }); |
| 8 | |
| 9 | console.log(`Risk: ${result.riskLevel}`); |
| 10 | console.log(`Score: ${result.riskScore}`); |
| 11 | console.log(`Sanctioned: ${result.hasActiveSanctions}`); |
Full TypeScript definitions and Python dataclass models. Every field documented.
Automatic exponential backoff on 429 and 5xx responses. Configurable max retries.
Zero-setup testing with deterministic fixtures. No signup required, no quota consumed.
Get Started
Screen Your First Entity
Free tier includes 500 lookups per month. No credit card required. Full access to all 500+ data sources.