The US Harmonized Tariff Schedule is public — USITC publishes it and even has a REST API. The problem is everything around it: the schema shifts without notice, field names are inconsistent across chapters, and there's no reliable way to know when something changed unless you run your own diff.
I built TradeFacts.io to sit between USITC and your application. It serves the full HTS schedule (32,295 records) as a normalized JSON API with a stable schema, nightly updates, and change detection.
What it adds on top of raw USITC data:
• Versioned diffs — nightly change detection with a full history endpoint
• Webhook push — Tier 2 notifies your endpoint when tariff codes change, so you don't poll
• Schema stability — when USITC changes their format upstream, we absorb it; your integration keeps working
• Safety checks — the nightly pipeline aborts if the incoming dataset drops below 30,000 records, so a partial USITC response never overwrites live data
Auth is a single API key header. The target buyer is engineering teams at customs brokerage software companies and trade compliance SaaS vendors who are currently maintaining their own scraper or polling USITC directly.
Pricing is $199/month (Tier 1, full dataset) and $399/month (Tier 2, adds webhooks and change history). 30-day free trial, no credit card.
Docs:
https://tradefacts.io/docs.html
Happy to answer questions about the data pipeline, HTS structure, or why I made certain schema decisions.