Katzilla Datathe core

Every US government dataset.
One API. Every response cited.

Stop writing parsers for 30+ agencies. Stop hoping your LLM remembered the 2024 CDC numbers. Stop arguing with users about where an answer came from. Katzilla wraps SEC, FDA, Congress, NOAA, USGS, EPA, Census, FRED, and 19 more agencies behind a single key — with a machine-readable citation on every response.

250,195
validated Data.gov sets
217+
live API actions
27
agencies wrapped
100%
responses cited
$0
to start
// without katzilla
  • 30 different auth schemes
  • 30 different response shapes
  • rate-limit management per-agency
  • no citation metadata — you build it
  • hallucinations when the agent falls back to training data
// with katzilla
  • one X-API-Key
  • one response envelope:{data, quality, citation}
  • cache + queue + retry handled
  • hash + timestamp + URL per response
  • your agent grounds every answer
// GET /v1/sec/filingsapi.katzilla.dev
GET /agents/government/actions/sec-edgar
  ?ticker=AAPL&form=10-K&_limit=1

{
  "data": {
    "filing": {
      "ticker": "AAPL",
      "form": "10-K",
      "filed": "2025-11-01",
      "accession": "0000320193-25-000123"
    }
  },
  "quality": {
    "freshness_seconds": 47,
    "source_uptime_30d": 0.992,
    "confidence": "high"
  },
  "citation": {
    "source_name": "U.S. SEC EDGAR",
    "source_url": "sec.gov/cgi-bin/…",
    "license": "Public Domain",
    "retrieved_at": "2026-04-17T03:12Z",
    "data_hash": "sha256:a1f3…"
  }
}

// numbers above are live · cached 5m from api.katzilla.dev

// upstream sources · grouped
36+ listed · hundreds more via Data.gov
// finance + markets
SECFREDTreasuryFDICBEAUSAspending
// health
FDACDCCMSNIHMedlinePlusPubMed
// science + hazards
USGSNOAANASAEPANWSFEMA
// labor + economy
BLSCensusWorld BankIMFOECDEurostat
// legal + policy
Congress.govFed RegisterCourtListenergovinfoRegs.govFEC
// public services
USPTOFCCFTCSAM.govDOLHUD
[01/Live in 60 seconds]

Three steps. Install, call, ship.

Pick your path: MCP for Claude Desktop / Cursor / Windsurf, an SDK for your backend, or raw REST. Same key, same citation contract.

// step 01

Add Katzilla to your agent

Drop the MCP server URL into Claude Desktop / Cursor / Windsurf. Or install @katzilla/sdk — two lines, you're wired.

# ~/.config/claude/config.json
{
  "mcpServers": {
    "katzilla": {
      "url": "https://api.katzilla.dev/mcp",
      "headers": {
        "Authorization": "Bearer kz_your_key"
      }
    }
  }
}
// step 02

Ask in plain English

Your agent picks the right action. Every dataset is described in a tool-use schema — no manual endpoint lookup required.

// user:
"Were there any magnitude-6+ quakes today?"

// agent tool call:
katzilla.query(
  "hazards",
  "usgs-earthquakes",
  { minMag: 6, _fields: ["mag","place"] }
)
// step 03

Get cited data back

Always the same envelope: data + quality + citation. Your agent grounds its answer without you writing a prompt to force it.

{
  "data": [{
    "mag": 6.2,
    "place": "Tonga Islands"
  }],
  "quality": {
    "freshness_seconds": 47,
    "confidence": "high"
  },
  "citation": {
    "source": "U.S. Geological Survey",
    "url": "earthquake.usgs.gov/…",
    "retrieved_at": "2026-04-17T14:23Z"
  }
}

// same envelope from every source · quality + citations built in

[02/Integrations]

Works with your stack.
Three ways in.

Pick whichever fits how your agent is wired. All three hit the same backend, get the same citations, share the same usage meter.

// native sdks
live
Typed, idiomatic, two lines to first call.
TypeScript
npm i @katzilla/sdk
Python
pip install katzilla
import { Katzilla } from "@katzilla/sdk";
const kz = new Katzilla({ apiKey: process.env.KZ_KEY });

const { data, citation } = await kz.query(
  "hazards",
  "usgs-earthquakes",
  { minMag: 5, _fields: ["mag", "place"] },
);
// agent protocols
live
Drops into any modern framework.
MCP
Claude · Cursor · Windsurf
Anthropic
tool_use native
OpenAI
function calling
LangChain
tool + filters
CrewAI
agent-ready
Vercel AI
tools parameter
# Anthropic Claude
tools = katzilla.as_anthropic_tools(include=["hazards__"])
client.messages.create(
  model="claude-sonnet-4",
  tools=tools,
  messages=[{"role":"user", "content":"Any big quakes today?"}],
)
// raw rest
live
Curl it from anywhere — full OpenAPI 3.1.
OpenAPI
/openapi.json
MCP HTTP
/mcp
JSON-RPC
/rpc
curl https://api.katzilla.dev/agents/hazards/actions/usgs-earthquakes \
  -H "X-API-Key: kz_..." \
  -G --data-urlencode "minMag=5" \
     --data-urlencode "_fields=mag,place"
[03/Use cases]

Agents people are shipping. Real code, today.

Every pill is a live Katzilla action. Click a card to see the exact tool call — drop it into your own codebase unchanged.

Finance

Macro dashboard agent

Joins FRED rates, BLS employment, Treasury issuance, and SEC 8-Ks into a single hourly briefing.

+
FREDBLSTreasurySEC EDGAR
const briefing = await kz.join([
  { agent: "data-economic", action: "fred-series", params: { id: "DFF" } },
  { agent: "data-economic", action: "bls-employment" },
  { agent: "data-government", action: "sec-edgar", params: { forms: ["8-K"] } },
]);
Healthcare

Clinical ops copilot

Flags every FDA recall touching your drug formulary and cross-references NIH trial status shifts.

+
FDA RecallsNIH ClinicalTrialsCMS
kz.query("data-health", "fda-recalls", {
  since: "7d", class: ["Class I", "Class II"],
  _fields: ["product", "reason", "manufacturer"],
});
Legal

Regulatory watch agent

Reads every rule published in the Federal Register, summarizes CFR impact, drafts client alerts.

+
Federal RegistergovinfoCourtListener
const rules = await kz.query("data-government", "federal-register", {
  type: "RULE", agency: ["EPA", "SEC"], since: "today",
});
Journalism

Fact-grounded reporter

Every claim about population, inflation, emissions, or court rulings comes back with the source URL baked in.

+
CensusEPABLSCourtListener
const { data, citation } = await kz.query(
  "data-demographics", "census-acs",
  { table: "B25077", geography: "state:06" },
);
// → cite(citation.source_url)
Climate + Risk

Hazard-aware underwriting

Cross-joins USGS seismic + NOAA storms + FEMA disaster declarations for property-level risk scoring.

+
USGSNOAAFEMANWS
await kz.query("data-hazards", "usgs-earthquakes", {
  nearLat: 34.05, nearLng: -118.24, radiusKm: 50, since: "30d",
});
Security

Vulnerability intel sentinel

Polls NIST NVD + CISA KEV every 5 minutes, correlates with your asset inventory, fires pages on criticals.

+
NIST NVDCISA KEVMITRE CVE
kz.query("data-security", "nvd-cves", {
  severity: "CRITICAL", since: "1h",
});
Explore all 217+ actions in the catalog
[04/The sources]

250,195 validated datasets across 27 agencies.

181+ live API actions listed here, plus thousands more datasets proxied through Data.gov. Every one normalizes into the same {data, quality, citation} envelope.

// financial
42 actions
  • SEC EDGAR
  • FRED
  • Treasury Fiscal
  • BEA
  • FDIC
  • // + 37 more
// legal & legislative
31 actions
  • Congress.gov
  • Federal Register
  • CourtListener
  • govinfo.gov
  • Regulations.gov
  • // + 26 more
// health
28 actions
  • FDA
  • NIH ClinicalTrials
  • CMS
  • CDC
  • MedlinePlus
  • // + 23 more
// science & hazards
37 actions
  • USGS
  • NOAA
  • NASA FIRMS
  • EPA
  • NWS
  • // + 32 more
// labor & economy
24 actions
  • BLS
  • Census ACS
  • USAspending
  • FEC
  • BEA
  • // + 19 more
// international
19 actions
  • World Bank
  • IMF
  • OECD
  • Eurostat
  • UN Comtrade
  • // + 14 more
[05/When it's not in an API]

State agencies. City portals.
Whatever URL you give us.

Data API for the 90% that has a REST endpoint. Scrape for the 10% that doesn't. Same key. Same citation envelope. Same usage meter. Switch between them per-call.

// when a federal API exists
GET /agents/government/actions/sec-edgar
→ structured JSON + citation
// when it's behind HTML
POST /scrape/page { url: "city.gov/permits" }
→ markdown + citation
one X-API-Key · one response envelope · billed off one meter
[06/Why primary sources]

Every claim your AI makes
deserves a receipt.

LLMs hallucinate because they were trained on text, not sources. Primary-source data turns every answer into an auditable chain — source name, URL, license, fetched-at, content hash. When a user asks "where did that come from," your AI has an answer.

// the citation contract
  • source_nameU.S. SEC EDGAR
  • source_urlsec.gov/cgi-bin/…
  • licensePublic Domain
  • update_frequencyreal-time
  • retrieved_at2026-04-17T03:12Z
  • data_hashsha256:a1f3…
[07/FAQ]

Questions people ask.

What is Katzilla Data?+

One REST + MCP API wrapping every major US government dataset — SEC, FDA, Congress, NOAA, USGS, FRED, Census, and 250k+ Data.gov sets. Structured JSON, quality metadata, verifiable citation on every response.

Do I need a credit card to start?+

No. Free plan: 2,500 calls/month, every dataset, every SDK, quality metadata, citations. No card, no time limit.

Which frameworks are supported?+

MCP (Claude Desktop · Cursor · Windsurf), Anthropic Claude tool_use, OpenAI function calling, LangChain, CrewAI, Vercel AI SDK. Native SDKs for TypeScript + Python. Raw REST from any language.

How fresh is the data?+

Depends on the source. USGS earthquakes: ~60s. FRED: whenever the agency publishes (daily–monthly). SEC EDGAR: within minutes of EDGAR posting. Every response ships with a freshness_seconds field so your agent always knows.

What makes the citations 'verifiable'?+

Every response includes source name, exact upstream URL, retrieval timestamp, and a SHA-256 content hash. Your user (or a regulator) can re-fetch and confirm exactly what the agent saw.

How do you handle upstream rate limits?+

We own them. Katzilla holds its own upstream credentials, caches aggressively, queues when needed. Your agent talks to one endpoint — we talk to 30+.

What about data that doesn't have an API?+

Katzilla Scrape — same key, same citation envelope. When the source is an HTML page (state portals, city sites, aggregators), POST /scrape/page instead of GET /agents/.... One-line switch.

Is my API key secure?+

Keys are hashed (SHA-256) at rest — we only see them at verify time. HTTPS-only transit. Rotate from /workspace/keys whenever. Revoking is instant.

[08/Pricing]

Simple pricing.

Every plan includes every data source. You only pay for volume. Annual billing saves ~25%.

// free
$0/mo
2,500 requests / mo · 5 req/sec · every source · every SDK
Start free
// pro
$49/mo
100,000 requests / mo · 25 req/sec · webhooks · overage $1 per 1K
Go pro
// business
$199/mo
500,000 requests / mo · 100 req/sec · overage $0.80 per 1K
Go business
// enterprise
higher volume · SLA · priority support
Starter$499/mo
2M / mo200/s
Growth$1,499/mo
10M / mo500/s
Scale$4,999/mo
50M / mo1,000/s
Talk to us → support@katzilla.dev
// stuck?

We answer support tickets within one business day.

integration questions · bug reports · roadmap feedback

Open a ticket