Tariff Calculator
Calculate Tariff
POST
/v1/tariffs/calculate$0.05 per callCalculate total U.S. import duty and landed cost for a single shipment. Stacks all applicable duty layers.
Send an Idempotency-Key header to retry safely.
Request body
| Field | Type | Description |
|---|---|---|
| htsCoderequired | string | 10-digit HTS code |
| countryOfOriginrequired | string | ISO-2 country code |
| declaredValuerequired | number | Declared value in USD |
| entryDaterequired | string | Entry date (YYYY-MM-DD), defaults to today Required: which tariff authorities apply, and the fee limits, depend on the entry date. format date |
| dateOfLoadingoptional | string | format date |
| modeOfTransportoptional | string | Affects HMF calculation (ocean only) one of "OCEAN", "AIR", "GROUND" |
| quantityoptional | number | |
| quantityUnitoptional | string | |
| steelContentPctoptional | number | Steel content percentage for Section 232 |
| aluminumContentPctoptional | number | Aluminum content percentage for Section 232 |
| ftaClaimoptional | string | FTA SPI indicator (e.g. S for USMCA) |
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | e.g. true |
| data | object | |
| data.id | string | e.g. tcalc_8f6f8d57bd631364 |
| data.htsCode | string | e.g. 6403.99.60.00 |
| data.htsDescription | string | e.g. For men, youths and boys |
| data.countryOfOrigin | string | e.g. VN |
| data.countryName | string | e.g. Vietnam |
| data.declaredValue | number | e.g. 10000 |
| data.entryDate | string | e.g. 2026-11-04 |
| data.duties | object | |
| data.duties.baseDuty | object | |
| data.duties.section301 | null | |
| data.duties.section232 | null | |
| data.duties.section122 | null | |
| data.duties.ieepa | null | |
| data.duties.section301ForcedLabor | object | |
| data.duties.section301Brazil | null | |
| data.duties.section338Canada | null | |
| data.duties.adCvd | object | |
| data.fees | object | |
| data.fees.mpf | object | |
| data.fees.hmf | null | |
| data.summary | object | |
| data.summary.totalDutyAmount | number | e.g. 2100 |
| data.summary.totalFeesAmount | number | e.g. 34.64 |
| data.summary.totalLandedCost | number | e.g. 12134.64 |
| data.summary.effectiveDutyRate | string | e.g. 21.0% |
| data.summary.effectiveTotalRate | string | e.g. 21.35% |
| data.summary.breakdown | array | |
| data.ftaOpportunities | array | |
| data.warnings | array | |
| data.meta | object | |
| data.meta.calculatedAt | string | e.g. 2026-11-04T09:01:10.762Z |
| data.meta.dataVersion | string | e.g. 2026-HTS |
| data.meta.disclaimer | string | e.g. For informational purposes only. Final duty determination is … |
| meta | object | |
| meta.requestId | string | e.g. tcalc_8f6f8d57bd631364 |
| meta.timestamp | string | e.g. 2026-11-04T09:01:10.762Z |
| meta.processingTimeMs | number | e.g. 310 |
| meta.dataSource | object | |
| meta.dataSource.name | string | e.g. ComplianceGrid |
| meta.dataSource.provenance | string | e.g. computed |
Fields are read from a real response captured 2026-11-04, shortened. Optional fields may be absent in other responses.
Errors
- 400 invalid request
- 401 missing or bad key
- 403 not in your plan
- 429 rate limited, see Retry-After
- 402 payment required
- 5xx retry with backoff
Error bodies and codes are described in Error codes and troubleshooting.