Full US HTS (32,295 records) and Canada CCT (22,461 records), normalized to a stable JSON schema Nightly change detection — diff endpoint shows exactly what changed and when Webhook push on change (Tier 3) so you don't poll Pipeline safety: aborts if incoming record count drops below threshold, so a partial upstream response never overwrites live data Single API key, same auth for both datasets
The problem I'm solving: USITC has a public API but the schema shifts without notice. The CBSA publishes the Canadian schedule as a zipped Access database. Neither gives you change history. Both require you to maintain your own pipeline. Endpoints follow the same pattern for both datasets: GET /api/hts/{code} and GET /api/ca/{code}, same schema shape, same auth. Pricing: $199/month (US only), $299/month (US + Canada), $399/month (US + Canada + webhooks). 30-day free trial, no credit card. Docs: https://tradefacts.io/docs.html Happy to get into the pipeline architecture, the CBSA Access database extraction, or the HTS schema inconsistencies that make this annoying to maintain yourself.