Search Korean corporate disclosures by name, pay per call.

Resolve any KRX-listed company by name for free, then fetch AI-summarized English filings priced per call in USDC. Built for autonomous AI agents and indie agent builders who need diverse data sources and prefer pay-per-call to subscriptions. No API key. No signup. Payment is authentication.

1 free + 1 paid call x402 v2 on Base 3,961 listed companies 800–1,100 filings/weekday

Why this exists

Korea's Financial Supervisory Service publishes roughly 800–1,100 corporate disclosures every weekday across KOSPI and KOSDAQ — about 220,000 a year. The feed is free. It is also in Korean, structured as PDFs pinned to XML metadata, and full of domain vocabulary — 유상증자, 전환사채, 지주사 전환 — that general-purpose LLMs translate badly.

For an autonomous AI agent, raw DART is unusable without a Korean NLP pipeline, a translation layer, and an importance-scoring model. Korea Filings does that work once per filing, caches the result forever, and sells it per call.

How it works

An agent that knows nothing about Korean stock codes can still get to a paid summary in two HTTP calls — one free, one paid:

1. Resolve a name to a ticker (free)
Agent → GET /v1/companies?q=Samsung+Electronics
200 OK   { matches: [{ ticker: "005930", nameKr: "삼성전자", ... }] }

2. Fetch recent filings for that ticker (paid)
Agent → GET /v1/disclosures/by-ticker?ticker=005930&limit=5
402 Payment Required   { amount: 25000, asset: USDC, payTo: 0x8467…, ... }

Sign the EIP-3009 authorisation with your wallet (0.005 × limit USDC)

Agent → GET /v1/disclosures/by-ticker?ticker=005930&limit=5
    PAYMENT-SIGNATURE: <base64 signed payload>
200 OK + PAYMENT-RESPONSE (settlement tx hash)
←   [ { summaryEn, importanceScore, eventType, ... }, × 5 ]

The x402 protocol routes the payment through Coinbase's facilitator, which validates your signature on-chain and settles USDC in a single transaction. The server never holds your private key. You never hold an API key. Every call is audited on-chain.

The price for batched endpoints is declared dynamically in the 402 response — for by-ticker?ticker=…&limit=N, the server signs 0.005 × N USDC into the challenge, so an agent always sees the exact charge before authorising the wallet. Direct receipt-number lookup at /v1/disclosures/summary?rcptNo=… stays at a flat 0.005 USDC.

What you get

One call returns a structured JSON object. The summary is built from the filing body itself, not just the title — quantitative events (rights offerings, supply contracts, debt issuance) come back with the actual amounts, dilution percentages, counterparty names, and effective dates extracted from the Korean source. Two examples below: a light governance event and a quantitative capital-raise event.

{
  "rcptNo": "20260424900874",
  "summaryEn": "Global SM's stock trading was suspended at
                09:00 KST on April 24, 2026, pending an updated
                electronic registration tied to a planned 1-for-2
                stock consolidation. The suspension follows a board
                resolution dated April 21; trading resumes April 26
                once the registration completes. Existing
                shareholders' record positions are unaffected.",
  "importanceScore": 8,
  "eventType": "TRADING_SUSPENSION",
  "sectorTags": ["Capital Goods"],
  "tickerTags": ["095440"],
  "actionableFor": ["traders"],
  "generatedAt": "2026-04-24T08:47:51Z"
}

A quantitative event — Samsung Electronics dividend decision, returned verbatim from a live Base mainnet paid call (settled on-chain):

{
  "rcptNo": "20260430800106",
  "summaryEn": "Samsung Electronics decided on a quarterly
                cash dividend of KRW 372 per common share and
                KRW 372 per preferred share, totaling
                KRW 2,453,315,636,604. The dividend yield is
                0.2% for common shares and 0.3% for preferred
                shares. The record date is March 31, 2026, with
                payment scheduled for May 29, 2026.",
  "importanceScore": 7,
  "eventType": "DIVIDEND_DECISION",
  "sectorTags": ["Technology Hardware & Equipment"],
  "tickerTags": ["005930"],
  "actionableFor": ["traders", "long_term_investors"],
  "generatedAt": "2026-05-06T07:29:45.911215Z"
}

Pricing

Per call, in USDC on Base. No minimums, no monthly fee, no volume tiers. Free endpoints (/v1/companies, /v1/disclosures/recent) carry no payment challenge so an agent can browse before paying.

EndpointMethodPrice (USDC)
/v1/disclosures/by-ticker?ticker=…&limit=N GET 0.005 × N
/v1/disclosures/summary?rcptNo=… GET 0.005

Canonical source: api.koreafilings.com/v1/pricing — machine-readable JSON with the current recipient wallet, network, and USDC contract. Live x402 discovery document lets agents auto-resolve.

Try it

Inspect a free company lookup — no wallet needed:

curl 'https://api.koreafilings.com/v1/companies?q=Samsung+Electronics'

Inspect the 402 challenge for a paid endpoint:

curl -i 'https://api.koreafilings.com/v1/disclosures/by-ticker?ticker=005930&limit=3'
#   HTTP/2 402
#   payment-required: <base64 PaymentRequired payload, declares amount = 15000 (0.015 USDC)>

End-to-end with the official TypeScript SDK (handles the EIP-3009 signing and the x402 retry — runs in Node, browsers, Cloudflare Workers, Deno):

npm install koreafilings
import { KoreaFilings } from 'koreafilings';

const client = new KoreaFilings({
  privateKey: process.env.PAYER_PRIVATE_KEY as `0x${'$'}{string}`,
  network: 'base',
});

// 1. Free name → ticker resolution
const matches = await client.findCompany('Samsung Electronics');
const ticker = matches[0]!.ticker;  // "005930"

// 2. Paid batch summary fetch (0.005 × limit USDC)
const filings = await client.getRecentFilings(ticker, 5);
for (const f of filings) {
  console.log(`[${'$'}{f.importanceScore}/10] ${'$'}{f.eventType}: ${'$'}{f.summaryEn}`);
}
console.log('paid:', client.lastSettlement?.transaction);

Same surface in Python: pip install koreafilingsfrom koreafilings import Client with find_company / get_recent_filings in snake_case. Or plug it straight into Claude Desktop / Cursor / Continue with the MCP serveruv tool install koreafilings-mcp exposes five tools (find_company, list_recent_filings, get_pricing for free discovery; get_recent_filings and get_disclosure_summary for paid AI summaries) as native agent tools.

Status

Live on Base mainnet — payments settle in real USDC via the Coinbase CDP facilitator. v1.1 (name-based agent flow) is shipped with x402 v2 transport-spec headers (PAYMENT-SIGNATURE / PAYMENT-RESPONSE): TypeScript SDK 0.1.2 on npm, Python SDK 0.3.1 and MCP server 0.3 on PyPI, and the service is indexed at x402scan.