Section 301 Tools
Tools for checking Section 301 trade remedy coverage: whether additional duties apply to an HTS code, at what rate, under which list, and with what Chapter 99 bridge code.
Data coverage
Current coverage facts, so you know exactly what the data does and does not answer:
- Base coverage is loaded: 10,716 active coverage rows across 10,331 unique HTS codes, sourced from the Yale Budget Lab Tariff-ETRs dataset plus parsed 2024+ Federal Register modification notices (the four-year review rate increases).
- Lists 1, 2, and 3 are not differentiated: all three carry a 25% rate and are grouped as
"Lists 1/2/3"in the data. List-level values in responses are"Lists 1/2/3","List 4A", and"Four-Year Review". - Active exclusions are not yet loaded: the exclusions table exists but is empty, so
exclusion_statusis alwaysnull. A code reported as covered may in fact have an active product-specific exclusion. - Verify against USTR before entry filing: use these tools for research and screening, and confirm current rates, list membership, and exclusion status against USTR and the current HTSUS before filing an entry.
get_301_status
Check if Section 301 additional duties apply to an HTS code. Returns whether the code is covered, which list, the duty rate, effective date, Chapter 99 code, and any active exclusion.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
hts_code | string | Yes | - | 8-digit HTS code (e.g., "8413.70.20" or "84137020") |
country_of_origin | string | No | "CN" | ISO country code (CN for China) |
Response
{
"applies": true,
"list": "Lists 1/2/3",
"rate_percent": 25.0,
"effective_date": "2018-07-06",
"end_date": null,
"ch99_code": "9903.88.01",
"exclusion_status": null,
"exclusion_expiration": null,
"authority": "83 FR 28710"
}When the code is not covered, the response is {"applies": false} with all other fields null.
Example
{
"hts_code": "8413.70.20",
"country_of_origin": "CN"
}search_301_coverage
Search Section 301 coverage by HTS code pattern. Matches any code containing the digits of the query, so a 4-digit prefix returns all covered codes under that heading.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | HTS code or partial code to search (e.g., "8413" or "84137020") |
list_filter | string | No | null | Filter by list name (e.g., "Lists 1/2/3", "List 4A", "Four-Year Review") |
limit | integer | No | 50 | Maximum results |
Response
{
"query": "8413",
"results": [
{
"hts_code": "84137020",
"list": "Lists 1/2/3",
"country": "CN",
"rate_percent": 25.0,
"effective_date": "2018-07-06",
"end_date": null,
"ch99_code": "9903.88.01",
"authority": "83 FR 28710"
}
],
"count": 24
}Example
{
"query": "8413",
"list_filter": "Lists 1/2/3"
}get_301_list_summary
Get summary statistics for Section 301 lists: code count, rate range, and effective date range per list. Call with no arguments to see all lists.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
list_name | string | No | null | Specific list (e.g., "Lists 1/2/3", "List 4A") or omit for all |
Response
{
"lists": [
{
"list": "Lists 1/2/3",
"code_count": 7411,
"min_rate": 25.0,
"max_rate": 25.0,
"earliest_effective": "2018-07-06",
"latest_effective": "2018-09-24"
},
{
"list": "List 4A",
"code_count": 2886,
"min_rate": 7.5,
"max_rate": 7.5,
"earliest_effective": "2019-09-01",
"latest_effective": "2019-09-01"
},
{
"list": "Four-Year Review",
"code_count": 389,
"min_rate": 25.0,
"max_rate": 100.0,
"earliest_effective": "2024-09-27",
"latest_effective": "2026-01-01"
}
],
"count": 3
}Example
{}get_301_database_status
Get Section 301 database statistics: document count, coverage counts, Chapter 99 codes, and per-list breakdowns. Takes no parameters.
Response
{
"status": "initialized",
"documents": 175,
"active_coverage_rows": 10716,
"unique_hts_codes": 10331,
"exclusions": 0,
"chapter99_codes": 0,
"lists": [
{
"list": "Lists 1/2/3",
"code_count": 7411,
"min_rate": 25.0,
"max_rate": 25.0,
"earliest_effective": "2018-07-06",
"latest_effective": "2018-09-24"
}
]
}If the Section 301 tables have not been created yet, the response is {"status": "not_initialized"} with a message.
Example
{}