[00/Changelog]

Changelog

What shipped and when, newest first. Major platform moments plus SDK/API-shape changes that could break your integration. For tiny tweaks, follow the commit log.

BREAKING2026-04-21

Free-tier limits rebalanced

  • Monthly request cap on Data API Free drops from 2,500 → 1,000. Enough to evaluate the API and build a working prototype; production traffic belongs on Pro.
  • Rate limit on Free drops from 300 req/min (5/sec) → 30 req/min (2/sec). Interactive tools and dashboards are unaffected; batch jobs and scrapers will hit 429 and should upgrade.
  • No change to Pro, Business, or Enterprise tiers. Existing Free users keep their current quota for this billing period and rotate to the new limits on next renewal.
BREAKING2026-04-21

Webhook signature v2 (breaking) — timestamp + replay protection

  • Webhooks now sign `${timestamp}.${body}` instead of just `${body}`. Two new headers: X-Katzilla-Timestamp (unix epoch ms) and X-Katzilla-Signature-Version: v2.
  • Receivers verifying only the body — the v1 format — will start rejecting deliveries after this deploys. Update verification to hmac_sha256(secret, `${ts}.${body}`); full snippet in the docs under Event Triggers → Signature Verification.
  • Rejects deliveries older than 5 minutes to block replay attacks. Any modern receiver clock is well within that window.
  • Branch on X-Katzilla-Signature-Version to support both formats during a zero-downtime rollout.
  • Through 2026-06-01, failed deliveries that hit 400/401/403 append a migration hint to the failure log pointing at the docs.
BREAKING2026-04-21

Webhook signing secrets are now show-once

  • GET /v1/webhooks no longer returns the `secret` field. Only POST /v1/webhooks (creation) returns it, once. Existing webhook rows keep working — your receiver-side copy is unaffected — but the Katzilla UI will no longer re-display the secret on list pages.
  • Lost a secret? Delete and recreate the webhook to rotate. Matches the Stripe/GitHub show-once pattern and closes an audit finding where a compromised session could silently exfiltrate HMAC keys.
  • /workspace/scrape → Webhooks displays the secret in green once, right after creation, with a 'copy now — will not be shown again' note. Existing webhooks show a placeholder explaining the rotation policy.
FIXED2026-04-21

Webhook target URL hardening (SSRF / DNS rebinding)

  • Webhook target_url validation at creation time now uses the shared SSRF guard — rejects IPv6 loopback/link-local, IPv4-mapped IPv6 pointing at private space, cloud metadata endpoints, and .internal / .local / .svc / .cluster.local DNS suffixes that the previous webhook-only helper missed.
  • Dispatcher re-resolves DNS for each delivery and refuses to fan out if the hostname currently points at a private address. Closes the DNS-rebinding hole between creation (public at signup) and delivery (rebound to internal later).
  • No developer action needed. Webhooks aimed at legitimate public endpoints continue to work; any that were accidentally targeting internal ranges will error cleanly instead of dispatching (check /v1/webhooks/:id/logs for the reason).
FIXED2026-04-21

/v1/compose + /v1/ask/compose now bill on the Ask product quota

  • Both compose endpoints were using the legacy request_count counter, bypassing the per-product Ask quota that /v1/ask enforced. A user whose Ask quota was exhausted could still fan out compositions here. Closed.
  • Same 402 + upgrade body is returned when your Ask tier is exhausted, regardless of which of the three endpoints you call.
  • If you were relying on /v1/compose staying inside the legacy counter, you will start seeing 402 once you hit the Ask-tier monthly cap. Upgrade via the usual /workspace/billing flow.
ADDED2026-04-17

Katzilla Studio launch — Watch replaces the legacy dashboard

  • New unified brand home at katzilla.dev with Studio shell across Data, Scrape, Watch, Ask, and Brief
  • Full workspace surface: /workspace/{data,scrape,watch,ask,brief,keys,usage,billing,settings}
  • Scrape cockpit ported to Watch with 7 tabs: Playground, Crawl, Batch, Schedules, Webhooks, Activity, Settings
  • Brief subscription system with per-email-per-slug upsert + soft unsubscribe
  • Admin surface at /admin: developers, usage, errors, audit, blog, surveys, announcements, marketing, data-browser, tickets, health, smoke, ask history
  • Stripe checkout wired end-to-end with admin-proxied session creation; instant upgrade bypass for admin-role accounts
  • One-click owner bootstrap resolves the KATZILLA_ADMIN_KEY chicken-and-egg for first-time setup
ADDED2026-04-09

SDK v0.2 — new query parameters and response fields

  • Python and TypeScript SDKs support _page (pagination), _normalize (canonical field names), _units (metric/imperial), and _summary (aggregate stats)
  • Response quality metadata now includes certainty_score (0.000–1.000) from the Truth Engine
  • Cache-hit responses include cachedFree:true so your agent knows quota was not charged
  • OpenAPI spec updated with all new parameters and response fields
  • Backward compatible — existing SDK versions continue to work
ADDED2026-04-09

17 new government data endpoints

  • Treasury FiscalData — interest rates, revenue, spending, securities (100+ datasets)
  • Census Economic Indicators — monthly retail sales, construction, manufacturing
  • NASA POWER, EONET, CNEOS — temperature/precip/solar + real-time natural events + near-Earth objects
  • PubChem + RxNorm — chemical compound properties + drug name normalization
  • NSF Awards + DOE OSTI — research grants + technical reports
  • EPA ATTAINS — water quality assessments by state
  • FEMA NFIP — flood insurance claims with flood zones
  • CFPB HMDA — Home Mortgage Disclosure Act lending stats
  • State Department Travel Advisories — advisory levels for every country
  • NOAA Climate Data Online — historical weather observations (daily/monthly/yearly)
  • USAJobs — federal job listings with salary + agency
  • CMS Provider Data — Medicare ACO performance, hospital ratings, nursing homes
IMPROVED2026-04-09

Historical query caching

  • Historical queries (dates older than 7 days) cached for 24 hours instead of 2–10 minutes
  • Cache shared across all users — if another user queries the same historical dataset, it's a free cache hit with zero quota cost
  • Immutable government data no longer re-fetched on every request
ADDED2026-04-08

Webhook dispatcher & data normalization

  • Webhook dispatcher — register HTTP endpoints to receive HMAC-signed push notifications when data sources update
  • Normalization layer standardizes field names, units, and date formats across all agent responses
  • Trigger rules engine supports threshold conditions (e.g. magnitude > 6.0) for filtered event delivery
IMPROVED2026-04-08

Rate limiting & caching improvements

  • Per-action rate limit (30 req/min) protects upstream government APIs
  • Cache hits no longer count against your monthly request quota
  • Rate limiter identifies users by API key before auth middleware runs — faster rejection of over-limit requests
ADDED2026-04-07

EU, UK, Canada, Australia data sources

  • Eurostat (6 endpoints, no API key): GDP, unemployment, inflation, energy balance, trade, transport
  • EU country portals: France, Germany, Netherlands, Italy, Finland, Poland, Portugal (CKAN-based)
  • UK: data.gov.uk, UK Floods (Environment Agency), Land Registry house prices, DfT transport, DfE education, NHS England
  • Canada: open.canada.ca, Bank of Canada rates, Environment Canada weather alerts, Health Canada drug database
  • Australia: data.gov.au (100K+ datasets)
FIXED2026-04-07

Date range params, CFPB complaints

  • 10 endpoints where date/year params were silently ignored — treasury-debt, federal-register, imf-commodities, sipri, hud-fmr, hud-income-limits, fec-candidates, comtrade
  • Treasury Debt now supports startDate/endDate filtering — data back to 1993
  • IMF WEO now supports startYear/endYear — multi-year time series back to 1980
  • CFPB Consumer Complaints enhanced with dateReceivedMin/Max, pagination, company and state filters
  • Shared error sanitization layer catches all upstream 400s, credential errors, timeouts across all agents
FIXED2026-04-06

Circuit breaker & error handling overhaul

  • Circuit breaker no longer trips on 400 client errors — only 5xx/network failures
  • User-facing errors sanitized: internal details, API keys, and upstream URLs never exposed
  • Upstream 400 errors return HTTP 400 with clear 'Invalid parameter value' message
  • Backup API key failover: automatic swap to BACKUP_ prefix keys on 429/401/403
REMOVED2026-04-06

Removed unreliable data sources

  • 30+ endpoints with dead, retired, or bot-blocking upstream APIs
  • PatentsView v1 (retired), LibreTranslate (requires key now), OFAC sanctions (decommissioned), NARA catalog (no JSON API)
  • FAO FAOSTAT (persistent DNS/timeout issues), FBI UCR (upstream down), ITIS Taxonomy (timeout), volcano monitoring (blocks bots)
ADDED2026-04-05

Shared parameter validators across 82 agent actions

  • Shared Zod validators in @katzilla/data-common: isoDate, isoMonth, year, usState, countryCode, latitude, longitude, fredSeriesId, blsSeriesId, limit, offset, searchQuery
  • Migrated 82 agent action files to use shared validators
  • Validators include .describe() with examples — flows through to OpenAPI spec and MCP tool definitions
ADDED2026-04-03

Katzilla Scrape v1

  • New /scrape/page endpoint — one-URL scrape with markdown/html/text/screenshot/PDF output
  • Crawl jobs — multi-page walks with depth, include/exclude paths, async progress tracking
  • Batch scraping — up to 500 URLs per job
  • Scheduled scrapes — recurring runs at 15min–1week intervals with on-change-only webhooks
  • Separate subscription + quota from the Data API
  • SSRF-safe URL validation + robots.txt enforcement on every call
ADDED2026-04-01

MCP server v1

  • Model Context Protocol server at api.katzilla.dev/mcp
  • One config line in Claude Desktop, Cursor, or Windsurf unlocks every agent action as a tool
  • Tool filters: include/exclude by agent prefix, action id, or category
  • Bearer token auth supported for MCP-native clients
ADDED2026-03-31

Admin panel v2

  • Live developer + usage + errors dashboards
  • Smoke test runner — every agent × action against the upstream with test params, results stored in kz_smoke_tests
  • Incident manager with affected-user notification via support tickets
  • Announcement broadcast to all developers or a plan segment
ADDED2026-03-28

Plans + Stripe checkout

  • Free (2,500 req/mo) · Pro ($49/mo, 100K) · Business ($199/mo, 500K) · Enterprise tiers 2M/10M/50M
  • Annual billing saves ~25% at every tier
  • Stripe Checkout for self-serve upgrade, Customer Portal for management
  • Webhook handles subscription created/updated/deleted → flips the developer's plan column

// older entries archived — email support@katzilla.dev if you need the full history for compliance