# Harmonized Tariff Schedule API

> Harmonized Tariff Schedule returns U.S. tariff lines and listed duty rates as a workflow and API.

Harmonized Tariff Schedule (HTSUS) finds matching U.S. import tariff lines and listed duty rates from a product description or HTS code. Get import duty needs a product description or HTS code; optional maximum results limits the number of matching tariff lines returned.

- Page: https://fous.com/tools/harmonized-tariff-schedule
- Handle: `@harmonized-tariff-schedule`
- Category: [Government](https://fous.com/tools/category/government)
- Source website: https://hts.usitc.gov
- Last verified: Sep 29, 2026

## Methods

### Get import duty

Operation `get_import_duty`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find matching U.S. import tariff lines and their listed duty rates from a product description or HTS code. Classification depends on product details; additional duties may apply beyond the listed rates.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `product` | string | yes | `"roasted coffee beans"` | What is being imported, or an HTS code; for example, roasted coffee beans or 0901.21.00. |
| `max_results` | integer | no | `5` | Maximum number of matching tariff lines, for example 10. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "product"
  ],
  "properties": {
    "product": {
      "type": "string",
      "description": "What is being imported, or an HTS code; for example, roasted coffee beans or 0901.21.00.",
      "examples": [
        "roasted coffee beans",
        "men's cotton t-shirts",
        "8507.60.00"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of matching tariff lines, for example 10.",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "product": "roasted coffee beans"
    },
    {
      "product": "men's cotton t-shirts",
      "max_results": 5
    },
    {
      "product": "8507.60.00",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `hts_edition` | string or null | `"2026 HTS Revision 20"` | Edition of the U.S. tariff schedule used. |
| `tariff_lines` | array |  |  |
| `tariff_lines[].hts_code` | string | `"0901.21.00"` |  |
| `tariff_lines[].page_link` | string | `"https://hts.usitc.gov/search?query=0901.21.00"` |  |
| `tariff_lines[].description` | string | `"Coffee, whether or not roasted or decaffeinated; coffee husks and skins; coffee substitutes containing coffee in any pr` |  |
| `tariff_lines[].column_2_rate` | string or null | `"Free"` |  |
| `tariff_lines[].special_rates` | string or null | `"Free under Australia trade agreement; Free under Bahrain trade agreement; Free under Chile trade agreement; Free under ` |  |
| `tariff_lines[].unit_of_quantity` | string or null | `"kg"` |  |
| `tariff_lines[].general_duty_rate` | string or null | `"Free"` |  |
| `tariff_lines[].general_duty_percent` | number or null | `16.5` |  |
| `tariff_lines[].additional_duty_notes` | string or null |  |  |

**Example input**

```json
{
  "product": "roasted coffee beans"
}
```

**Example output**

```json
{
  "hts_edition": "2026 HTS Revision 20",
  "tariff_lines": [
    {
      "hts_code": "0901.21.00",
      "page_link": "https://hts.usitc.gov/search?query=0901.21.00",
      "description": "Coffee, whether or not roasted or decaffeinated; coffee husks and skins; coffee substitutes containing coffee in any proportion: > Coffee, roasted: > Not decaffeinated",
      "column_2_rate": "Free",
      "special_rates": null,
      "unit_of_quantity": null,
      "general_duty_rate": "Free",
      "general_duty_percent": null,
      "additional_duty_notes": null
    },
    {
      "hts_code": "0901.22.00",
      "page_link": "https://hts.usitc.gov/search?query=0901.22.00",
      "description": "Coffee, whether or not roasted or decaffeinated; coffee husks and skins; coffee substitutes containing coffee in any proportion: > Coffee, roasted: > Decaffeinated",
      "column_2_rate": "Free",
      "special_rates": null,
      "unit_of_quantity": null,
      "general_duty_rate": "Free",
      "general_duty_percent": null,
      "additional_duty_notes": null
    },
    {
      "hts_code": "0901.21.00.15",
      "page_link": "https://hts.usitc.gov/search?query=0901.21.00.15",
      "description": "Coffee, whether or not roasted or decaffeinated; coffee husks and skins; coffee substitutes containing coffee in any proportion: > Coffee, roasted: > Not decaffeinated > In retail containers weighing …",
      "column_2_rate": "Free",
      "special_rates": null,
      "unit_of_quantity": "kg",
      "general_duty_rate": "Free",
      "general_duty_percent": null,
      "additional_duty_notes": null
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@harmonized-tariff-schedule",
  "visibility": "public",
  "operation": "get_import_duty",
  "version": 1,
  "input": {
    "product": "roasted coffee beans"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@harmonized-tariff-schedule\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_import_duty\",\n  \"version\": 1,\n  \"input\": {\n    \"product\": \"roasted coffee beans\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@harmonized-tariff-schedule",
  "visibility": "public",
  "operation": "get_import_duty",
  "version": 1,
  "input": {
    "product": "roasted coffee beans"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/harmonized-tariff-schedule`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_import_duty`: Get import duty. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-harmonized-tariff-schedule https://api.fous.com/mcp/tools/harmonized-tariff-schedule --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Find listed duty rates for imported products
- Look up tariff lines by HTS code
- Compare general and special duty rates
- Review additional duty notes for matching products

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Harmonized Tariff Schedule tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Harmonized Tariff Schedule account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from hts.usitc.gov when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What listed duty rates match a product?

Get import duty finds matching U.S. tariff lines and their listed duty rates from a product description or HTS code.

### Which tariff lines match an HTS code?

Get import duty returns matching tariff lines when given an HTS code.

### What additional duty notes apply?

Get import duty returns additional duty notes for matching tariff lines. Classification depends on product details, and additional duties may apply beyond listed rates.

## Related

- [H&M API](https://fous.com/tools/hm.md): H&M offers clothing and home shopping, with country-specific prices and online size stock; product details reflect current catalog information.
- [US Department of Labor API](https://fous.com/tools/us-department-of-labor.md): The US Department of Labor provides wage and workplace information, including minimum wage rates, future increases, overtime premiums, and adult private-sector break rules; break tables were last revised January 2023.
- [US Treasury API](https://fous.com/tools/us-treasury.md): US Treasury provides official daily interest rates and national debt figures for requested or latest available dates, plus quarterly reporting exchange rates using the latest preceding quarter when needed.
- [Trading Economics API](https://fous.com/tools/trading-economics.md): Trading Economics provides economic indicators, market data and country statistics, including country overviews, latest reported country comparisons and current commodity prices reflecting reported trading days.
- [IRS API](https://fous.com/tools/irs.md): IRS provides tax information and public organization records, including charity status and current-directory forms, instructions, and publications with revision and posting dates.
- [USPTO API](https://fous.com/tools/uspto.md): USPTO provides U.S. trademark records, name searches for matching filings, and current status and prosecution history for selected marks.
- [US State Department API](https://fous.com/tools/us-state-department.md): US State Department provides current travel advisories, entry rules, embassy and consulate contacts, and published monthly visa bulletin dates; guidance may be incomplete; consular agencies are excluded.
- [Grants.gov API](https://fous.com/tools/grants-gov.md): U.S. federal grant opportunities and application information.
- [All Government tools](https://fous.com/tools/category/government)
