x402-bizday: narrow pay-per-call endpoints for AI agents. US dates and business days, NOAA storm reports, Census geocoding, VIN decoding and ID checksum validation. Price: 0.005 USD per call, paid in USDC on Base mainnet with the x402 protocol (https://x402.org). No account, no API key. An unpaid request gets HTTP 402 listing each payment option (network, USDC asset, amount, payTo); an x402 client (for example @x402/fetch) picks one, pays and retries automatically. Requests that fail with 400, 404 or 502 are not charged. All endpoints are GET and return JSON. Dates are YYYY-MM-DD. calendar is federal (default), nyse or weekends-only; /v1/holidays accepts federal or nyse only. GET https://x402-bizday.usdata-api.workers.dev/v1/business-days?start=2026-11-02&end=2026-11-13&calendar=federal&inclusive=true Business days between two dates, US federal or NYSE holiday calendar, inclusive or exclusive of both ends. params: start, end, calendar (optional), inclusive (optional) GET https://x402-bizday.usdata-api.workers.dev/v1/add-business-days?date=2026-11-06&days=5&calendar=federal Add or subtract business days to a date (due date, SLA deadline, settlement date), US federal or NYSE holidays. params: date, days, calendar (optional) GET https://x402-bizday.usdata-api.workers.dev/v1/is-business-day?date=2026-11-26&calendar=federal Is a date a business day: check one date against weekends and US federal or NYSE holidays, with the reason. params: date, calendar (optional) GET https://x402-bizday.usdata-api.workers.dev/v1/holidays?year=2026&calendar=federal US federal holidays for a year, or NYSE market holidays, with observed closure dates. params: year, calendar (optional) GET https://x402-bizday.usdata-api.workers.dev/v1/date-diff?start=2026-01-15&end=2026-11-03 Difference between two dates in days, weeks, months and years, with a years/months/days breakdown. params: start, end GET https://x402-bizday.usdata-api.workers.dev/v1/convert-timezone?datetime=2026-11-03T09:30:00&from=America/New_York&to=Asia/Tokyo Convert a date-time between IANA time zones, daylight saving included. params: datetime, from (optional), to GET https://x402-bizday.usdata-api.workers.dev/v1/storm-reports?lat=37.08&lon=-94.51&radius_mi=1&start=2011-05-22&end=2011-05-22 Hail and wind reports near a location (NOAA SPC), with tornado reports, over up to 31 days. params: lat, lon, radius_mi, start, end GET https://x402-bizday.usdata-api.workers.dev/v1/geocode?address=1600%20Pennsylvania%20Ave%20NW,%20Washington,%20DC Geocode a US address to county FIPS and census tract, with latitude/longitude (US Census Bureau). params: address GET https://x402-bizday.usdata-api.workers.dev/v1/vin?vin=1HGCM82633A004352 Decode a vehicle VIN into make, model, year, body, engine and plant (NHTSA vPIC). params: vin GET https://x402-bizday.usdata-api.workers.dev/v1/validate?type=iban&value=GB82%20WEST%201234%205698%207654%2032 Validate a US ABA routing number, IBAN, ISBN, UPC or EAN by format and check digit. params: type, value Example response of /v1/business-days: {"start":"2026-11-02","end":"2026-11-13","calendar":"federal","inclusive":true,"business_days":9,"holidays":[{"date":"2026-11-11","name":"Veterans Day","holiday_date":"2026-11-11"}]} Every endpoint's parameters, response schema and example response are in GET /openapi.json. Errors are JSON like {"error":"..."}: 400 invalid input, 404 no result (geocode, vin), 502 the data source failed. None are charged. Free: GET / (this page), GET /health, GET /openapi.json, GET /.well-known/x402, GET /icon.png Data sources (fetched live per call, no API keys) storm-reports NOAA Storm Prediction Center daily storm reports (spc.noaa.gov/climo/reports): hail size in inches, wind speed in mph, tornadoes (the daily files carry no tornado rating). From 2011-07-01 the de-duplicated "filtered" files are used (the raw file if a filtered one is unavailable), before that the raw ones. time_utc is the report time; a report day runs 12:00 UTC to 11:59 UTC next day. missing_days lists days SPC has no file for. geocode US Census Geocoder, current benchmark and vintage. 404 when the address does not match. vin NHTSA vPIC DecodeVinValues. A VIN whose check digit is wrong is rejected with 400 before any lookup. error_code 0 means NHTSA decoded it cleanly; other codes are NHTSA's warnings. validate Pure computation: ABA 3-7-1 checksum, IBAN mod 97 with country length, ISBN-10/13, UPC-A, EAN-8/13. An invalid number is a normal 200 answer with valid=false and the reason. Calendars federal 11 US federal holidays (5 USC 6103): New Year's Day, Martin Luther King Jr. Day, Washington's Birthday, Memorial Day, Juneteenth (from 2021), Independence Day, Labor Day, Columbus Day, Veterans Day, Thanksgiving, Christmas. A Saturday holiday is observed the Friday before, a Sunday holiday the Monday after. nyse NYSE full-day closures: the same list minus Columbus Day and Veterans Day, plus Good Friday; Juneteenth from 2022. A Saturday New Year's Day closes nothing (NYSE Rule 7.2); other Saturday holidays close the Friday before. Each holiday has "date" (the day closed) and "holiday_date" (its statutory date). /v1/holidays follows OPM's convention: a Saturday January 1 is listed under the following year with date = the prior December 31. Federal/NYSE calendars cover 1998-2199. Not included: Inauguration Day (DC area only) and unscheduled NYSE closures (national days of mourning, emergencies) because they cannot be computed from a rule.