GnistAI GnistAI
Log in

Getting Started with ICIJ Offshore Leaks

Search the ICIJ Offshore Leaks Database — Panama Papers, Paradise Papers, Pandora Papers. 800K+ offshore entities, officers, intermediaries, and addresses from leaked financial documents.

All Tutorials   |   Overview   |   Playground   |   MCP   |   REST API   |   Home
Legal

Data source: ICIJ Offshore Leaks Database (Reconciliation API)

Overview

ICIJ Offshore Leaks wraps ICIJ Offshore Leaks Database (Reconciliation API), handling authentication, pagination, and rate limits for you. This tutorial covers all 3 tools with working code examples you can copy and run.

Prerequisites

  1. Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
  2. Choose your integration method: MCP protocol or REST API.

Connect via MCP

Add to your MCP client config (Claude Desktop, Cursor, etc.):

MCP Config
{
  "mcpServers": {
    "gnist-offshore-leaks": {
      "url": "https://context.gnist.ai/mcp/offshore-leaks/",
      "headers": {
        "Gnist-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Tools (3)

search_offshore_leaks

Search the ICIJ Offshore Leaks Database for entities, officers, and intermediaries. Covers data from Panama Papers, Paradise Papers, Pandora Papers, Offshore Leaks, and Bahamas Leaks — over 800,000 offshore entities, their officers, and intermediaries. Use this to investigate offshore company structures, identify connected parties, or verify entities appearing in leaked financial documents. Examples: search_offshore_leaks("Mossack Fonseca") → Entities matching the law firm search_offshore_leaks("Smith", node_type="Officer", country="GB") → UK-linked officers search_offshore_leaks("trust", source="pandora-papers") → Trusts in Pandora Papers Returns: List of matches with node_id, name, type, description, and match score.

ParameterTypeRequiredDescription
querystringrequiredSearch query — name of entity, person, or intermediary. Example: 'Mossack Fonseca'.
node_typestringoptionalNode type to search: Entity (companies/trusts), Officer (directors/shareholders), Address, Intermediary (law firms/agents), Other, Node (all). (default: Entity)
countryanyoptionalISO country code filter. Example: 'PA' for Panama, 'VGB' for British Virgin Islands.
sourcestringoptionalInvestigation to search: all, panama-papers, paradise-papers, pandora-papers, offshore-leaks, bahamas-leaks. (default: all)
limitintegeroptionalMax results (1-25). (default: 10)
curl -X POST "https://context.gnist.ai/mcp/offshore-leaks/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_offshore_leaks", "arguments": {"query": "renewable energy"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/offshore-leaks/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'query': 'renewable energy'},
            'name': 'search_offshore_leaks'}},
)
print(resp.json())

get_offshore_entity

Get detailed properties for an offshore leaks node by ID. Returns structured data including name, country, jurisdiction, status, incorporation/dissolution dates, data source, and related notes. Entity nodes include additional fields like IBC/RUC numbers. Use node_ids from search_offshore_leaks results. Returns: Detailed node properties including data source investigation name.

ParameterTypeRequiredDescription
node_idstringrequiredNode ID from a search result. Example: '10022201'.
node_typestringoptionalNode type: Entity, Officer, Address, Intermediary, Other. (default: Entity)
curl -X POST "https://context.gnist.ai/mcp/offshore-leaks/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_offshore_entity", "arguments": {"node_id": "12345"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/offshore-leaks/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'node_id': '12345'}, 'name': 'get_offshore_entity'}},
)
print(resp.json())

report_feedback

Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: general)
curl -X POST "https://context.gnist.ai/mcp/offshore-leaks/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/offshore-leaks/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())

Common Patterns

Search then retrieve
Use search_offshore_leaks to find items, then get_offshore_entity to get full details. This two-step pattern is common for exploring data before drilling down.
Pagination
Several tools support limit, offset, or page parameters. Start with small limits during development, then increase for production queries.

FAQ

What data does ICIJ Offshore Leaks provide?

Search the ICIJ Offshore Leaks Database — Panama Papers, Paradise Papers, Pandora Papers. 800K+ offshore entities, officers, intermediaries, and addresses from leaked financial documents. It exposes 3 tools: search_offshore_leaks, get_offshore_entity, report_feedback.

What do I need to get started?

A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.

What format does the ICIJ Offshore Leaks API return?

JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.

Next Steps

Related Tutorials