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

Tariff API

From an HTS code to the duty rates and conditions behind it.

Try itorigin=CN

Response/tariff/8471300100?deep=true&origin=CN

Run a lookup to see the response.

1M requests · $20/mo. Get started

What comes back.

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

deep.units

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

general

Column 1 general rate of duty, verbatim. Most countries

deep.special

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

deep.other

Column 2 rate, verbatim. The statutory rate

revision

The official schedule revision used for this answer

deep.origin

The origin country the measures were resolved for

deep.effective_rate

For an 8- or 10-digit code, a combined percentage only when matched rates compose without unresolved conditions. Otherwise null; read the measure rows.

deep.measures

Chapter 99 measures matched by code and origin. Each keeps its description, rate, effective dates, and conditional flag. Read the text for product and entry requirements.

1

Pass a code and origin

Deep plus origin matches Chapter 99 measures. Dates and conditions stay attached to each one.

2

Or look up the line

4 to 10 digits, dots optional. Description, base general duty, lineage, and the revision that answered.

3

Or search the schedule

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

Coverage

The official US schedule. New revisions checked daily. The revision used appears in every answer.

The rate comes with the reasoning.

Keep the published rate, matched measures, and unresolved conditions together.

revision
The edition behind the answer. New official editions are checked daily.
from · until
The effective dates attached to a measure. Future and expired measures are excluded.
conditional: true
Product or entry conditions need review. The combined effective_rate stays null.

Use an 8- or 10-digit code for a duty total. Classification, preference eligibility, and the customs filing need their own review.

2026HTSRev19
serving revision
29k+
schedule lines

US only. Pass an HTS code, 4 to 10 digits, dots optional. Get the description, general base duty, parent descriptions, and serving revision. Search by product with q when you have a name. Core lookup and search use pooled requests on every plan.

Paid deep adds statistical units and the special and column 2 schedule rates. Pass an origin country with deep to match Chapter 99 measures, including effective dates and conditions. An effective rate is returned only for an 8- or 10-digit code when the components combine without unresolved conditions. There is no separate tariff meter.

SPEED

How long /tariff takes.

Median time to first byte over the last seven days. Warm requests, measured every 30 minutes. Live verification and other request variants can take longer.

US

19ms

EU

21ms

APAC

39ms

LatAm

28ms

ME

94ms

See live status →

Make your first request.

One key works across the APIs. Copy a request in your language and get JSON back.

curl "https://api.parseapi.com/tariff/8471.30.01.00" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"
// Example response · 200
{
  "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:"],
  "general": "Free",
  "revision": "2026HTSRev18"
}

API referenceSDKsKeys and authentication

Every response field

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
general
Column 1 general rate of duty, verbatim. Most countries
revision
The official schedule revision used for this answer
lines
Search results for ?q=. Up to 20 tariff lines, best match first, each with hts, description, and general

Deep fields

deep.units
Units of quantity (No., kg, doz.). Empty when the schedule lists none
deep.special
Column 1 special rate, verbatim. Free trade agreements and preference programs
deep.other
Column 2 rate, verbatim. The statutory rate
deep.origin
The origin country the measures were resolved for
deep.effective_rate
For an 8- or 10-digit code, a combined percentage only when matched rates compose without unresolved conditions. Otherwise null; read the measure rows.
deep.measures
Chapter 99 measures matched by code and origin. Each keeps its description, rate, effective dates, and conditional flag. Read the text for product and entry requirements.
deep.measures[].conditional
Product or entry conditions require review. The combined effective_rate stays null.

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?
New official revisions are checked daily. Every response names the revision used. Measures with future start dates or past expiry dates are excluded. Changes announced between schedule revisions may not yet appear.
What does it cost?
Core lookup and search use one pooled request on every plan. Paid deep adds detailed schedule columns and origin-based duty measures. No separate tariff meter.
What does deep add?
Statistical units and the special and column 2 schedule rates. Add origin to match Chapter 99 measures, including rates, dates, and conditional flags. Paid plans. Matching a row does not establish that you meet its conditions.
When is effective_rate filled?
For an 8- or 10-digit code, when the base rate and matched measures are clean percentages that stack without unresolved conditions. Compound rates, conditional measures, and overlapping catchall programs leave the rate null. Read the measure rows to see why.
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.

Find the duty.

US tariff codes on every plan. Origin-based duty details on paid plans.

Start includes 1M API requests a month for $20/mo.