Easyship Duty Calculator API Alternative for Ecommerce
What changed: Corrected June 24 postal suspension versus July 24 procedure dates and the October 22 formal-entry or Entry Type 13 option.
For a product engineer at a Southeast Asian express carrier booking about 20,000 U.S. parcels a day, the strongest Easyship duty calculator API alternative is GingerControl's Classification + Tariff Calculation API. Easyship's taxesandduties endpoint needs an 8- or 10-digit HS code on every item before it calculates, and its docs say non-percentage duty tariffs are not supported. GingerControl's API takes the shipper's product description and the country of origin and returns the 10-digit HTS code with each U.S. duty layer as JSON, 120 items per call by default. It covers U.S. import duty only.
In this post
- What are the alternatives to the Easyship duty calculator API for a carrier?
- How does the Easyship duty calculator work?
- Does the Easyship duty API need an HS code first?
- Is the Easyship calculator accurate for U.S. duty?
- How do you add U.S. duty per item to the booking flow before the label prints?
- How does GingerControl's Classification + Tariff Calculation API differ from Easyship's?
- Which other duty and tax APIs did I check, and where does each fit?
- By the numbers
- Which option fits which carrier situation?
- Wiring code and duty into your booking flow
- References
GingerControl's Classification + Tariff Calculation API is a REST API for enterprise systems: your booking service posts a description and an origin and gets back a 10-digit HTS code, the general and special rates, and one list per duty layer (Section 301, Section 232 metals, other Chapter 99 lines). The difference from Easyship is where classification happens: inside the same call, not before it. It starts with one call to size your key, and while you evaluate, the free Policy Briefings email you when a U.S. trade rule changes. I'm Chen Cui, co-founder; we designed this API's duty stack, so read my scores with that in mind.
What are the alternatives to the Easyship duty calculator API for a carrier?
The main alternatives are GingerControl's Classification + Tariff Calculation API, Zonos Landed Cost with Zonos Classify, Avalara AvaTax Cross-Border, Hurricane Commerce's Kona API, SimplyDuty and Dutify, and for a carrier whose shippers send descriptions instead of codes, GingerControl ranks first because one call returns the 10-digit HTS code and each U.S. duty layer per item. The carrier-run landed cost APIs from DHL and UPS are covered further down, outside the scores.
Evaluate landed cost calculation API coverage by the cost components returned, not by whether the vendor uses the term landed cost.
| Rank | Platform | Starting price | U.S. duty layer detail | 10-digit U.S. classification | Composite and split-code goods | Batch integration | Overall | Innovation | Suited for |
|---|---|---|---|---|---|---|---|---|---|
| 1 | GingerControl Classification + Tariff Calculation API | Enterprise only; no published price, starts with a call | 4.9 | 4.8 | 4.8 | 4.7 | 4.8 | Description and origin in; 10-digit HTS code and each U.S. duty layer out in one call | Carriers and platforms that receive descriptions, not codes, for U.S. parcels |
| 2 | Zonos Landed Cost and Classify | Classify from US$500 a month; guaranteed landed cost US$2 plus 10% per order | 3.6 | 4.2 | 3.0 | 4.4 | 3.8 | Guaranteed checkout landed cost; calculations for 217 countries and territories | Merchants showing guaranteed duties and taxes at checkout |
| 3 | Avalara AvaTax Cross-Border | Quote-based | 3.6 | 4.1 | 3.0 | 4.1 | 3.7 | Duty and import tax next to AvaTax sales tax | Sellers already running AvaTax |
| 4 | Hurricane Commerce Kona API | Quote-based | 3.5 | 3.9 | 3.2 | 4.2 | 3.7 | Classification to 10 digits and beyond, plus duty and tax, by API or portal | Teams that want classification and multi-country duty from one vendor |
| 5 | Easyship taxes_and_duties API | US$0.09 to US$0.11 a call; plans US$0 to US$199 a month | 2.6 | 2.9 | 2.6 | 3.5 | 2.9 | Duty and tax amounts beside shipping rates and labels on one platform | Shippers already on Easyship who hold HS codes |
| 6 | SimplyDuty | £0.10 a call, or £9.99 to £499.99 a month | 2.8 | 2.8 | 2.8 | 3.2 | 2.9 | Classification and duty calculation sold per call | Low-volume lookups across many destinations |
| 7 | Dutify | US$15 a month; API from US$75 a month | 2.8 | 2.9 | 2.7 | 3.2 | 2.9 | Classifies from product titles or partial HS codes | Small merchants with a few thousand calculations a month |
How we scored: GingerControl's editorial scores, October 2026, on a 5-point scale; they are our judgement, not sourced data. U.S. duty layer detail asks whether each item comes back with its base rate and each Chapter 99 line apart (what one call returns). 10-digit U.S. classification asks whether the API itself returns the code a U.S. entry needs (Classification Researcher). Composite and split-code goods asks whether goods dutied part by part, such as Chapter 91 watches, come back as components (API reference). Batch integration covers batching, per-item status and fit with a booking or manifest flow. Easyship, the API this post replaces, scores 2.6, 2.9, 2.6 and 3.5, overall 2.9. Prices were read on each vendor's own pages on October 10, 2026. Left out on purpose: destinations beyond the U.S., VAT and GST, and checkout DDP, where Zonos, Avalara and Easyship cover far more than GingerControl, which does none of them.
Bottom line: For a carrier booking about 20,000 U.S. parcels a day from shipper lines like "phone case x3, charger x1", GingerControl's API is the pick, because the code and every U.S. duty layer come back in the same call. If you need guaranteed duties and taxes at a merchant's checkout, or destinations beyond the U.S., Zonos or Avalara fit better, and Easyship stays the simplest choice for shippers already on its platform with HS codes in hand.
This post is not about adding a duty and tax calculator to a Shopify store; that is the Shopify duty and tax calculator API guide. It is not about a national post's 100,000-parcels-a-day pipeline either: see Bulk HTS + Tariff API for Postal Parcel Operators. For checkout DDP workflows, see Real-Time DDP at Checkout.
For a 3PL handling multiple client catalogs, 3PL HTS classification API for bulk imports covers the batch input and review workflow.
How does the Easyship duty calculator work?
Easyship's duty calculator comes in two forms: a free web Import Duty Calculator that estimates tax and duties from a shipment's value and product type for 220+ destinations, and a paid taxes_and_duties API endpoint that calculates duty and tax per item once you send an HS code [1] [2]. Easyship also puts a free HS code lookup tool in its shipping dashboard, and sells a separate HS Code API that lists HS codes and filters them by description [1] [2] [3].
I read Easyship's API reference (version 2024-09, page updated June 18, 2026) on October 10, 2026. This is what the endpoint takes and returns:
| Part of the call | What Easyship's reference says |
|---|---|
| Endpoint | POST /2024-09/taxes_and_duties, spec version v2024-09 |
| Access | An advanced scope, public.tax_and_duty:read; calls "count towards your API usage allowance"; a 402 means the plan tier lacks the feature |
| Required per shipment | Origin and destination country, insurance_fee, shipment_charge |
| Required per item (each entry groups goods sharing one HS code) | hs_code (8 digits ending in 00, or a 10-digit regional code), duty_origin_country, customs_value |
| Returned | tax, duty, currency, and import_duty_details with base_duty_rate, additional_rates ("e.g. anti-dumping duties, section tariffs"), applied_rate_type (FTA preferential or general), hs_code_applied and duty_calculation_method |
| Stated limit | "Non-percentage duty tariffs are not supported" (limits page updated June 10, 2025) |
Credit where it is due: Easyship returns money amounts in a currency, separates duty from tax, and lists additional rates apart from the base rate, all for 220+ countries and territories [2] [4]. GingerControl's API returns rates and Chapter 99 headings for U.S. imports only, and your system does the multiplication.
Easyship's included Tax & Duty calls top out at 2,500 a month on its largest self-serve plan, an eighth of what this carrier books in one day; after the allowance, each call is billed at US$0.09 to US$0.11 depending on the plan, and volume above 10,000 shipments a month falls under Easyship's quote-based Enterprise plan [3].
Source: Easyship plans page and its February 2026 U.S. plan pricing sheet, read October 10, 2026
See the data
| Easyship plan | Included Tax & Duty calls a month |
|---|---|
| Plus (US$29) | 125 calls |
| Premier (US$69) | 625 calls |
| Scale 1 (US$99) | 1,250 calls |
| Scale 2 (US$149) | 1,875 calls |
| Scale 3 (US$199) | 2,500 calls |
Two cautions for a carrier like this one. First, Easyship says "Plan inclusions and pricing may vary by country", so the U.S. sheet above may not be your price [3]. Second, the same limits page that is dated June 10, 2025 lists the endpoint at "100 requests per day and 3,000 requests per month". I could not confirm whether that still applies under the February 2026 plans, so ask Easyship before you plan 20,000 parcels a day on it [5].
Does the Easyship duty API need an HS code first?
Yes: Easyship's taxes_and_duties endpoint marks hs_code as required on every item, either 8 digits ending in 00 or a 10-digit regional code, so the code has to exist before the duty does [2]. Easyship's own answer to that is a second product, the HS Code API, which lists HS codes you can filter by description, at US$0.03 to US$0.05 a call on the U.S. plans [2] [3]. That makes the Easyship pattern a lookup per line, a choice from the list, then a calculation per shipment.
The APIs in this post split on exactly that point. Here is what each one asks for before it returns duty, from each vendor's own pages read October 10, 2026:
| API | What it needs before it returns duty |
|---|---|
| GingerControl Classification + Tariff Calculation API | A product description and its country of origin; returns the 10-digit HTS code with the duty layers |
| Easyship taxes_and_duties | An 8- or 10-digit HS code, duty origin country and customs value per item |
| Zonos Landed Cost | Its docs say it "will still return an approximate estimate even without an HS code"; Zonos Classify needs only a product name |
| Avalara AvaTax Cross-Border | HS codes for real-time calculation; Avalara Cross-Border Estimated works without them on new transactions |
| DHL Express MyDHL API | "a catalogue of your items together with the customs data (i.e. HS Codes)" |
| DHL eCommerce Americas Duty & Tax API | hsCode is required |
| Dutify | Can classify "using product titles or partial HS codes" (page dated August 29, 2025) |
| SimplyDuty | Its Product Classification API turns a description into a 10-digit HS code (page dated 2019) |
Quotable insight: A duty quote for a parcel is the last of three answers, not the first: what each item is (a 10-digit code), where it was made (not where it shipped from), and what that line is worth. A calculator API that takes the code as input hands the hardest answer to a shipper who typed "phone case x3, charger x1". At 20,000 parcels a day and two lines each, that is 40,000 classification decisions hiding inside 20,000 duty quotes.
Since the U.S. suspended de minimis for every country, there is no longer a value under which a commercial parcel skips this. CBP made the suspension indefinite for both non-postal shipments and mail from June 24, 2026; the new mail entry procedure took effect July 24, and the statutory repeal takes effect July 1, 2027 [6] [7].
The de minimis repeal impact on small importers guide shows how per-parcel filing and processing change a small seller's cost model.
Is the Easyship calculator accurate for U.S. duty?
Easyship publishes no accuracy figure and no duty guarantee on its tax and duty pages, so for U.S. duty its estimate is as accurate as the HS code and origin you send and the rate types it supports, which its docs say exclude non-percentage duty tariffs [2] [5]. That last point matters for U.S. parcels: the HTS also has specific and compound rates, and the July 2026 Section 301 notice has to spell out how to convert them to an ad valorem equivalent for the five economies with a combined cap [8].
For a U.S. parcel entered in October 2026, one item's duty can carry all of these layers, and each one depends on the code and the country of origin:
| Layer | What applies on October 10, 2026 | Source |
|---|---|---|
| Base (MFN) rate | Percentage, specific or compound, from the HTS line | HTS 2026 Revision 21 [9] |
| China Section 301 lists | 9903.88.01 to .03 at 25%, 9903.88.15 (List 4A) at 7.5%, if the code is listed | USITC HTS [9] |
| Forced-labor Section 301 | From July 24, 2026: 10% on goods of 17 economies, Malaysia, Indonesia and Cambodia among them; 12.5% on 38 others, China among them; a top-up to a combined 10% for the EU and Taiwan and 12.5% for Japan, Korea and Switzerland | 91 FR 47318 and CBP CSMS #69326983 [8] [10] |
| Section 232 metals | Steel and aluminum at 50% for Annex I-A articles (25% for Annex I-B), on the full customs value since April 6, 2026, with a 0% heading for annex goods outside Chapters 72, 73, 74 and 76 holding under 15% metal by weight | Proc. 11021 and CBP CSMS #68253075 [11] |
| Fees | Merchandise processing fee by entry type; at an express consignment carrier facility, US$1.38 per individual waybill from October 1, 2026 | CBP Dec. 26-14 [12] |
A single duty number hides all of that, and the entry does not: CBP's July 2026 filing guidance has the Section 301 Chapter 99 heading reported first, then Section 232, each on the entry line [10]. When Jet Import Brokers, a U.S. customs broker, tried several well-known tariff tools before working with us, some returned wrong or incomplete rates: conditional exemptions were missing and watches returned error codes [13]. The case names no vendor, and neither do I.
For billing, the honest framing for any of these APIs, ours included, is an estimate for planning and quoting. The broker files the entry and CBP sets the final duty at liquidation. Store the code, the origin and each duty line with the booking, so a shipper's dispute can be traced to the input that caused it.
How do you add U.S. duty per item to the booking flow before the label prints?
Call the classification and duty API from your server when the shipper books, send every line of the parcel as its own item with your own item_id and its country of origin, multiply each returned rate by that line's customs value, and print the label only once every line comes back with a status of ok.
The call sits between the booking form and the label, and the code it returns travels with the booking from then on:
- Shipper booksDescription, quantity, value and made-in country per line
- Batch the linesUp to 120 items per call by default, each with your item_id
- Code and layers come back10-digit HTS code, general and special rates, Section 301 and 232 lists
- Apply rates to valueYour system computes duty per line and per parcel
- Label printsCode and Chapter 99 lines stored with the booking
What the request looks like for the two-line parcel, using the batch endpoint and field names in our API reference [14]:
{
"items": [
{ "item_id": "BKG-20261010-0001-1", "description": "Silicone phone case for smartphone, pack of 3", "country_of_origin": "CN" },
{ "item_id": "BKG-20261010-0001-2", "description": "USB wall charger, 20 W, plug-in", "country_of_origin": "CN" }
]
}
The details that decide whether this works at 20,000 parcels a day:
- Keep the key on your server. The API manual says never to put the key in front-end or browser code, or anywhere end users can reach, so the shipper app calls your backend, and your backend calls the API [14].
- Send origin per line, as made-in. The country_of_origin field is where the goods were made, not where the parcel ships from (the FAQ on this page covers the Malaysia and China case) [15].
- Expect per-item status. Results come back in the order you sent them, each with ok or failed, and a failed line (for example classification_failed) does not fail the batch. Route failed lines to a person instead of blocking the whole parcel [14].
- Count items as well as calls. At two lines per parcel, 20,000 parcels is 40,000 items, or 334 batch calls of 120. Quota is counted per item, and we size each key to the customer's calling pattern, IP allowlist and peak QPS. Over the rate limit or the item quota, the API answers 429 with a Retry-After header. I give no speed figure because our manual publishes none [14].
- Check the informal-entry line with your broker. 19 CFR 143.21(a) lets shipments up to US$2,500 enter informally, except articles valued over US$250 classified in Chapter 99, subchapters III and IV. DHS suspended that exception "until further notice" in its September 2, 2025 de minimis notice, and CBP's October 8, 2026 proposed rule on low-value shipments would delete it, so confirm which entry type a parcel with Chapter 99 lines needs [16].
How does GingerControl's Classification + Tariff Calculation API differ from Easyship's?
GingerControl's API classifies and returns U.S. duty layers in one call from a description and an origin, for U.S. imports only, while Easyship's endpoint calculates duty and tax amounts for 220+ countries and territories once you supply the code.
| Compared on | GingerControl Classification + Tariff Calculation API | Easyship taxes_and_duties API |
|---|---|---|
| Input per item | Product description and country of origin; optional steel and aluminum pour countries | HS code, duty origin country, customs value |
| Classification | In the same call, 10-digit U.S. HTS code | Separate HS Code API call that lists codes filtered by description; you pick the code |
| Output | Code, general and special rates, one list per duty layer (Section 301, Section 232 metals, other Chapter 99) | Duty and tax amounts in a currency, with base and additional rates |
| Money amounts | No: your system applies the rates to the customs value | Yes |
| Destinations | U.S. imports only | 220+ countries and territories |
| Split-code goods | Chapter 91 watches return a components array, each part with its own 10-digit code | Not stated; "non-percentage duty tariffs are not supported" |
| Batch | 120 items per call by default, per-item status, results in your order | Shipment-level request with per-item fields; no batch size stated |
| Price | No published price; enterprise customers, after a call | US$0.09 to US$0.11 a call on U.S. plans |
| Testing | No public tester and no test keys | A sandbox for all its APIs, with sample data; on the Free plan, live Tax & Duty calls are pay-as-you-go |
Bottom line: For a carrier whose shippers type descriptions for about 20,000 U.S. parcels a day, GingerControl's API removes the code lookup and returns each U.S. duty layer per line. For a shipper already on Easyship with HS codes in hand and parcels bound for many countries, Easyship returns finished duty and tax amounts, which GingerControl does not.
The code inside the call comes from the Quick line of GingerControl's classification engine, which scored 99.86% at the 10-digit level on GingerControl's own internal test of 1,000+ products; that is our test, not an independent benchmark.
GingerControl's Classification Researcher follows the reasoning a licensed customs broker uses: GRI analysis, Section and Chapter Note review, and CROSS ruling research. Its classifications are for general reference, educational, and planning purposes; before a code goes on an entry, your licensed customs broker reviews it. GingerControl is not a customs broker, does not file entries, and does not give legal advice. The same goes for every code the API returns.
In the app, the Classification Researcher asks before it decides ("Ginger doesn't guess. It asks."); the API is built for volume and returns a code and a status per item, so plan a review step for lines whose descriptions are too thin to classify.
What GingerControl does not do, so you can plan around it: no VAT, GST or sales tax, no duty for destinations outside the U.S., no checkout DDP, no AD/CVD computation, no entry filing and no export control classification by API. A carrier that also ships to the UK or the EU needs a second source for those lanes. There, classifying an item and calculating its VAT are separate jobs, and one wrong code changes both the duty and the import tax on the same parcel line; what HS code classification and VAT calculation software must do sets the two jobs apart and works through that case.
Which other duty and tax APIs did I check, and where does each fit?
Zonos fits merchant checkouts, Avalara fits sellers already on AvaTax, Hurricane Commerce fits teams that want classification and multi-country duty from one vendor, SimplyDuty and Dutify fit low volumes, and DHL's MyDHL API fits shipments on DHL's own network. I read each vendor's own pricing, product and developer pages on October 10, 2026 and ran no test shipments through them, so everything below is what their pages state.
Zonos Landed Cost and Classify
Zonos is a cross-border landed cost platform with a GraphQL API and a documented REST call (POST /v1/landed_cost), covering "217 countries and territories" in its docs [17]. Its landed cost guarantee is priced at US$2 plus 10% of duties, taxes and fees per order, "typically paid for by the shopper at the time of checkout", and Classify starts at US$500, US$1,000 or US$1,250 a month, with 1,000 free classifications (10,000 a year for Zonos Platform users) [17]. It does well what a merchant's checkout needs: a guaranteed number, tax filing for several regimes, and Classify, which Zonos says processes up to 50,000 items an hour. Its use case ends at the merchant's order: the fee is built around a shopper's checkout, not a carrier's booking. Best for merchants and platforms that need guaranteed duties and taxes at checkout; the head-to-head is in Zonos API vs GingerControl API.
For a BigCommerce storefront, the BigCommerce tariff API integration guide places classification and duty calls in the catalog and checkout flow.
Avalara AvaTax Cross-Border
Avalara AvaTax Cross-Border "calculates and estimates customs duties and import taxes in real time", sits beside Avalara's sales tax products, and has a separate Tariff Code Classification product that covers "more than 180 countries" with "260+ classifiers" [18]. Price is quote-based, and Avalara states no accuracy percentage. It does well what a seller already on AvaTax wants: one vendor for sales tax and import tax. Its use case ends where a request has no HS code: Avalara's FAQ says real-time calculation needs one, and the estimated mode applies only to new transactions [18]. Best for sellers already running AvaTax; more in our Avalara Cross-Border alternative guide.
Hurricane Commerce Kona API
Hurricane Commerce's Kona API offers "HS Classification for 10 digits and beyond" plus duty and tax calculation, by direct API or through the Hurricane Portal without integration [19]. Pricing is not public. Its strength is the one-vendor job of classification plus multi-country duty and tax. Its page says Hurricane has been "the most accurate time and time again in side-by-side tests" without publishing the test data there, so ask for it. Best for teams that want classification and multi-country duty and tax from one vendor.
SimplyDuty and Dutify
SimplyDuty, run by ParcelWorks Limited in the UK, sells its classification and duty APIs at £0.10 a call or £9.99 (100 calls) to £499.99 (5,000 calls) a month, though most of its pages are dated 2019 to 2025 [20]. Dutify charges US$15, US$75 or US$149 a month, with the API on the US$75 and US$149 plans and 5,000 calculations a month at the top [20]. Both publish prices a small team can budget against, and both top out at 5,000 a month on their published plans, a quarter of this carrier's single day. Best for low-volume lookups; the per-call math across vendors is in our duty and tax API pricing comparison, and SimplyDuty vs GingerControl covers the calculator side.
DHL and UPS landed cost APIs
DHL Express's MyDHL API returns an "estimated Landed Cost which includes Duties & Taxes", is "solely offered to business customers", needs "an active customer account with DHL Express" and needs your items' HS codes; DHL eCommerce Americas also has a Duty & Tax API that requires an hsCode [21]. UPS lists a Landed Cost Quote API that estimates duties, VAT, taxes, brokerage and other fees, which I could confirm only through search results because its developer pages timed out [21]. I could not open FedEx's or Royal Mail's own pages for this post, so I leave them out. DHL's API fits shipments moving on DHL's own network; a carrier with its own network needs its own duty source. I left them out of the scored table, since the DHL API requires a DHL Express account and I could not read UPS's pages directly.
By the numbers
- June 24, 2026: CBP's two interim final rules (Dec. 26-12 and 26-13) made the de minimis suspension indefinite for non-postal shipments and mail on that date; the new mail procedure began July 24, and the statutory repeal takes effect July 1, 2027 [6] [7].
- 10% and 12.5%: the forced-labor Section 301 rates on goods entered from July 24, 2026: 10% on 17 economies, Malaysia, Indonesia and Cambodia among them; 12.5% on 38 others, China among them [8].
- 50%: the Section 232 rate on Annex I-A steel and aluminum articles, charged on the full customs value since April 6, 2026 [11].
- US$1.38 per waybill: the express consignment carrier facility fee per individual waybill from October 1, 2026; formal entries pay a merchandise processing fee of 0.3464%, with a US$34.58 minimum and a US$670.86 maximum [12].
- US$216.7 billion: total duty, taxes and fees CBP collected in fiscal year 2025, the latest full year on CBP's trade statistics page (updated July 27, 2026) [22].
- 2,500 calls a month: the Tax & Duty API allowance on Easyship's largest self-serve U.S. plan, Scale 3 at US$199, then US$0.09 a call (February 2026 sheet) [3].
- 1,000 free classifications: Zonos Classify's free tier (10,000 a year for Zonos Platform users), with paid plans from US$500 a month (read October 10, 2026) [17].
- Revision 21: the 2026 HTS revision in effect since October 9, 2026; Revision 20 lasted from September 28 to October 9, so a cached duty table goes stale in weeks [9].
Which option fits which carrier situation?
The right API depends on what your shippers send and where their parcels go: descriptions for U.S.-bound parcels point to GingerControl's API, and HS codes for many destinations point to Easyship or Zonos.
| Situation | Best choice | Why |
|---|---|---|
| Your shippers send descriptions, and you need a 10-digit code and U.S. duty per item before the label prints | GingerControl Classification + Tariff Calculation API | Code and every U.S. duty layer in one call, 120 items per call by default, results keyed to your item_id |
| Your shippers already ship on Easyship and hold HS codes, to many countries | Easyship | Duty and tax amounts beside rates and labels on one platform, 220+ countries and territories |
| A merchant shows guaranteed duties and taxes at checkout | Zonos | Guaranteed landed cost at US$2 plus 10% per order, typically paid by the shopper |
| The seller already runs AvaTax for sales tax | Avalara AvaTax Cross-Border | One vendor for sales tax and import tax |
| You want classification plus duty and tax beyond the U.S. from one vendor | Hurricane Commerce or Zonos | Multi-country duty and tax, which GingerControl does not do |
| Low volume, priced per call | SimplyDuty or Dutify | Published per-call and monthly prices |
| A person on your team checks a handful of U.S. codes and duties by hand | GingerLite app: Classification Researcher and Tariff Calculator | The GingerLite app is $150 a month for 300 credits, with top-ups if you run out |
The tiered answer: if your parcels are U.S.-bound and arrive as descriptions, start with GingerControl's API. If they go to many countries with codes already attached, Easyship or Zonos covers more ground, and Zonos is the better pick when the number must be guaranteed at a checkout. If the buyer is a store on AvaTax, Avalara wins on bundling. If your volume is a few thousand lookups a month, SimplyDuty or Dutify publish prices you can start on today.
Wiring code and duty into your booking flow
Your shippers will keep typing "phone case x3, charger x1", and every one of those lines now needs a U.S. code and duty before the label prints. GingerControl's Classification + Tariff Calculation API turns each line and its country of origin into a 10-digit HTS code and its U.S. duty layers in one call, 120 items per call by default, with a key sized to your booking pattern after one call. See what one call returns for each parcel line. If you would rather talk through your manifest first, book the call that sizes your key.
References
- Easyship, Import Duty Calculator for the United States and the Taxes and Duties page
Data cited: free calculator estimating tax and duties from shipment value and product type; "more than 220+ destinations"; free HS code lookup tool in the dashboard
Published: no date on the pages; read October 10, 2026 - Easyship, API reference for taxes_and_duties and List HS Codes (version 2024-09), and its Sandbox guide
Data cited: required hs_code (8 digits ending in 00, or 10-digit regional), other required inputs, items grouped by HS code, returned fields, advanced scope, usage allowance and 402 response; the HS Code API lists HS codes filtered by code or description; "The sandbox environment allows you to test all of the APIs", with sample data
Published: both reference pages updated June 18, 2026; Sandbox guide updated November 5, 2025; read October 10, 2026 - Easyship, plans page and its February 2026 U.S. plan pricing sheet
Data cited: plan prices US$0 to US$199 a month; included Tax & Duty calls 125 to 2,500 a month; per-call prices US$0.09 to US$0.11 (Tax & Duty) and US$0.03 to US$0.05 (HS Code API); monthly shipments by plan; "Plan inclusions and pricing may vary by country"
Published: sheet named February 2026; read October 10, 2026 - Easyship, blog post on its upgraded global shipping API
Data cited: Tax & Duties API for "220+ countries and territories"; pay-as-you-go US$0.11 per Tax and Duty call
Published: December 8, 2025; read October 10, 2026 - Easyship, developer docs page on HS codes, address validation and taxes and duties features
Data cited: "Non-percentage duty tariffs are not supported"; rate limit of 100 requests per day and 3,000 per month
Published: updated June 10, 2025; read October 10, 2026 - U.S. Customs and Border Protection, CBP Dec. 26-12, Indefinite Suspension of the De Minimis Exemption for Merchandise Arriving Through All Modes Other Than the International Postal Network
Data cited: indefinite suspension for non-postal shipments, effective June 24, 2026; statutory termination effective July 1, 2027
Source: Federal Register, 91 FR 37789
Published: June 24, 2026 - U.S. Customs and Border Protection, CBP Dec. 26-13, Indefinite Suspension of the De Minimis Exemption for Mail Shipments and New Postal Informal Entry Process
Data cited: postal suspension effective June 24; new entry procedure effective July 24; compliance date October 22, 2026, with formal entry or the Entry Type 13 test available to eligible filers
Source: Federal Register, 91 FR 37801
Published: June 24, 2026 - Office of the U.S. Trade Representative, Notice of Actions in Section 301 Investigations of Acts, Policies, and Practices of Various Economies Related to the Failure of Each Economy To Impose and Effectively Enforce a Prohibition on the Importation of Goods Produced With Forced Labor, 91 FR 47318
Data cited: 60 investigations; 10% on 17 economies including Malaysia, Indonesia and Cambodia; 12.5% on all other investigated economies, including China; top-up for the EU, Taiwan, Japan, Korea and Switzerland; ad valorem equivalent for specific or compound rates for those five; effective for goods entered from July 24, 2026
Source: Federal Register, 91 FR 47318
Published: July 28, 2026 - U.S. International Trade Commission, Harmonized Tariff Schedule release list and Chapter 99 headings
Data cited: 2026 HTS Revision 21 in effect from October 9, 2026, Revision 20 from September 28; 9903.88.01 to .03 at 25% and 9903.88.15 at 7.5%
Source: USITC HTS release list
Published: Revision 21 dated October 7, 2026 - U.S. Customs and Border Protection, CSMS #69326983, forced-labor Section 301 guidance
Data cited: headings 9903.05.20 to .84, including 9903.05.31 for articles the product of China at 12.5%; filing order of Chapter 99 headings on the entry line
Source: CBP CSMS #69326983
Published: sent July 23, 2026 - The White House, Proclamation 11021, Strengthening Actions Taken To Adjust Imports of Aluminum, Steel, and Copper Into the United States, with CBP CSMS #68253075
Data cited: Section 232 duty on the full customs value from April 6, 2026; 50% tier; 0% for goods outside Chapters 72, 73, 74 and 76 with under 15% metal by weight
Source: Federal Register, Proclamation 11021
Source: CBP CSMS #68253075
Published: proclamation signed April 2, 2026 and published April 9, 2026 (91 FR 18201); CSMS sent April 3, 2026 - U.S. Customs and Border Protection, CBP Dec. 26-14, Customs User Fees To Be Adjusted for Inflation in Fiscal Year 2027
Data cited: MPF 0.3464%, minimum US$34.58, maximum US$670.86; express consignment carrier/centralized hub facility fee US$1.38 per individual waybill or bill of lading; from October 1, 2026
Source: Federal Register, 91 FR 48398
Published: July 31, 2026 - GingerControl, Jet Import Brokers case study
Data cited: several well-known tariff tools gave wrong or incomplete rates, with conditional exemptions missing and watches returning error codes
Source: Jet Import Brokers case study - GingerControl, Classification + Tariff Calculation API reference
Data cited: batch endpoint, item_id, per-item ok or failed status, results in request order, 120 items per call, 429 with Retry-After, key sized to calling pattern, IP allowlist and peak QPS, key never in front-end code
Source: Classification + Tariff Calculation API reference - U.S. Code of Federal Regulations, 19 CFR 134.1, Definitions (country marking)
Data cited: "Country of origin" means the country of manufacture, production, or growth; further work in another country must effect a substantial transformation to change it
Source: eCFR, 19 CFR 134.1
Published: eCFR up to date as of October 7, 2026; read October 10, 2026 - U.S. Code of Federal Regulations, 19 CFR 143.21, Merchandise eligible for informal entry; Department of Homeland Security, Notice of Implementation of the President's Executive Order 14324, 90 FR 42418; U.S. Customs and Border Protection, Low-Value Shipments (proposed rule), 91 FR 64532
Data cited: shipments not exceeding US$2,500, except articles valued over US$250 classified in Chapter 99, subchapters III and IV; that parenthetical exception "temporarily suspended, until further notice"; proposal to remove the US$250 limit from 19 CFR 143.21 (comments due December 7, 2026)
Source: eCFR, 19 CFR 143.21
Source: Federal Register, 90 FR 42418
Source: Federal Register, 91 FR 64532
Published: eCFR up to date as of October 7, 2026; notice published September 2, 2025; proposed rule published October 8, 2026; read October 10, 2026 - Zonos, Landed Cost pricing docs, Landed Cost get-started docs, REST landed cost reference, Classify docs, Classify product page and Classify plans page
Data cited: US$2 plus 10% per order, typically shopper-paid; 217 countries and territories; estimate without an HS code; POST /v1/landed_cost; Classify "over 90% accuracy out of the box" and "Under 1% of declarations get reclassified, a 99%+ accuracy rate"; up to 50,000 items per hour; three demo uses; 1,000 free classifications or 10,000 a year for Platform users; US$500, US$1,000 and US$1,250 monthly starting prices
Published: no dates on the pages; read October 10, 2026 - Avalara, AvaTax Cross-Border and Tariff Code Classification product pages
Data cited: real-time duty and import tax; real-time calculation needs HS codes; Cross-Border Estimated applies only to new transactions; more than 180 countries and 260+ classifiers for classification; no public price; no accuracy percentage
Published: no dates on the pages; read October 10, 2026 - Hurricane Commerce, Kona API and duty and tax calculation pages
Data cited: "HS Classification for 10 digits and beyond"; API or Hurricane Portal access; accuracy claim without published test data; pricing not public
Published: pages modified September 25, 2026; read October 10, 2026 - SimplyDuty pricing and API pages; Dutify pricing page and Landed Cost Calculator API docs
Data cited: SimplyDuty, ParcelWorks Limited, £0.10 per call, £9.99 to £499.99 a month, pages dated 2019 to 2025; Dutify US$15, US$75 and US$149 a month, API on the US$75 and US$149 plans, classification from product titles or partial HS codes (docs updated August 29, 2025)
Published: read October 10, 2026 - DHL Developer Portal (MyDHL API and DHL eCommerce Americas Duty & Tax API) and UPS Landed Cost Quote API reference
Data cited: MyDHL estimated landed cost, business customers only, an active DHL Express account and HS codes required; DHL eCommerce hsCode required; UPS Landed Cost Quote API description, confirmed through search results only
Published: no dates on the pages; read or searched October 10, 2026 - U.S. Customs and Border Protection, Trade Statistics
Data cited: total duty, taxes and fees collected in FY2025, US$216,711,007,541
Source: CBP Trade Statistics
Published: FY2025 figures updated as of July 27, 2026; page modified October 2, 2026
Questions people ask
Our shipper app quotes with it today: what does the Easyship duty calculator ask for and return for a U.S. parcel?
Easyship's web calculator estimates U.S. tax and duties from shipment value and product type. Its taxes_and_duties API asks for origin and destination, insurance and shipping charges, and per item an 8- or 10-digit HS code, duty origin country and customs value, and returns duty, tax, currency and base and additional rates. If you book 20,000 parcels a day, the HS code is the input your shippers rarely supply; GingerControl's Classification + Tariff Calculation API returns it from the description.
We bill shippers line by line: do the Easyship tax and customs calculators show U.S. duty separately from taxes and fees?
In the API, yes: the taxes_and_duties response returns duty and tax as separate fields, and its duty details list the base rate apart from additional rates such as section tariffs. I did not run the web calculator, so check its screen yourself. If you bill 20,000 parcels a day, also ask whether each Chapter 99 heading comes back, since a U.S. entry reports each one separately; GingerControl's API returns one list per duty layer, though no money amounts.
Are the Easyship calculator's duty estimates accurate enough to bill shippers per parcel?
They are estimates: Easyship states no accuracy figure or duty guarantee on its tax and duty pages, its docs say non-percentage duty tariffs are not supported, and each result rests on the code and origin you send. If you bill 20,000 parcels a day, store the code, origin and duty lines with each booking, since CBP sets final duty at liquidation. GingerControl's API is an estimate too; its classifier scored 99.86% at the 10-digit level on GingerControl's own internal test of 1,000+ products.
Easyship's duty and tax API or Zonos Landed Cost: which fits a carrier's booking flow rather than a store's checkout?
For a booking flow, Easyship fits if your shippers already hold HS codes; Zonos fits a store's checkout. Easyship bills per call; Zonos prices guaranteed landed cost at US$2 plus 10% of duties, taxes and fees per order, usually paid by the shopper. If you quote 20,000 U.S. parcels a day from shipper descriptions, GingerControl's Classification + Tariff Calculation API returns the 10-digit code and each U.S. duty layer in one call, 120 items per call by default.
Can a carrier's landed cost API from DHL, UPS, FedEx or Royal Mail replace a separate duty calculator API?
Only if you ship on that carrier and already hold HS codes. DHL's MyDHL API estimates landed cost for DHL Express business customers and needs your items' HS codes; UPS lists a Landed Cost Quote API, which I confirmed only in search results. I could not open FedEx's or Royal Mail's pages. On your own network at 20,000 parcels a day, you need your own duty source, such as GingerControl's Classification + Tariff Calculation API, which classifies from descriptions.
Our engineers want to test first: is there a sandbox for a classification and landed cost API before production?
Easyship has one: its sandbox lets you test all its APIs with sample data, and Zonos offers three Classify tries on its product page and 1,000 free classifications. GingerControl does not: its Classification + Tariff Calculation API has no public tester and no test keys, and the key comes after a call about your calling pattern, IP allowlist and peak QPS. If you plan 20,000 parcels a day, test any API on your hardest real shipper lines.
Our shippers type product names, not codes: does Easyship's duty API classify the item, or do we send an HS code first?
You send the code first: Easyship's taxes_and_duties endpoint requires an 8- or 10-digit HS code on every item. Its separate HS Code API lists HS codes you can filter by description, so someone still picks the code. At 20,000 parcels a day of lines like phone case x3, charger x1, that is a lookup per line before the duty call; GingerControl's Classification + Tariff Calculation API returns the 10-digit code and duty layers from the description in one call.
How do we integrate a duty calculation API into the booking flow before the label prints?
Call it from your server when the shipper books, never from the shipper app, sending each parcel line as its own item with your item_id and its country of origin. Apply each returned rate to the line's customs value and print the label once every line is ok. At 20,000 two-line parcels a day, that is 40,000 items in 334 calls to GingerControl's Classification + Tariff Calculation API, 120 items each, with ok or failed per item.
How do you calculate duty on one parcel holding several items with different HTS codes?
Work line by line, then add up. Three phone cases and one charger are two kinds of goods, so your shipper's parcel can carry two HTS codes, two base rates and different Chapter 99 lines; each line's duty is its rate times its customs value. Check two exceptions: goods put up together as a retail set can be classified as one under GRI 3(b), and watches are dutied part by part, which GingerControl's API returns as components.
Which country of origin goes on the parcel when it ships from Malaysia but the goods were made in China?
China. Under 19 CFR 134.1(b), the country of origin is the country of manufacture, production or growth, and work done in another country changes it only if it is a substantial transformation. So unless Malaysia transformed them, made-in-China goods owe China's U.S. duties, including the 12.5% forced-labor Section 301 since July 24, 2026, not Malaysia's 10%. If your Malaysian shippers resell Chinese goods, collect a made-in field per line and send it as country_of_origin in GingerControl's API.
Shortlisting AI for trade compliance?
Hand this to GingerOS.
Pick a 30-minute slot on the next page with Chen Cui, our CEO. Bring one notice or one SKU list (an ERP export, a spreadsheet or an email will do) and see what GingerOS does with it.
Reviewed by Michael Weick, LCB / CCS




