GET /tariff/{code} · /tariff?q=

Tariff API

Pass a code and where it ships from. Get the stacked US duty.

You have a code and where it ships from. Stacked US duty from that country.

Try itorigin=CN

hts

The code you asked about, normalized with dots (8471.30.01.00)

description

The schedule line, verbatim

lineage

Parent descriptions from the schedule outline, outermost first. Empty for top-level headings

units

Units of quantity (No., kg, doz.). Empty when the schedule lists none

general

Column 1 general rate of duty, verbatim. Most countries

special

Column 1 special rate, verbatim. Free trade agreements and preference programs

other

Column 2 rate, verbatim. The statutory rate

revision

The official release that answered (2026HTSRev17)

deep.origin

The origin country the measures were resolved for

deep.effective_rate

Composed ad valorem percent when the base rate and every duty-imposing measure are clean percentages that stack. Compound or conditional parts leave this null. The measure rows still ship

deep.measures

Every Chapter 99 tariff measure that applies to this code from this origin, verbatim. heading, description, rate, from, until. Exclusions and carve-outs ride as rows with their expiry

1

Pass a code and origin

Deep plus origin resolves every Chapter 99 measure that applies from that country, plus a composed effective rate.

2

Or look up the line

4 to 10 digits, dots optional. Description, rates, units, lineage, and the revision that answered.

3

Or search the schedule

?q= searches descriptions. Horses finds Purebred breeding animals.

2026HTSRev17.

Start is $20/mo. Lookup and duty resolution ride pooled requests. No per-resolve meter.

2026HTSRev17
serving revision
29k+
schedule lines

US only. Pass an HTS code, 4 to 10 digits, dots optional. You get the schedule line: description, general, special, and column 2 duty rates, units, parent descriptions, and the official revision that answered. Search by product with ?q= when you have a name, not a code.

Deep adds duty resolution. Pass an origin country and get every Chapter 99 tariff measure that applies, verbatim, plus a composed effective rate.

RESPONSE

$ curl "https://api.parseapi.com/tariff/8471.30.01.00" \
  -H "X-API-Key: YOUR_API_KEY"

// 200 · ~37ms US · ~100ms worldwide
{
  "hts": "8471.30.01.00",
  "description": "Portable automatic data processing machines, weighing not more than 10 kg, consisting of at least a central processing unit, a keyboard and a display",
  "lineage": ["Automatic data processing machines and units thereof; magnetic or optical readers, machines for transcribing data onto data media in coded form and machines for processing such data, not elsewhere specified or included:"],
  "units": ["No."],
  "general": "Free",
  "special": null,
  "other": "35%",
  "revision": "2026HTSRev17"
}

Response fields

hts
The code you asked about, normalized with dots (8471.30.01.00)
description
The schedule line, verbatim
lineage
Parent descriptions from the schedule outline, outermost first. Empty for top-level headings
units
Units of quantity (No., kg, doz.). Empty when the schedule lists none
general
Column 1 general rate of duty, verbatim. Most countries
special
Column 1 special rate, verbatim. Free trade agreements and preference programs
other
Column 2 rate, verbatim. The statutory rate
revision
The official release that answered (2026HTSRev17)
deep.origin
The origin country the measures were resolved for
deep.effective_rate
Composed ad valorem percent when the base rate and every duty-imposing measure are clean percentages that stack. Compound or conditional parts leave this null. The measure rows still ship
deep.measures
Every Chapter 99 tariff measure that applies to this code from this origin, verbatim. heading, description, rate, from, until. Exclusions and carve-outs ride as rows with their expiry
lines
Search results for ?q=. Up to 20 tariff lines, best match first, each with hts, description, and general

QUESTIONS

When do I use which?
Origin resolves stacked duty from a country. A code looks up the schedule line. A product name searches the schedule.
Is this worldwide?
No. This is the US import schedule. Other countries keep their own tariffs.
What is an HTS code?
The Harmonized Tariff Schedule number that classifies every product imported into the US. Ten digits at full precision. The code sets the duty rate.
How fresh are the rates?
Every response names the official revision that answered it. When a new revision publishes, the whole schedule refreshes and the revision field moves.
What does it cost?
Start is $20 a month. Lookup and duty resolution ride pooled requests. No per-resolve meter.
What does deep add?
Duty resolution. Pass an origin country and get every Chapter 99 tariff measure that applies to that code from that origin, verbatim, with effective dates and expiries. Section 301, IEEPA, and reciprocal actions live in Chapter 99.
When is effective_rate filled?
When the base rate and every duty-imposing measure are clean ad valorem percentages that stack. Compound, conditional, and overlapping catchall programs leave the rate null. The measure rows still ship.
Is this a customs ruling?
This is the published schedule. Classification and the entry filing stay with your broker.
Can I search by product?
Yes. GET /tariff?q=sunglasses searches the schedule descriptions, outline context included, and returns up to 20 lines with their rates.

SPEED

How long a lookup takes.

US

37ms

EU

83ms

APAC

143ms

LatAm

18ms

ME

96ms

See live status →

Coverage

Every line of the current official US schedule. Refreshed the day a new revision publishes.