WISEPIM Open Data API HS codes API

EU Combined Nomenclature and US HTS customs tariff codes.

Operations 3

GET /hs-codes/search Find HS chapters and headings by keyword #
GET /hs-codes List the chapters of a nomenclature #
GET /hs-codes/{code} Look up an HS, CN or HTS code with its parents and children #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wisepim:wisepim-hs-codes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wisepim-hs-codes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WISEPIM Open Data HS codes API
  version: 1.0.0
  summary: Free GTIN/EAN validation, HS code lookup and European marketplace fee data.
  description: 'A free, keyless reference API for product data: validate GTIN, EAN, UPC and ISBN barcodes and find the GS1 prefix origin, browse the EU Combined Nomenclature and US HTS customs tariffs, and read a sourced dataset of European marketplace seller fees (Amazon, eBay, bol, OTTO, Kaufland, Allegro and more).


    **Terms:** free for commercial and non-commercial use. Show a visible link with the text "Data by WISEPIM" wherever the data appears; every response carries the exact link in `attribution`. Limit: 120 requests a minute per IP; responses may be cached for an hour. Full terms: https://wisepim.com/developers/open-data#terms'
  termsOfService: https://wisepim.com/developers/open-data#terms
  contact:
    name: WISEPIM
    url: https://wisepim.com/developers/open-data
    email: support@wisepim.com
  x-logo:
    url: https://wisepim.com/wisepim-logo.png
servers:
- url: https://wisepim.com/api/open/v1
tags:
- name: HS codes
  description: EU Combined Nomenclature and US HTS customs tariff codes.
paths:
  /hs-codes/search:
    get:
      tags:
      - HS codes
      operationId: searchHsCodes
      summary: Find HS chapters and headings by keyword
      description: Keyword match over the official chapter and 4-digit heading texts, which the EU CN and US HTS share. Follow a result's `url` for its subheadings.
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          maxLength: 200
        example: cotton t-shirt
      - name: lang
        in: query
        description: Language of the descriptions. The US HTS is published in English only.
        schema:
          type: string
          enum:
          - en
          - nl
          - de
          - fr
          default: en
      responses:
        '200':
          description: Up to 10 chapters and headings, best first
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HsSearch'
        '400':
          description: Missing keywords or bad lang
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /hs-codes:
    get:
      tags:
      - HS codes
      operationId: listHsChapters
      summary: List the chapters of a nomenclature
      parameters:
      - name: market
        in: query
        description: '`eu`: EU Combined Nomenclature (8-digit CN codes). `us`: US Harmonized Tariff Schedule (10-digit).'
        schema:
          type: string
          enum:
          - eu
          - us
          default: eu
      - name: lang
        in: query
        description: Language of the descriptions. The US HTS is published in English only.
        schema:
          type: string
          enum:
          - en
          - nl
          - de
          - fr
          default: en
      responses:
        '200':
          description: The chapters (node is null)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HsBrowse'
        '400':
          description: Bad market or lang
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Nomenclature unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /hs-codes/{code}:
    get:
      tags:
      - HS codes
      operationId: getHsCode
      summary: Look up an HS, CN or HTS code with its parents and children
      parameters:
      - name: code
        in: path
        required: true
        description: 2, 4, 6, 8 or 10 digits; dots and spaces are ignored.
        schema:
          type: string
        example: '8471'
      - name: market
        in: query
        description: '`eu`: EU Combined Nomenclature (8-digit CN codes). `us`: US Harmonized Tariff Schedule (10-digit).'
        schema:
          type: string
          enum:
          - eu
          - us
          default: eu
      - name: lang
        in: query
        description: Language of the descriptions. The US HTS is published in English only.
        schema:
          type: string
          enum:
          - en
          - nl
          - de
          - fr
          default: en
      responses:
        '200':
          description: The code, its path and its direct children
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HsBrowse'
        '400':
          description: Malformed code, market or lang
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Code not in the nomenclature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Nomenclature unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Attribution:
      type: object
      description: 'Credit to show wherever the data appears: a visible link with the text "Data by WISEPIM" to `url`.'
      required:
      - required
      - text
      - url
      - html
      - markdown
      - terms
      properties:
        required:
          type: boolean
          const: true
        text:
          type: string
          example: Data by WISEPIM
        url:
          type: string
          format: uri
          example: https://wisepim.com/hs-codes/8471
        html:
          type: string
          example: <a href="https://wisepim.com/hs-codes/8471">Data by WISEPIM</a>
        markdown:
          type: string
          example: '[Data by WISEPIM](https://wisepim.com/hs-codes/8471)'
        terms:
          type: string
          format: uri
    HsSearch:
      type: object
      properties:
        query:
          type: string
        language:
          type: string
        nomenclatureVersion:
          type: string
        count:
          type: integer
        results:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              level:
                type: integer
              kind:
                type: string
                enum:
                - chapter
                - heading
              description:
                type: string
              matchedTerms:
                type: integer
              allTermsMatched:
                type: boolean
              url:
                type: string
                format: uri
              page:
                type: string
                format: uri
        attribution:
          $ref: '#/components/schemas/Attribution'
    Error:
      type: object
      required:
      - error
      - docs
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              enum:
              - invalid_request
              - not_found
              - method_not_allowed
              - rate_limited
              - unavailable
            message:
              type: string
        docs:
          type: string
          format: uri
    HsBrowse:
      type: object
      properties:
        market:
          type: string
          enum:
          - eu
          - us
        language:
          type: string
        nomenclature:
          type: object
          properties:
            source:
              type: string
            version:
              type: string
            attribution:
              type: string
              description: Credit for the official source; show it with the data.
        node:
          oneOf:
          - type: 'null'
          - allOf:
            - $ref: '#/components/schemas/HsCode'
            - type: object
              properties:
                note:
                  type: string
                path:
                  type: array
                  items:
                    $ref: '#/components/schemas/HsCode'
        children:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/HsCode'
            - type: object
              properties:
                hasChildren:
                  type: boolean
                url:
                  type:
                  - string
                  - 'null'
                  format: uri
        attribution:
          $ref: '#/components/schemas/Attribution'
    HsCode:
      type: object
      required:
      - code
      - formatted
      - level
      - description
      properties:
        code:
          type: string
          example: '847130'
        formatted:
          type: string
          example: 8471 30
        level:
          type: integer
          minimum: 2
          maximum: 10
        description:
          type: string
externalDocs:
  description: Documentation and examples
  url: https://wisepim.com/developers/open-data