MessNoMore Data Tools

MessNoMore Data Tools › How to Find the HS Code for a Product (US, EU, UK)

How do you find the HS code for a product, and its US, EU and UK tariff codes?

Updated · By Wong Xian Qi

To find the HS code for a product, describe what it is, what it is made of, how it is made and what it does, match that to a heading and subheading of the Harmonized System, then pick the national line for the country you ship to. The free official sources are the USITC Harmonized Tariff Schedule (US HTS), the UK Trade Tariff (UK commodity codes) and the EU's TARIC database. For a whole catalogue, an API such as the AI HS Code Classifier on Apify can do the first pass, which a person should still review.

Where can I look up HS, HTS, TARIC and UK commodity codes for free?

How do the General Interpretative Rules pick the right heading?

The Harmonized System is applied through six General Interpretative Rules (GRIs), used in order:

  1. GRI 1: the wording of the headings and the Section and Chapter notes decide first.
  2. GRI 2: covers incomplete or unassembled goods and mixtures.
  3. GRI 3: if more than one heading fits, (a) the most specific description wins, (b) for composite goods and retail sets the essential character decides, (c) otherwise the heading that comes last in numerical order applies.
  4. GRI 4: goods the earlier rules cannot place go with the most akin goods.
  5. GRI 5: covers cases and packing.
  6. GRI 6: the same logic one level down: compare only subheadings of the same level.

This is a paraphrase, not the legal text. The deciding facts are the product's essential character, main material by weight, function and how it is made, such as knitted or woven. In the sample below, a vacuum-insulated bottle goes to heading 9617 rather than the household-article heading 7323 because it is the more specific description (GRI 3(a)).

What are the limits of looking codes up by hand?

Manual lookup is fine for a few products, but a catalogue means reading chapters, notes and subheadings for every SKU and repeating the search for each country. The 6-digit code is also only the start: in the sample, a men's cotton T-shirt under 610910 has ten other US lines besides the selected one, and the right line depends on facts such as colour and trim that a title may leave out.

How do I look up HS codes from product descriptions with an API?

The AI HS Code Classifier takes products with at least a title or description, plus optional facts such as material, brand, intendedUse or size, and returns one record per product. You set destinations (US, EU, UK), minConfidence (default 0.7) and maxProducts (up to 10,000 per run).

The AI proposes an HS code, must then choose the final 6-digit code from the official subheading texts of the headings it considered, and picks the national 10-digit line from lines fetched live from USITC and the UK Trade Tariff. It never invents national codes.

Three products from a real run, with base duty rates as returned:

ProductHS6US HTSEUUKConfidence
Men's cotton crew-neck T-shirt6109106109.10.0012, 16.5%6109100010, 12.00 %6109100010, 12.00 %0.97
Wireless Bluetooth earbuds with charging case8518308518.30.2000, Free8518300090, 0.00 %8518300090, 0.00 %0.95
Vacuum-insulated stainless steel water bottle 750 ml9617009617.00.1000, 7.2%9617000000, 6.70 %9617000000, 0.00 %0.93

The full record for the bottle:

{
  "sku": "C3",
  "title": "Vacuum-insulated stainless steel water bottle 750 ml",
  "hs6": "961700",
  "hs6Description": "Vacuum flasks and other vacuum vessels, complete; parts thereof other than glass inners",
  "chapter": "96",
  "national": [
    {
      "country": "US",
      "code": "9617.00.1000",
      "description": "Vessels > Having a capacity not exceeding 1 liter",
      "generalDutyRate": "7.2%",
      "dutyRateType": "General (column 1, MFN) rate",
      "vatRate": null,
      "selection": "ai",
      "selectionNote": "The product is a 750 ml vacuum-insulated stainless steel bottle, which falls within the not-exceeding-1-liter capacity line.",
      "otherCandidates": [
        "9617.00.3000",
        "9617.00.4000",
        "9617.00.6000"
      ],
      "source": "USITC HTS REST API (hts.usitc.gov)"
    },
    {
      "country": "EU",
      "code": "9617000000",
      "description": "Vacuum flasks and other vacuum vessels, complete; parts thereof other than glass inners",
      "generalDutyRate": "6.70 %",
      "dutyRateType": "Third country duty (ERGA OMNES)",
      "vatRate": null,
      "selection": "only-candidate",
      "selectionNote": null,
      "otherCandidates": [],
      "source": "UK Trade Tariff API, Northern Ireland (XI) tariff applying EU TARIC measures (Open Government Licence v3.0)"
    },
    {
      "country": "UK",
      "code": "9617000000",
      "description": "Vacuum flasks and other vacuum vessels, complete; parts thereof other than glass inners",
      "generalDutyRate": "0.00 %",
      "dutyRateType": "Third country duty",
      "vatRate": "20.00 %",
      "selection": "only-candidate",
      "selectionNote": null,
      "otherCandidates": [],
      "source": "UK Trade Tariff API (GOV.UK, Open Government Licence v3.0)"
    }
  ],
  "confidence": 0.93,
  "reasoning": "The product is a complete vacuum-insulated stainless steel bottle, which is a vacuum vessel. Heading 9617 expressly covers vacuum flasks and other vacuum vessels, complete, so it is more specific than the general household-article heading 7323 under GRI 3(a). Within 9617 the only listed subheading is 961700, so GRI 6 leads directly to that code.",
  "needsReview": false,
  "reviewReasons": [],
  "alternatives": [
    "732393"
  ],
  "missingInformation": [],
  "inputIndex": 2
}

Each record also has missingInformation and needsReview. A script call:

curl -X POST "https://api.apify.com/v2/acts/messnomore~hs-code-classifier/run-sync-get-dataset-items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"products":[{"sku":"A1","title":"Men'\''s cotton crew-neck T-shirt","material":"cotton"}],"destinations":["US","EU","UK"]}'

Ready-made examples: US HTS codes, EU TARIC codes or UK commodity codes.

Why does an automated HS code still need human review for customs?

Is the duty rate shown the duty I will pay?

No. It is the base rate: the US General (column 1, MFN) rate and the EU and UK third-country duty. It excludes US additional duties under Chapter 99 (such as Section 301, Section 232 or other tariff actions), anti-dumping and countervailing duties, preferential rates under trade agreements, quotas, excise and import VAT. The UK standard VAT rate is shown separately. Check the official tariff or your customs broker before you declare goods.

How much does it cost?

Pricing is pay-per-event: $0.01 per classified product with all destinations included, plus a $0.00005 start fee per run. 100 products cost about $1.00 and 1,000 about $10.00. Products that cannot be classified are not charged, and your maximum products and maximum cost per run cap the spend. Apify Bronze, Silver and Gold subscribers get lower prices. The Apify free plan classifies up to 20 products per run.

What does it cover, and what does it not?

FAQ

How do I find the HS code for a product?

Describe the product's material, function and how it is made, find the matching heading and subheading in the official tariff using the General Interpretative Rules, then pick the national 10-digit line for the destination. The USITC Harmonized Tariff Schedule and the UK Trade Tariff are free official sources.

What is the difference between an HS code, an HTS code and a TARIC code?

An HS code has 6 digits. The US HTS, EU TARIC and UK commodity codes extend it to 10-digit national lines, and each destination has its own duty rates.

Does the duty rate include Section 301 tariffs?

No. The rate is the base rate: the US General (column 1, MFN) rate and the EU and UK third-country duty. It excludes Chapter 99 additional duties such as Section 301 and 232, anti-dumping and countervailing duties, trade-agreement rates, quotas, excise and import VAT, except the UK standard VAT rate it shows.

Is an AI-generated HS code legally binding?

No. Only customs authorities issue binding classifications, such as US CBP rulings, EU Binding Tariff Information and UK Advance Tariff Rulings. The importer remains responsible for the declared code, so review flagged results and check with a customs broker before you declare goods.

How accurate is AI HS code classification?

In the developer's test on 89 real US CBP rulings from 2024 to 2026, the exact 6-digit code matched 70% of the time and the correct code was among the answer and its alternatives 85% of the time. When confidence was 0.85 or higher, the exact code matched 90% of the time.

How much does a bulk HS code lookup cost?

The AI HS Code Classifier charges $0.01 per classified product with US, EU and UK tariffs included, plus a $0.00005 start fee per run, so 100 products cost about $1.00. Products that cannot be classified are not charged, and Apify Bronze, Silver and Gold subscribers get lower prices.