{"name":"Data Butler","description":"Verified reference data for AI agents. Every figure carries an official source URL and a verifiedDate — built for the questions agents misquote from memory. No auth, CORS-open. Country-prefixed: /api/uk/*; more countries later.","endpoints":{"POST /api/mcp":{"description":"THE FRONT DOOR — one remote MCP server for the whole estate. Lists uk_rates_lookup, exam_topic_paper, domain_provenance, package_provenance, take_home_pay directly, plus what_changed_since (changes since your training cutoff), coverage, catalogue and call (run any tool by name). Every result carries freshness + a cite.url permalink.","example":"add https://databutler.dev/api/mcp to any MCP client"},"GET /api/changes":{"description":"What changed in the verified datasets since a date (REST mirror of what_changed_since). format=html|rss|atom serves the /changes page or feeds instead of JSON.","params":{"since":"YYYY-MM-DD","area":"uk-rates | uk-exams | vehicles | software-eol | policy-rates | us-rates | de-rates | uk-vehicle-rules | uk-exam-dates | calendar | uk-gov-process | all","format":"json (default) | html | rss | atom"},"example":"https://databutler.dev/api/changes?since=2026-06-01"},"GET /protocol":{"description":"The Verified Changes protocol v0.1 specification — the open convention /api/changes, /changes, the feeds and what_changed_since follow, so any site can publish dated, sourced from/to entries and any assistant can consume them. Indexable HTML; ?format=md returns the markdown.","example":"https://databutler.dev/protocol"},"GET /.well-known/changes.json":{"description":"Protocol discovery document: areas tracked, cadence, endpoints (json/html/rss/atom/mcp), schema URL, licence, contact.","example":"https://databutler.dev/.well-known/changes.json"},"GET /schema/changes.v0.json":{"description":"JSON Schema (draft 2020-12) for a changes document and a single entry; /schema/well-known-changes.v0.json covers the discovery document.","example":"https://databutler.dev/schema/changes.v0.json"},"GET /changes":{"description":"The changelog as a page: every verified change to UK tax/NI thresholds, exam specs, official vehicle datasets, software end-of-life dates, central-bank policy rates, US federal tax thresholds, German tax and social-insurance thresholds, UK car tax (VED) and MOT rules, UK exam dates, public holidays, tax-year and daylight-saving dates and UK government service steps, fees and processing times, newest first by month — area, from → to, effectiveFrom, official source, maintainer note, verifiedDate. Indexable, cached 1 h at the edge.","params":{"area":"optional: uk-rates | uk-exams | vehicles | software-eol | policy-rates | us-rates | de-rates | uk-vehicle-rules | uk-exam-dates | calendar | uk-gov-process","since":"optional YYYY-MM-DD"},"example":"https://databutler.dev/changes?area=vehicles"},"GET /changes.rss":{"description":"RSS 2.0 feed of the changelog (?area= optional). guid = permalink on /changes, link = official source, pubDate = verifiedDate.","example":"https://databutler.dev/changes.rss"},"GET /changes.atom":{"description":"Atom feed of the changelog (?area= optional); same entries as /changes.rss.","example":"https://databutler.dev/changes.atom?area=uk-rates"},"GET /f/{key}":{"description":"Verified Facts (verified-facts/0.2): one official figure by key — value, unit, period, effectiveFrom, official source, quote, verifiedDate, status against ?max_age=, a SHA-256 claim hash and an Ed25519 signature. Keys are <country>/<topic>/<fact>; a loose key resolves when unambiguous, otherwise 404 with candidates. ?format=txt (one line) | html (indexable page) | json; ?as_of=YYYY-MM-DD or ?period=2025-26 for a prior value held.","params":{"max_age":"optional: 30d | 12w | 6m | 1y | P30D","as_of":"optional YYYY-MM-DD","period":"optional period label, e.g. 2025-26","format":"json (default) | txt | html"},"example":"https://databutler.dev/f/uk/income-tax/personal-allowance?max_age=30d"},"GET /f":{"description":"The fact index: every key with label, unit, period, verifiedDate and hash (?namespace=uk|us|de|eu; ?format=html for the page with schema.org Dataset). ?keys=k1,k2 (or POST /f {\"keys\": [...]}) is a batch of up to 50.","example":"https://databutler.dev/f?keys=uk/income-tax/personal-allowance,us/social-security/wage-base"},"GET /f/resolve":{"description":"Ranked canonical fact keys for a question or a guessed key, with the full record of an unambiguous top match.","params":{"q":"question or loose key","namespace":"optional: uk | us | de | eu","limit":"1–20 (default 5)"},"example":"https://databutler.dev/f/resolve?q=NI%20primary%20threshold"},"GET /protocol/facts":{"description":"The Verified Facts protocol v0.2 specification (indexable HTML; ?format=md returns the markdown).","example":"https://databutler.dev/protocol/facts"},"GET /.well-known/facts.json":{"description":"Verified Facts discovery document: namespaces, endpoints, key examples, conformance level, keys (JWKS), OpenAPI and MCP.","example":"https://databutler.dev/.well-known/facts.json"},"GET /openapi.json":{"description":"OpenAPI 3.1 for the facts and changes endpoints (getFact, getFacts, resolveFact, whatChangedSince) — for LangChain / LlamaIndex OpenAPI tool loaders.","example":"https://databutler.dev/openapi.json"},"POST /api/mcp/facts":"Remote MCP server databutler-facts — three tools: get_fact, resolve_fact, what_changed_since.","GET /r/<route>?…":{"description":"Citation permalinks (human-readable answer + official source + verified date). Every API/MCP result includes one as cite.url.","example":"https://databutler.dev/r/uk/rates?category=income-tax"},"GET /api/uk/rates":{"description":"UK tax-year rates & thresholds (2026-27), verified against gov.uk.","params":{"category":"one of income-tax, national-insurance, minimum-wage, student-loans, vat, isa, state-pension, state-pension-age, stamp-duty, capital-gains, pensions, dividends, savings, marriage-allowance, statutory-sick-pay, statutory-parental-pay, child-benefit (omit to list)"},"example":"https://databutler.dev/api/uk/rates?category=income-tax"},"GET /api/uk/exams/topic":{"description":"Which paper is a topic on? Built for queries like \"is electricity paper 2 AQA\".","params":{"board":"e.g. aqa","subject":"e.g. physics","level":"e.g. gcse","topic":"e.g. electricity"},"example":"https://databutler.dev/api/uk/exams/topic?board=aqa&subject=physics&level=gcse&topic=electricity"},"GET /api/uk/exams/specs":{"description":"Spec metadata: codes, paper structure, durations, tiers, official links.","params":{"board":"optional","subject":"optional","level":"optional"}},"GET /api/uk/exams/papers":{"description":"Past-paper index: official assessment-resources links per spec (links only — papers are board copyright).","params":{"board":"optional","subject":"optional","level":"optional"}},"GET /api/provenance/domain":{"description":"Who runs this domain? Live RDAP: age, registrar, nameservers, typosquat resemblance. Descriptive signals, not a verdict.","params":{"domain":"e.g. example.com"},"example":"https://databutler.dev/api/provenance/domain?domain=databutler.dev"},"GET /api/provenance/package":{"description":"Who publishes this package, and is it a typosquat? Live npm/PyPI metadata.","params":{"ecosystem":"npm | pypi","name":"e.g. express"},"example":"https://databutler.dev/api/provenance/package?ecosystem=npm&name=express"},"GET|POST /api/stats":{"description":"Exact statistics & probability — for the maths agents get wrong in their head. ?op= one of: descriptive, distribution, hypothesis-test, confidence-interval, bayes-update, regression. Array/table inputs via POST JSON body. Numerical core validated against reference tables.","example":"https://databutler.dev/api/stats?op=distribution&dist=normal&at=1.96"},"GET /api/vehicles/uk/mot":{"description":"Real UK MOT failure data for one model generation: per-category failure rates (overall and at your mileage), riskiest components. Live proxy to whatbreaks.uk (same operator; DfT anonymised MOT results).","params":{"make":"e.g. Volkswagen","model":"e.g. Golf","year":"optional registration year","mileage":"optional miles"},"example":"https://databutler.dev/api/vehicles/uk/mot?make=Volkswagen&model=Golf&year=2018&mileage=80000"},"GET /api/vehicles/uk/search":{"description":"Search the 530 UK model generations covered by the MOT dataset (live proxy to whatbreaks.uk).","params":{"q":"free text, e.g. golf"},"example":"https://databutler.dev/api/vehicles/uk/search?q=golf"},"GET /api/vehicles/uk/recalls":{"description":"Official UK vehicle safety recalls (DVSA open data, OGL v3.0; 4876 recalls launched 2016-01-01 → 2027-02-03) for a make (+ model): recall number, launch date, concern, defect and remedy text, build-date range, vehicles affected, GOV.UK recall-checker link.","params":{"make":"e.g. Vauxhall, Mercedes-Benz, VW","model":"optional, e.g. Corsa (omit to list the make and its model names)","since":"optional YYYY-MM-DD"},"example":"https://databutler.dev/api/vehicles/uk/recalls?make=vauxhall&model=corsa"},"GET /api/vehicles/uk/recalls-search":{"description":"Keyword search across all served DVSA recalls (English text: make, model, concern, defect, remedy), newest first, optional since date.","params":{"text":"e.g. airbag takata","since":"optional YYYY-MM-DD"},"example":"https://databutler.dev/api/vehicles/uk/recalls-search?text=airbag%20takata&since=2025-01-01"},"GET /api/vehicles/fr/recalls":{"description":"Official French vehicle recalls (RappelConso / DGCCRF open data, 1663 automobile fiches 2018-01-19 → 2026-08-07) for a brand (+ model): fiche number, date, risks, defect text, official fiche link.","params":{"brand":"e.g. peugeot, Mercedes-Benz, VW","model":"optional, e.g. 208"},"example":"https://databutler.dev/api/vehicles/fr/recalls?brand=peugeot&model=208"},"GET /api/vehicles/fr/search":{"description":"Keyword search across all RappelConso automobile fiches (French text), newest first, optional since date.","params":{"text":"e.g. airbag takata","since":"optional YYYY-MM-DD"},"example":"https://databutler.dev/api/vehicles/fr/search?text=airbag%20takata&since=2026-01-01"},"GET /api/vehicles/jp/recalls":{"description":"Official Japanese recall filings (国土交通省 MLIT; 919 filings across 75 popular JDM models): notification number, date, device, affected vehicles, situation/remedy, official PDF. English or Japanese names.","params":{"make":"e.g. toyota","model":"e.g. prius, N-BOX"},"example":"https://databutler.dev/api/vehicles/jp/recalls?make=toyota&model=prius"},"GET /api/vehicles/jp/complaints":{"description":"MLIT owner defect reports (19659 across 75 models): total per model + breakdown by defective device.","params":{"make":"e.g. honda","model":"e.g. n-box"},"example":"https://databutler.dev/api/vehicles/jp/complaints?make=honda&model=n-box"},"GET /api/vehicles/eu/safety-gate":"STUB — EU Safety Gate vehicle alerts are being added; returns covered:false with the official URL for now.","GET /api/tax/take-home":{"description":"Take-home pay after income tax and social contributions for uk, us, ca, au, in, br, pl, fr, de, es: gross, net and total deductions (annual + monthly), typed breakdown, effectiveRate, taxYear, currency, assumptions. Live proxy to the LifeByNumbers salary calculators (same operator). Spain (es) returns covered:false — no backend calculator.","params":{"country":"uk | us | ca | au | in | br | pl | fr | de | es","gross":"salary in local currency (annual unless period=monthly)","period":"annual | monthly (optional)","state":"US only, e.g. TX (default CA)","filingStatus":"US only: single | married_joint | head_of_household","province":"Canada only, e.g. BC (default ON)","region":"UK only: england | scotland"},"example":"https://databutler.dev/api/tax/take-home?country=uk&gross=50000"},"GET /api/software-eol/status":{"description":"Is this version still supported, and until when? nodejs, python, ubuntu, debian, android, ios, macos, windows, oracle-jdk, go, ruby, php, postgresql, react — a monthly snapshot of endoflife.date open data (MIT; 340 release cycles, verified 2026-10-03). A version resolves to its release cycle (\"18.19.0\" → 18, \"3.11.4\" → 3.11, \"22.04.3\" → 22.04, \"bookworm\" → 12); returns supported true|false as of today, eol date, days remaining or since, active/extended-support ends, LTS, latest release, the newest supported cycle, a plain-statement recommendation and the endoflife.date page as source.","params":{"product":"one of nodejs, python, ubuntu, debian, android, ios, macos, windows, oracle-jdk, go, ruby, php, postgresql, react (aliases: node, java, jdk, postgres, golang, osx, win)","version":"e.g. 18, 18.19.0, 3.11, 22.04, bookworm, 11-24h2-w"},"example":"https://databutler.dev/api/software-eol/status?product=nodejs&version=18.19.0"},"GET /api/software-eol/timeline":{"description":"Every release cycle of a product, newest first, with release date, supported true|false, eol, LTS, latest release and support-end dates; same snapshot as /status.","params":{"product":"one of nodejs, python, ubuntu, debian, android, ios, macos, windows, oracle-jdk, go, ruby, php, postgresql, react"},"example":"https://databutler.dev/api/software-eol/timeline?product=python"},"GET /api/policy-rates":{"description":"Central-bank policy rates, verified 2026-10-03 against the banks' own pages: Bank of England Bank Rate, US Federal Reserve federal funds target range (lower/upper bound), ECB deposit facility, main refinancing and marginal lending rates — each with effectiveFrom, decisionDate and meeting, previous level, latest decision, next scheduled decision and the decision press release. Committed data (not a live proxy), re-verified within 45 days and after each decision.","params":{"bank":"boe | fed | ecb | all"},"example":"https://databutler.dev/api/policy-rates?bank=boe"},"GET /api/us/rates":{"description":"US federal rates and thresholds for tax year 2026, verified 2026-10-03 against the IRS revenue procedures and notices and SSA's Federal Register notice: income-tax rate schedules (bracket rows) and standard deduction, Social Security wage base and rates, Medicare and Additional Medicare Tax, retirement-plan and IRA limits, HSA/HDHP limits, estate and gift exclusions — each figure with source, quote, verifiedDate and the prior-year value. Committed data (not a live proxy), refreshed annually at the IRS release window.","params":{"category":"one of income-tax, social-security, medicare, retirement, hsa, estate-gift (omit to list)"},"example":"https://databutler.dev/api/us/rates?category=income-tax"},"GET /api/de/rates":{"description":"German tax and social-insurance figures for Veranlagungszeitraum 2026, verified 2026-10-03 against the consolidated statutes, the Bundesgesetzblatt and the BMG/DRV/BMAS pages: Grundfreibetrag and § 32a tariff zones, Solidaritätszuschlag, Beitragsbemessungsgrenzen, Bezugsgröße, Beitragssätze with employee/employer shares, Zusatzbeitrag, Mindestlohn (2026 and fixed 2027), Geringfügigkeitsgrenze, Kindergeld, Kinderfreibetrag, Pauschbeträge, Entfernungspauschale — each figure with German term, English label, source, quote, verifiedDate and prior value. Committed data (not a live proxy), refreshed annually when the next year's Verordnung is final.","params":{"category":"one of income-tax, social-insurance, minimum-wage, minijob, kindergeld, kinderfreibetrag, sparer-pauschbetrag, arbeitnehmer-pauschbetrag, entfernungspauschale (omit to list)"},"example":"https://databutler.dev/api/de/rates?category=social-insurance"},"GET /api/uk/vehicle-rules":{"description":"UK vehicle tax (VED) and MOT rules for 2026-27, verified 2026-10-04 against gov.uk: first-year VED by CO2 band (cars registered on or after 1 April 2017), the standard rate and Direct Debit surcharges, the expensive car supplement (£40,000 / £50,000 zero-emission threshold, annual amount, years), bands A–M for 2001–2017 cars, pre-2001 engine-size rates, electric-car rules since 1 April 2025, historic-vehicle exemptions, MOT due dates, maximum fees, early renewal, retests, exemptions and penalties — each figure with the quoted gov.uk line, source URL, effectiveFrom and its previous-year value.","params":{"category":"one of ved-first-year, ved-standard, ved-expensive-car, ved-2001-2017, ved-pre-2001, ved-electric, historic, mot, penalties (omit to list)"},"example":"https://databutler.dev/api/uk/vehicle-rules?category=ved-first-year"},"GET /api/uk/exam-dates":{"description":"UK exam dates verified 2026-10-04 against JCQ and the boards' own documents: results days, the summer 2027 exam timetable (JCQ window and the dates of GCSE Maths, English Language, Combined Science and A-level Maths papers at AQA, Pearson Edexcel, Cambridge OCR and WJEC/Eduqas, all final), entry deadlines with each board's late-fee dates, Scotland's results day and announced specification changes; each figure with source document, quoted row and the summer-2026 date as previous.","params":{"kind":"one of results, timetable, deadlines, spec-changes (omit to list)","board":"optional: jcq, aqa, pearson, ocr, wjec-eduqas, sqa, ofqual, dfe","qualification":"optional: gcse or a-level"},"example":"https://databutler.dev/api/uk/exam-dates?kind=timetable&board=aqa&qualification=gcse"},"GET /api/calendar":{"description":"Calendar facts for 2026–2028, verified 2026-10-04: kind=holidays — public holidays by region for uk, us, de, fr from gov.uk, OPM, the German Länder and calendrier.api.gouv.fr; kind=tax-year — start/end and periods for uk, us, au, in, ca, de, fr, br, pl with the statute quoted; kind=dst — daylight-saving rule and switch dates for uk, de, fr, us, au, br. Empty query lists coverage; unknown country/region/year answers covered:false with nearest.","params":{"country":"one of uk, us, de, fr, au, in, ca, br, pl or a name","kind":"holidays | tax-year | dst","year":"2026–2028 (optional)","region":"UK nation, German Land, metropole | alsace-moselle (optional)"},"example":"https://databutler.dev/api/calendar?country=uk&kind=holidays&year=2027&region=scotland"},"GET /api/calendar/next":{"description":"The next public holiday strictly after a date (default today) for uk, us, de, fr, with the three that follow; same snapshot as /api/calendar.","params":{"country":"one of uk, us, de, fr","from":"YYYY-MM-DD (optional)","region":"as for /api/calendar (optional)"},"example":"https://databutler.dev/api/calendar/next?country=de&from=2026-12-27&region=BY"},"GET /api/uk/gov-process":{"description":"UK government service facts verified 2026-10-04 against gov.uk: fees, processing times as stated, eligibility and required documents (each with the quoted sentence and source URL), the official start URL and dated changes since 2025.","params":{"service":"one of passport-renewal-adult, passport-child, driving-licence-renewal, provisional-licence, change-address, vehicle-tax-sorn, register-to-vote, register-birth, register-death, blue-badge, self-assessment, national-insurance-number, universal-credit, eu-settlement-scheme, evisa, eta, or an alias (passport, child-passport, brp, sorn, uc, euss, …); omit to list"},"example":"https://databutler.dev/api/uk/gov-process?service=passport"},"POST /api/mcp/uk-rates":"Remote MCP server — tool uk_rates_lookup.","POST /api/mcp/uk-exams":"Remote MCP server — tools exam_topic_paper, exam_spec_lookup, exam_paper_index.","POST /api/mcp/provenance":"Remote MCP server — tools domain_provenance, package_provenance.","POST /api/mcp/stats":"Remote MCP server — descriptive_stats, distribution, hypothesis_test, confidence_interval, bayes_update, linear_regression.","POST /api/mcp/vehicles":"Remote MCP server — uk_mot_reliability, uk_mot_vehicle_search (live via whatbreaks.uk), uk_recalls_for_model, uk_recalls_search (DVSA), fr_recalls_for_model, fr_recalls_search, jp_recalls_for_model, jp_complaints_summary, eu_safety_gate_recalls (stub).","POST /api/mcp/tax":"Remote MCP server — tool take_home_pay (live via the LifeByNumbers salary calculators).","POST /api/mcp/software-eol":"Remote MCP server — tools support_status, support_timeline (monthly snapshot of endoflife.date open data for 14 runtimes, operating systems, PostgreSQL and React).","POST /api/mcp/policy-rates":"Remote MCP server — tool policy_rate (Bank of England, Fed, ECB; committed data verified against the banks' own pages).","POST /api/mcp/us-rates":"Remote MCP server — tool us_rates_lookup (US federal rates and thresholds, tax year 2026; committed data read from the IRS and SSA documents).","POST /api/mcp/de-rates":"Remote MCP server — tool de_rates_lookup (German tax and social-insurance figures, Veranlagungszeitraum 2026; committed data read from the statutes and the Bundesgesetzblatt).","POST /api/mcp/uk-vehicle-rules":"Remote MCP server — tool uk_vehicle_rules_lookup.","POST /api/mcp/uk-exam-dates":"Remote MCP server — tool uk_exam_dates (results days, summer timetable paper dates, entry deadlines and late-fee dates, spec changes; JCQ, AQA, Pearson Edexcel, Cambridge OCR, WJEC/Eduqas, Scotland's results day).","POST /api/mcp/calendar":"Remote MCP server — tools calendar_facts, next_holiday (public holidays, tax years and daylight saving from the official lists and statutes, monthly snapshot).","POST /api/mcp/uk-gov-process":"Remote MCP server — tool uk_gov_process {service}: UK government service fees, steps, processing times and dated changes, verified against gov.uk."},"coverage":{"rates":"tax year 2026-27","exams":["AQA GCSE Physics (8463)","AQA GCSE Biology (8461)","AQA GCSE Chemistry (8462)","AQA GCSE Combined Science: Trilogy (8464)","AQA GCSE Mathematics (8300)"],"vehicles":{"ukMot":"530 UK model generations (live proxy to whatbreaks.uk)","ukRecalls":"4876 DVSA safety recalls launched since 2016-01-01, verified 2026-10-03","frRecalls":"1663 RappelConso automobile fiches, verified 2026-10-02","jpRecalls":"919 MLIT filings + 19659 owner complaints across 75 models, verified 2026-08-30","euSafetyGate":"stub"},"tax":{"uk":"GBP, tax year 2025/26 (live via lifebynumbers.net)","us":"USD, tax year 2026 (live via lifebynumbers.net)","ca":"CAD, tax year 2026 (live via lifebynumbers.net)","au":"AUD, tax year 2026-27 (live via lifebynumbers.net)","in":"INR, tax year FY 2026-27 (live via lifebynumbers.net)","br":"BRL, tax year 2026 (live via lifebynumbers.net)","pl":"PLN, tax year 2024/2025 (live via lifebynumbers.net)","fr":"EUR, tax year 2024 (live via lifebynumbers.net)","de":"EUR, tax year 2026 (live via lifebynumbers.net)","es":"not computed upstream — covered:false"},"softwareEol":"nodejs, python, ubuntu, debian, android, ios, macos, windows, oracle-jdk, go, ruby, php, postgresql, react: 340 release cycles from endoflife.date (MIT), verified 2026-10-03","policyRates":{"boe":"Bank of England Bank Rate: 3.75% from 2025-12-18, verified 2026-10-03, next decision 2026-11-05","fed":"US Federal Reserve Federal funds target range: 3.75 / 4% from 2026-09-17, verified 2026-10-03, next decision 2026-10-28","ecb":"European Central Bank Key ECB interest rates: 2.5 / 2.65 / 2.9% from 2026-09-16, verified 2026-10-03, next decision 2026-10-29"},"usRates":"tax year 2026, 6 categories, verified 2026-10-03; federal only","deRates":"Veranlagungszeitraum 2026, 9 categories, verified 2026-10-03; federal law only (no Kirchensteuer, Lohnsteuerklassen, Gewerbesteuer)","ukVehicleRules":"tax year 2026-27: 9 categories, verified 2026-10-04","ukExamDates":"results, timetable, deadlines, spec-changes for jcq, aqa, pearson, ocr, wjec-eduqas, sqa, ofqual, dfe; summer 2027 (final at all four boards), November 2026, summer 2026 as previous; verified 2026-10-04","calendar":"uk, us, de, fr holidays (748 entries), 9 tax-year countries, 6 DST countries, 2026/2027/2028, verified 2026-10-04","ukGovProcess":"16 services, verified 2026-10-04"},"protocol":{"name":"verified-changes/0.1","specification":"https://databutler.dev/protocol","discovery":"https://databutler.dev/.well-known/changes.json","schema":"https://databutler.dev/schema/changes.v0.json"},"privacy":"https://databutler.dev/privacy","attribution":"databutler.dev","docs":"https://databutler.dev/api","note":"Verified reference data for AI agents (UK, US and German rates, exam specs, provenance, statistics, vehicles, software support, policy rates). Every figure carries source + verifiedDate."}