The US tariff API with a source for every dollar.
Send an HTS code, a country of origin and a value. Get every US import duty and fee that applies, from the tariff schedule and Sections 301, 232, 201 and 338 to the entry fees, each with its official, dated source.
One request, every duty and fee
curl -X POST "https://api.tarifftrust.com/v1/estimates" \
-H "Authorization: Bearer $TARIFFTRUST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hts": "6109.10.00.12",
"origin": "CN",
"customs_value": "10000"
}'
Official clients: pip install tarifftrust for Python, npm install tarifftrust for Node.js, with examples on GitHub.
- Each amount names its source: the line of the tariff schedule, the Chapter 99 heading or the fee schedule, with its date.
- The measures that apply together are added up, each on its own line, with the base it is calculated on.
- A fact nobody gave is taken in its ordinary case and named, with what each other answer would change.
- A whole declaration pays its merchandise processing and harbor maintenance fees once, as on the entry.
- A saved estimate keeps its inputs, its data and its engine version: replay it, export its proof.
What you can build
- Landed cost in an ERP
- The duties and fees of each item and each purchase order in your inventory or ERP system, with declarations that count the fees once.
- Seller and e-commerce tools
- The US duty of the products whose HTS code you know, a whole catalog at a time with batches of up to 200 products.
- Freight and customs quotes
- The duties and fees of a shipment in a quote, line by line, each with its source to show your customer.
- Sourcing decisions
- The same product from several countries in one batch, and its history at every change of the tariff.
- AI agents
- The same operations as tools of an MCP server, for Claude, ChatGPT and other agents.
Operations
| Operation | Route |
|---|---|
| Estimate one product | POST /v1/estimates |
| Estimate up to 200 products | POST /v1/estimates/batch |
| Estimate a whole import declaration | POST /v1/estimates/entry |
| Estimate one product at every change of the tariff | POST /v1/estimates/history |
| List the saved estimates | GET /v1/saved-estimates |
| Calculate and save an estimate | POST /v1/saved-estimates |
| Read a saved estimate | GET /v1/saved-estimates/{id} |
| List the trade agreements | GET /v1/agreements |
| List the questions an estimate may ask | GET /v1/facts |
| Search the US tariff schedule | GET /v1/hts |
| Read one line of the US tariff schedule | GET /v1/hts/{code} |
| Read the status and the coverage of the data | GET /v1/status |
Described in OpenAPI at https://api.tarifftrust.com/v1/openapi.json; every change of the description is listed in the changelog.
MCP server
Connect a Streamable HTTP client to https://api.tarifftrust.com/mcp/ with your API key as a Bearer token: its tools are the operations of the API under the same names. Connect an MCP client.
Plans
The API and the MCP server are included in the Pro plan, with a 14-day free trial. Each estimate counts once in the plan's quota, whatever the number of products of a batch or lines of a declaration; reading the catalog, the saved estimates and the status is not counted. See the plans.
Questions
- Does the API find the HTS code?
- No: TariffTrust never classifies products. You send the code; the HTS explorer helps you find it.
- What does it cover?
- The US tariff schedule, Sections 301, 232, 201 and 338, the trade agreements and the entry fees. The coverage page lists what is calculated, the limits page what is not.
- How fresh is the data?
- The official sources are checked every 6 hours, and each answer names the data it comes from. The status page shows when they were last checked.
- Is an estimate a customs decision?
- No: an informational estimate, not a customs determination.