14-day free trial

The US duty and tariff API for landed cost.

One REST call returns the fully-stacked rate for any HTS code and country of origin. Section 301, 232, IEEPA, and Chapter 99, resolved in the right legal order. USTR & CBP sourced, updated daily.

Not a developer? Look up any code in the dashboard.

How it works

From signup to first call in under 10 minutes.

01

Get an API key

Sign up and start a 14-day trial. Full access from minute one. Cancel before day 14 and pay nothing.

export TARIFFS_API_KEY=sk_live_...
02

Call /resolve

Pass an HTS code and country of origin. Get base duty plus every applicable Chapter 99 measure stacked in the right legal order.

GET /api/v1/tariffs/resolve?hts=…&origin=CN
03

Show landed cost

Drop the resolved rate into your checkout, cart, ERP, or quoting flow. JSON in, money out. Use as_of for historical rates.

duty = value * total_resolved_ad_valorem_rate
swipe
What's covered

Every layer of the US tariff stack. One source of truth.

Full data schema
CN China · Section 301 + IEEPA VN Vietnam · MFN CA Canada · USMCA MX Mexico · USMCA IN India · IEEPA specific KR Korea · KORUS JP Japan · MFN DE Germany · MFN BR Brazil · IEEPA specific TH Thailand · MFN
CN China · Section 301 + IEEPA VN Vietnam · MFN CA Canada · USMCA MX Mexico · USMCA IN India · IEEPA specific KR Korea · KORUS JP Japan · MFN DE Germany · MFN BR Brazil · IEEPA specific TH Thailand · MFN
For developers

The tariff API — one endpoint, deterministic JSON.

GET /api/v1/tariffs/resolve?hts=…&origin=… returns the base duty, every applicable Chapter 99 measure, a confidence score, and attempted candidates when the match isn't exact. Bulk endpoint accepts up to 200 codes per request. REST + JSON. No SDK required.

GET /api/v1/tariffs/resolve?hts=8541.10.00.80&origin=CN

// deterministic, no AI guessing
{
  "hts": "8541.10.00.80",
  "origin": "CN",
  "match_type": "exact",
  "match_level": "10",
  "confidence": 1.0,
  "base_duty": { "rate": "0%", "rate_type": "general" },
  "additional_measures": [
    { "program": "Section 301", "rate": "50%", "chapter_99_ref": "9903.91.05" }
  ],
  "warnings": [],
  "attempted_candidates": []
}
Watchlist

Track the codes you import. See the real duty.

Save the HTS codes and origins you actually import under. The watchlist shows the live, fully-stacked duty rate on each one, base plus every Section 301, 232, 122, and IEEPA layer, and the real dollar cost at your shipment value. Download a tariff sheet as a PDF or export the whole list to CSV.

  • Watch any HTS + origin

    Save the pairs that drive your landed cost.

  • Fully-stacked rate + dollar duty

    Base plus 301, 232, 122, and IEEPA, and the cost at your shipment value.

  • One-click PDF tariff sheet

    A clean sheet that leads with the stacked total, ready to send.

  • CSV export

    The whole watchlist in one download.

Track a code free Free account, no card. Change alerts rolling out soon.
Pricing

Plans that scale with your volume.

14-day free trial on every plan. Card required at signup, cancel any time before day 14 and pay nothing.

Basic
$49 /mo
  • 500 API calls per month
  • Single /resolve endpoint
  • Section 301, 232, IEEPA, Chapter 99 stacking
  • Historical rates with as_of
  • Confidence scores, warnings, match metadata
  • 25 watched codes + change alerts
  • 1 team seat
  • 50 AI assistant messages / mo
  • Standard rate limits
Start 14-day free trial
Card required · cancel before day 14
Most popular
Growth
$199 /mo
  • 10,000 API calls per month
  • Single + bulk /resolve (up to 200 HTS per request)
  • Section 301, 232, IEEPA, Chapter 99 stacking
  • Historical rates with as_of
  • Confidence scores, warnings, match metadata
  • 100 watched codes + change alerts
  • MCP server access
  • 2 team seats
  • 250 AI assistant messages / mo
  • Standard rate limits
Start 14-day free trial
Card required · cancel before day 14
Pro
$499 /mo
  • 100,000 API calls per month
  • Single + bulk /resolve (up to 200 HTS per request)
  • Section 301, 232, IEEPA, Chapter 99 stacking
  • Historical rates with as_of
  • Confidence scores, warnings, match metadata
  • Unlimited watched codes + change alerts
  • MCP server access
  • 10 team seats
  • 1,000 AI assistant messages / mo
  • Priority rate limits + support
Start 14-day free trial
Card required · cancel before day 14

Need higher volume or a custom SLA? Book a call.

How we source the data

Verified at every step.

Every rate we publish is pulled from official US trade publications, kept beside its raw source, audited by a separate AI pass, and re-tested before it ships. Traceable, audited, continuously tested.

  1. 1
    Ingestion Pulled from source

    Pulled directly from official publications. No spreadsheets. No scraping third-party sites. Every source row is preserved exactly as published.

  2. 2
    Source archive Kept unchanged

    Raw kept beside structured. Tagged to a numbered revision. We can reconstruct the rate on any past date.

  3. 3
    Structured parse Made machine-readable

    Raw duty text becomes structured rates. Every parsed value records how it was derived. Clean extractions stand apart from anything that needs review.

  4. 4
    Independent audit Second pass, AI

    A separate AI re-reads the source. Anything that does not match what we published gets flagged. Not the same system checking its own work.

  5. 5
    Regression tests Caught before ship

    Known lookups re-run on every update. Any failure is caught before it reaches a single customer.

The trust trail

Every rate is provable, audited, and continuously tested.

Stake a customs filing on it. We keep the receipts.

Live freshness layer
All systems green Synced 1 hour ago Audit pass rate 95.29% API lookups today 87
USTR · trade remedies CBP · CSMS & rulings ITC · HTS revisions ITA · ADCVD Federal Register
How we source and verify data →
Recent updates
Full changelog →
  • Jul 10
    88 word-only rate texts re-read as structured references
    Ninety headings express their duty entirely in words, with no number anywhere in the rate text. Our internal check for unread rates requi...
    Import
  • Jul 09
    201 base duty rates re-parsed from the USITC source text
    Duty rows whose rate text we could not previously read have been re-parsed through the current grammar and now carry structured component...
    Import
  • Jul 01
    HTS 2026HTSRev11 imported
    USITC published 2026HTSRev11 and it is now live in the API. 89 rates changed.
    Import
  • Jun 11
    HTS 2026HTSRev10 imported
    USITC published 2026HTSRev10 and it is now live in the API. 23 rates changed.
    Import
  • May 28
    Regulatory Change: over-applying Section 122
    Shipped a fix for roughly 100k HTS codes in Chapters 84 and 85 (computers, semiconductors, media) whose Section 122 product exemptions we...
    Regulatory
Questions, answered

You ask. We answer.

Can I calculate tariffs programmatically?

Yes. GET /api/v1/tariffs/resolve takes an HTS code and country of origin and returns the base duty plus every applicable Chapter 99 measure with rates, effective dates, and confidence scores. Bulk endpoint handles up to 200 codes per request. Pass as_of for historical rates. See /api-documentation.

Where does the data come from?

Every rate returned by Tariffs API comes from the official US Harmonized Tariff Schedule published by USITC, combined with USTR, CBP, and Federal Register notices for Section 301, 232, 122, and IEEPA measures. We never invent numbers.

How often is it updated?

Base HTS data is refreshed weekly against USITC's published schedule. Chapter 99 and trade-measure updates are captured daily from USTR and CBP notices. Breaking changes (new Section 301 rounds, IEEPA proclamations) are applied within 24 hours of publication.

Do you cover Section 301, Section 232, IEEPA, and reciprocal tariffs?

Yes. Section 301 (China), Section 232 (steel, aluminum, autos, semiconductors), Section 122 reciprocal duties, and IEEPA measures (including 2025 baseline, fentanyl-trafficking, Brazil/India-specific) are all resolved and stacked correctly on top of base HTS rates. Chapter 99 reference codes are resolved to numeric rates when available.

How does the 14-day free trial work?

Sign up with email and a card. You get full access to the API and every endpoint for 14 days. Cancel any time before day 14 and you're not charged. After day 14 the plan is $199/month. No long-term contract, cancel from the customer portal at any point.

What are the rate limits and infrastructure?

Pro is 500 requests per minute. Bulk /resolve handles up to 200 HTS per request with deduplication and caching, so a single bulk call counts as one API call against your monthly quota. Served from US-East on PostgreSQL with Redis caching. Enterprise customers get a contractual SLA.

How should I interpret the confidence score?

Every resolved measure includes a confidence score and a match type (exact, prefix, inherited). High confidence means the HTS code matched a measure directly. Medium or low means we inferred the match from a parent heading or a normalized variant — the JSON response includes attempted_candidates so you can verify. For anything low-confidence, cross-check with your broker or CBP.

Does Tariffs API replace a customs broker?

No. Tariffs API gives you accurate rate data and landed-cost calculations, but does not file entries, issue binding classification rulings, or act as a customs broker. Use it for checkout pricing, catalog pricing, compliance planning, and audit trails. Final classification and entry filing should go through a licensed customs broker.

Is this legal advice or a binding classification?

No. Data is for informational purposes. Final classification and duty determinations are made by US Customs and Border Protection (CBP). For binding rulings, request a CBP ruling letter. We tell you what the schedule says — CBP tells you what applies to your specific entry.

Start now

Ship landed cost at checkout this week.

Start your 14-day trial. Full access, all endpoints. Cancel before day 14 and pay nothing.

Higher volume or want a walkthrough first? Book a call.