US Import Duty & Tariff Calculator (HTS + Origin)
Pricing
Pay per usage
US Import Duty & Tariff Calculator (HTS + Origin)
Bulk-resolve HTS codes to the real effective US duty rate by country of origin. Stacks MFN base + Section 301, 232 and 122 into one landed rate. A hardened resolver, not a scraper.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
TariffsAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Get the real effective US import duty rate for any HTS code and country of origin, in bulk. This Actor stacks the base MFN rate and every applicable Chapter 99 additional measure, Section 301, Section 232, Section 122, and IEEPA reciprocal, into one landed duty rate per line.
Most tariff tools on the market scrape the USITC schedule and hand you the base rate plus a "Section 301: yes/no" flag, leaving you to work out the actual number. This one resolves the effective rate by origin: which measures apply to your country, which are exempted or suppressed, and what they add up to. It is a hardened tariff resolver behind an API, not a page scraper.
Why this is different
A raw HTS scrape tells you 8542.31.00.40 has a Column 1 rate of Free. It will not tell you that, from China, that same code carries a Section 301 List measure and a stacked additional duty, or that the Section 122 surcharge is exempted for a Section 232-covered sector. The gap between the base rate and the effective rate is where import costs actually live, and it is exactly what this Actor computes.
- Correct stacking, by origin. MFN base + 301 + 232 + 122 + IEEPA, with the country-specific Chapter 99 codes, resolved for the origin you enter, not just flagged.
- Exemptions and suppression handled. Annex II carve-outs, USMCA carve-outs, Section 232 stacking rules, and country-scope mismatches are applied, so a measure that does not apply to your origin is not charged.
- Honest about hard rates. Formula, specific, compound and reference rates (a jewel count, a metal-content charge, a "see U.S. note" pointer) are flagged, never silently coerced to 0%. A null rate means "not a plain percentage," not "duty-free."
- Non-NTR origins. Cuba, North Korea, Russia and Belarus resolve at the Column 2 statutory rate, with Section 122 still stacking on top.
- Confidence and warnings on every line, so you know when to double-check.
What you get per line
One dataset item per (HTS code, origin) pair:
Identity
hts,origin,as_of,resolved_hts,match_type
The headline number
total_effective_ad_valorem_rate_percent, the base plus all applicable additional measures, as a whole-number percenteffective_rate_is_complete, true when that number is a complete, known figure
The breakdown
base_ad_valorem_rate_percent,base_rate_type,base_column(general / special / column2),base_agreement,base_raw_rateadditional_ad_valorem_rate_percent, the sum of applicable Chapter 99 measuressection_301_rate_percent,section_232_rate_percent,section_122_rate_percent,ieepa_rate_percent, broken out for spreadsheetsapplied_measures[], each withprogram,program_detail,rate_percent,chapter_99_code,country_specific_chapter_99_code
Compliance signals
suppressed_measures_count,inapplicable_measures_countconfidence_score,warnings[],noticedetails_url, a deep link to the full audit trail (every suppressed measure, exempting Chapter 99 code, and source authority) on the Tariffs API dashboard
On a miss
error(e.g.HTS code not found) andsuggested_codes[], real sibling codes sharing the 6-digit heading, so a typo self-corrects
Example input
Price two codes against two origins (a four-line origin comparison):
{"htsCodes": ["8473.30.11.80", "8542.31.00.40"],"origins": ["CN", "VN"],"maxResults": 500}
Or price a real product catalog where each SKU has its own origin:
{"pairs": [{ "hts": "8473.30.11.80", "origin": "VN" },{ "hts": "7318.15.80.65", "origin": "CN" },{ "hts": "9503.00.00.90", "origin": "RU" }]}
asOf (YYYY-MM-DD) resolves rates for a specific date; leave blank for today. includeInapplicableMeasures also surfaces measures that matched the HTS but do not apply to the origin, useful for what-if sourcing.
Example output
{"hts": "8542.31.00.40","origin": "CN","as_of": "2026-07-16","resolved_hts": "8542.31.00","match_type": "EXACT","total_effective_ad_valorem_rate_percent": 25,"base_rate_type": "ad_valorem","base_ad_valorem_rate_percent": 0,"base_column": "general","additional_ad_valorem_rate_percent": 25,"section_301_rate_percent": 25,"section_232_rate_percent": null,"section_122_rate_percent": null,"ieepa_rate_percent": null,"effective_rate_is_complete": true,"applied_measures": [{"program": "section_301","program_detail": "section_301_lists_1_4a","rate_percent": 25,"chapter_99_code": "9903.88.03","country_specific_chapter_99_code": "9903.88.03"}],"suppressed_measures_count": 0,"confidence_score": 1,"warnings": [],"details_url": "https://tariffsapi.com/lookup?hts=8542.31.00.40&origin=CN"}
Use cases
- Landed-cost modeling for a product catalog across candidate sourcing countries
- Customs-broker and importer duty verification before an entry is filed
- Trade-compliance audits across a full SKU list, with a confidence score to triage
- Sourcing / what-if analysis: same HTS, many origins, one comparison table
Pricing
Pay per result: $5.00 per 1,000 resolved lines. You only pay for lines actually written to your dataset, including error lines that return suggested_codes. New Apify accounts get free monthly platform credits to trial it.
Notes
Data is resolved by Tariffs API against USITC HTSUS, USTR Section 301 notices, CBP CSMS messages, and Federal Register proclamations, refreshed on a rolling schedule. This Actor returns the effective rate and the applied measures; the full compliance audit trail, every suppressed measure with its exempting Chapter 99 code, the source authority per measure, historical time-travel, the AI explanation, and change-alert monitoring, lives on the Tariffs API dashboard. Follow the details_url on any line.
This resolution is advisory only. It is not a customs ruling and does not classify products into HTS codes; you bring the code, we report the rate. For a binding classification, consult a licensed customs broker or CBP.
Setup
This Actor calls the Tariffs API on your behalf using a single account key. Set TARIFFS_API_KEY as a secret environment variable; the key must be on a Growth or Pro plan (batch access). Get one at tariffsapi.com, 14-day free trial, no card required.