GET /hts/{code}

HTS Code Lookup API

Turn an HTS code into its duty rate. And the tariff measures that hit it.

Try it

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). Rates change between releases, so every answer says which release is talking

deep.origin

The origin country the measures were resolved for

deep.effective_rate

Composed ad valorem percent, only when the base rate and every duty-imposing measure compose cleanly. Anything compound or conditional is null with the rows below. Null beats a guess

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 the code

4 to 10 digits, dots optional. Have a product instead? Search the schedule with ?q=.

2

Get the line

Description, duty rates verbatim, units, and the parent lineage so Other is never alone. Every answer names the revision that served it.

3

Deep resolves duty by origin

Pass an origin country and get every tariff measure that applies, verbatim, with a composed effective rate when the parts compose cleanly. Conditional means null, never a guess.

$199 a month elsewhere.

Core lookup on every plan. Start includes duty resolution.

29k+
schedule lines
500+
tariff measures resolved

Pass an HTS code, 4 to 10 digits, dots optional. You get the schedule line verbatim: description, the general, special, and column 2 duty rates, the units, and the lineage of parent descriptions so a leaf that says Other is never alone. Every response names the official revision that answered, because rates changed all year and an answer without a date is a guess. Search by product with ?q= when you have a thing, not a code.

Deep is the resolved answer: pass an origin country and get every Chapter 99 tariff measure that applies to that code from that origin, verbatim, with a composed effective rate when the components compose cleanly. Anything conditional or compound ships as rows and the composed rate stays null. The schedule as published, not a customs ruling. Your broker files the entry.

RESPONSE

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

// 200 · ~34ms US · ~124ms 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). Rates change between releases, so every answer says which release is talking
deep.origin
The origin country the measures were resolved for
deep.effective_rate
Composed ad valorem percent, only when the base rate and every duty-imposing measure compose cleanly. Anything compound or conditional is null with the rows below. Null beats a guess
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
codes
Search results for ?q=. Up to 20 lines, best match first, each with hts, description, and general

QUESTIONS

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. Rates changed all year, so an answer without a release name is a guess.
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, and the market charges $199 a month for this join.
Why is effective_rate sometimes null?
It composes only when the base rate and every duty-imposing measure are clean ad valorem percentages that stack. Compound rates, conditional measures, and overlapping catchall programs do not compose, so the rate is null and the rows carry the full story. Null beats a guess.
Is this a customs ruling?
No. This is the schedule as published. Classification of your product and the entry filing are your broker's job. New trade actions can also land by Federal Register notice between schedule revisions.
Can I search by product?
Yes. GET /hts?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

34ms

EU

60ms

APAC

148ms

LatAm

21ms

ME

124ms

See live status →

Coverage

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