Developers
The Tariff Intelligence API
The engine behind the SenseAhead Tariff Simulator, available to your own systems. Send an HTS code, origin, destination, value and entry date, and get the full duty, fee and landed cost breakdown back as JSON.
curl -X POST "$SENSEAHEAD_API_URL/tariff-simulator" \
-H "Authorization: Bearer $SENSEAHEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"htsCode": "8504.40.9520",
"declaredValue": 10000,
"declaredQuantity": 1,
"countryOfOrigin": "Viet Nam",
"countryOfOriginIso2": "VN",
"countryOfDestination": "United States",
"customsClearanceDate": "2026-10-08",
"modeOfTransport": "ocean",
"merchandiseProcessingFee": 0.3464,
"harborMaintenanceFee": 0.125
}'import os, requests
resp = requests.post(
f"{os.environ['SENSEAHEAD_API_URL']}/tariff-simulator",
headers={"Authorization": f"Bearer {os.environ['SENSEAHEAD_API_KEY']}"},
json={
"htsCode": "8504.40.9520",
"declaredValue": 10000,
"declaredQuantity": 1,
"countryOfOrigin": "Viet Nam",
"countryOfOriginIso2": "VN",
"countryOfDestination": "United States",
"customsClearanceDate": "2026-10-08",
"modeOfTransport": "ocean",
"merchandiseProcessingFee": 0.3464,
"harborMaintenanceFee": 0.125
},
)
print(resp.json()["data"]["landedCost"]) # 11297.14const res = await fetch(`${process.env.SENSEAHEAD_API_URL}/tariff-simulator`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SENSEAHEAD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"htsCode": "8504.40.9520",
"declaredValue": 10000,
"declaredQuantity": 1,
"countryOfOrigin": "Viet Nam",
"countryOfOriginIso2": "VN",
"countryOfDestination": "United States",
"customsClearanceDate": "2026-10-08",
"modeOfTransport": "ocean",
"merchandiseProcessingFee": 0.3464,
"harborMaintenanceFee": 0.125
}),
});
const { data } = await res.json();
console.log(data.landedCost); // 11297.14{
"status": true,
"statusCode": 200,
"data": {
"htsCode": "8504.40.9520",
"description": "With a power output exceeding 50 W but not exceeding 150 W",
"declaredValue": 10000,
"totalDutyAmount": 1250,
"totalDutyPercentage": 12.5,
"totalFeesAmount": 47.14,
"landedCost": 11297.14,
"tariffBreakdowns": [
{
"label": "Column 1 General",
"applicableHtsCode": "8504.40.9520",
"appliedRate": 0,
"amount": 0
},
{
"label": "Section 301 (Forced-Labor (FLIP))",
"applicableHtsCode": "9903.05.84",
"appliedRate": 12.5,
"amount": 1250
}
],
"applicableFees": [
{
"label": "Harbor Maintenance Fee (HMF)",
"appliedRate": 0.125,
"amount": 12.5
},
{
"label": "Merchandise Processing Fee (MPF)",
"appliedRate": 0.3464,
"amount": 34.64
}
]
}
}- destinations
- 33destinations
- countries of origin
- 250countries of origin
- tariff codes
- 90,000+tariff codes
What every response includes
The same breakdown the Tariff Simulator shows, structured for your code.
Duty breakdown by line
Base duty and every additional duty that applies, each with the HTS or Chapter 99 heading it comes from.
Fees and import taxes
Merchandise Processing and Harbor Maintenance fees for US entries, and destination taxes such as GST, IGST, IVA and VAT.
Free trade agreement comparison
Preferential and standard rates side by side wherever an agreement applies to the route.
Rates by entry date
The rates and measures in force on the customs clearance date you send, not just today’s.
Landed cost totals
Total duty, total fees, effective duty rate and landed cost in one response.
Notes and assumptions
Plain-language notes on how the result was reached, so your users can see why a measure applied.
Get API access
Access is set up with our team, so we can fit it to your use case.
Request access
Tell us about your use case and expected volume using the form below.
Talk to our team
We get in touch to agree scope and set up your account.
Get your API key
Receive your credentials and endpoint, then start sending requests.