npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kobolabs/apparel-hs-codes

v1.0.0

Published

Open database of Harmonized System (HS) tariff codes for apparel and textiles

Downloads

126

Readme

apparel-hs-codes

Open database of Harmonized System (HS) tariff codes for apparel and textiles.

License: MIT npm version

What are HS Codes?

The Harmonized System (HS) is a standardized numerical system for classifying traded products, maintained by the World Customs Organization. Every country's customs tariff is built on HS codes. The first 6 digits are internationally standardized, meaning 6109.10 refers to "cotton t-shirts, knitted" everywhere in the world. Getting the right code determines how much duty you pay.

Coverage

| Chapter | Title | Headings | |---------|-------|----------| | 61 | Articles of apparel, knitted or crocheted | 6101 -- 6117 | | 62 | Articles of apparel, not knitted (woven) | 6201 -- 6217 | | 63 | Other made-up textile articles; worn clothing | 6301 -- 6310 | | 64 | Footwear, gaiters and parts | 6401 -- 6406 | | 65 | Headgear and parts | 6501 -- 6507 |

Duty rates are included for US, EU, UK, and Australia.

Quick Start

npm install @kobolabs/apparel-hs-codes
const codes = require('@kobolabs/apparel-hs-codes');

// Find the HS code for a cotton t-shirt
const cottonTee = codes.find(c => c.code === '6109.10');
console.log(cottonTee.description);
// → "T-shirts, singlets and other vests, knitted or crocheted, of cotton"

Or search by keyword:

const results = codes.filter(c =>
  c.keywords.some(k => k.includes('hoodie'))
);
// → [{ code: "6110.20", ... }, { code: "6110.30", ... }]

Data Format

Chapter files (data/chapters/*.json)

Each chapter file contains headings and their subheadings:

{
  "code": "6109",
  "description": "T-shirts, singlets and other vests, knitted or crocheted",
  "level": "heading",
  "children": [
    {
      "code": "6109.10",
      "description": "Of cotton",
      "level": "subheading",
      "keywords": ["t-shirt", "tshirt", "tee", "singlet", "vest", "tank top", "cotton", "knitted"],
      "commonGarments": ["cotton t-shirt", "cotton tank top", "cotton singlet"],
      "notes": "One of the most commonly traded apparel items globally."
    }
  ]
}

Flat index (data/index.json)

A searchable array of all subheading-level codes with metadata:

{
  "code": "6109.10",
  "chapter": 61,
  "description": "T-shirts, singlets and other vests, knitted or crocheted, of cotton",
  "keywords": ["t-shirt", "tshirt", "tee", "singlet", "vest", "tank top", "cotton", "knitted", "jersey"],
  "category": "tops",
  "construction": "knitted",
  "gender": "unisex"
}

Duty rate files (data/duty-rates/*.json)

Per-country MFN duty rates:

{
  "code": "6109.10",
  "description": "T-shirts, singlets — of cotton, knitted",
  "dutyRate": "16.5%",
  "dutyType": "ad_valorem",
  "notes": "One of the most commonly imported apparel items"
}

Duty Rates

| Country | File | Rate Type | |---------|------|-----------| | United States | data/duty-rates/us.json | MFN/NTR (general) | | European Union | data/duty-rates/eu.json | MFN (third-country) | | United Kingdom | data/duty-rates/uk.json | UK Global Tariff | | Australia | data/duty-rates/au.json | General rate |

Rates shown are MFN (Most Favoured Nation) rates -- the standard rate applied to WTO members. Preferential rates under free trade agreements (USMCA, CPTPP, EU GSP, etc.) are often lower or zero. Additional tariffs (e.g., US Section 301 duties on China-origin goods) are not included.

Common Classification Pitfalls

Knitted vs Woven (Chapter 61 vs 62)

This is the single most common classification mistake. The same garment (e.g., a men's shirt) has completely different HS codes depending on whether the fabric is knitted or woven:

  • 6105.10 -- Men's cotton shirt, knitted (polo shirt)
  • 6205.20 -- Men's cotton shirt, woven (dress shirt)

If the fabric stretches in at least one direction, it is almost certainly knitted (Chapter 61). Poplin, twill, denim, chiffon, and satin are woven (Chapter 62).

Material-based subheading selection

Within each heading, subheadings are split by fibre content. The general pattern is:

  • .10 or .11 -- Wool or fine animal hair
  • .20 -- Cotton
  • .30 -- Man-made (synthetic) fibres
  • .40 -- Artificial fibres (rayon, viscose)
  • .90 -- Other textile materials

Classification is based on the fibre that makes up the greatest proportion by weight. A "60% cotton / 40% polyester" blend is classified under cotton.

T-shirts vs shirts (6109 vs 6105/6205)

A t-shirt (6109) is a lightweight, pull-over garment without a collar or with a simple crew/V-neck. A shirt (6105/6205) typically has a collar (polo collar, button-down collar) and may have a partial or full button placket. The distinction matters: the duty rates can be very different.

Coated and laminated garments (6113 / 6210)

Garments made from fabrics that have been coated, covered, or laminated with plastics or rubber get their own special headings, even if the base fabric is ordinary knitted or woven textile. A PU-coated rain jacket is not classified with regular jackets.

Sets and ensembles

A "suit" (6103/6203 or 6104/6204) must consist of matching components of the same fabric. Coordinate sets sold together but of different fabrics are classified as "ensembles" or individually by component.

Example Script

node examples/classify-garment.js "cotton t-shirt"
node examples/classify-garment.js "polyester hoodie"
node examples/classify-garment.js "leather ankle boots"

Disclaimer

This database is provided as a reference tool for educational and informational purposes. It does not constitute legal, customs, or trade compliance advice. HS code classification is ultimately determined by the customs authority of the importing country. Always verify codes and duty rates with a licensed customs broker or the relevant government tariff schedule before making import decisions.

Duty rates change. Check official sources for current rates:

Contributing

See CONTRIBUTING.md for guidelines on submitting corrections, adding new country duty rates, or expanding coverage to additional HS chapters.


Built by the team at Kobo -- modern PLM for fashion brands.