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.

100M+
Resolved Entities
500+
Authoritative Sources
<200ms
Avg Response Time
99.9%
Uptime SLA
+

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.

SANC-01SANC-02SANC-03SANC-04REG-02LEAK-01REG-01REG-03MDB-01EXP-CTRLPEP DATAJRSD RISKINTERPOLSEC FILINGSLEI DATANEW SOURCEADDING...INGESTINGONBOARDEDRESOLVED INTO ONTOLOGY& ADDING MORE DAILYIRIS ENGINENARALIN APIREST APIPYTHON SDKNODE SDK
POST/v1/entity/lookup

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

1curl -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 }'
200 OKapplication/json
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}
POST/v1/entity/batch_lookup

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

1curl -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 }'
200 OKapplication/json
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}
GET/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.

1curl "https://api.naralin.ai/v1/entity/ent_7f3a9c2d" \
2 -H "x-api-key: nar_live_a8b3c2d1_bQ7zR..."
200 OKapplication/json
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.

1pip install naralin
1from naralin import Client
2
3client = Client(api_key="nar_live_...")
4result = client.entity.lookup(
5 name="Mossack Fonseca",
6 jurisdiction="PA"
7)
8
9print(f"Risk: {result.risk_level}")
10print(f"Score: {result.risk_score}")
11print(f"Sanctioned: {result.has_active_sanctions}")
1npm install naralin
1import { Naralin } from 'naralin';
2
3const client = new Naralin();
4const result = await client.entity.lookup({
5 name: 'Mossack Fonseca',
6 jurisdiction: 'PA',
7});
8
9console.log(`Risk: ${result.riskLevel}`);
10console.log(`Score: ${result.riskScore}`);
11console.log(`Sanctioned: ${result.hasActiveSanctions}`);
Type Safety

Full TypeScript definitions and Python dataclass models. Every field documented.

Auto Retry

Automatic exponential backoff on 429 and 5xx responses. Configurable max retries.

Sandbox Mode

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.