GET /tariff/{code} · /tariff?q=
Tariff API
From an HTS code to the duty rates and conditions behind it.
Try itorigin=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
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.