API documentation

Base URL: https://bank-risk-api.culturehub-kash.workers.dev. All responses are JSON. Machine-readable spec: /openapi.json. Agent summary: /llms.txt.

Paying with x402

Paid routes return HTTP 402 with:

Retry with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1). The server verifies the payment with a public facilitator, builds the response, and settles only if the response is 2xx. The receipt is returned in PAYMENT-RESPONSE (v2) or X-PAYMENT-RESPONSE (v1). Example with the official client:

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
const client = new x402Client(); client.register("eip155:*", new ExactEvmScheme(account));
const pay = wrapFetchWithPayment(fetch, client);
const r = await pay("https://bank-risk-api.culturehub-kash.workers.dev/v1/banks/628"); console.log(await r.json());

Endpoints

Method & pathPriceDescription
---------
GET /v1/banks/{cert}$0.01Full metrics + inputs_thousands_usd + provenance + history (5 quarters)
GET /v1/banks/screen$0.02Params: metric (required), top 1-100, order desc/asc, state, min_assets_usd
GET /v1/banks/search?q=freeName search → cert numbers
GET /v1/banks/samplefree3 full sample responses
GET /v1/free/banks/{cert}free5/day/IP trial of the paid lookup
GET /v1/statusfreeFreshness, reconciliation pass rates
GET /v1/datasetsfreeDataset registry (more datasets planned: SEC EDGAR, FRED)
POST /mcpmixedMCP server (streamable HTTP, JSON-RPC)

Metrics

------
risk_scoreComposite risk score 0-100 (higher = riskier)
uninsured_deposit_shareEstimated uninsured domestic deposits / domestic deposits, %
cre_concentrationRegulatory-style CRE loans / total risk-based capital, %
construction_concentrationConstruction & land development loans / total risk-based capital, %
unrealized_loss_to_tangible_equityUnrealized AFS+HTM securities losses / tangible equity, %
htm_adjusted_tangible_equity_ratio(Tangible equity - HTM unrealized loss) / tangible assets, %
loan_to_depositNet loans & leases / total deposits, %
noncurrent_loan_ratioNoncurrent loans & leases / gross loans & leases, %
npa_to_assets(Noncurrent loans + other real estate owned) / total assets, %
nimNet interest margin, % (FDIC-published, YTD annualized)
roaReturn on assets, % (FDIC-published, YTD annualized)
total_rbc_ratioTotal risk-based capital ratio, % (FDIC-published)
leverage_ratioTier 1 leverage ratio, % (FDIC-published)
total_assets_usdTotal assets, USD

Formulas: methodology. Provenance fields: source_url, report_date, quarter, fdic_index, retrieved_at, methodology_version, inputs_sha256.

Errors (never charged)

400 invalid input · 404 unknown bank · 429 free quota exhausted · 502 facilitator unreachable · 500 internal. Error bodies include "charged": false.

Stability

/v1 is stable. Additive fields may appear. Breaking changes would ship as /v2 with notice in the changelog.

Source code

Open-source repository: publication pending.


Data: FDIC BankFind Suite (public Call Report data). Derived metrics are informational only and are not investment, credit or legal advice. Open methodology v1.0.0. Terms & refunds · llms.txt · OpenAPI · x402