Changelog

Changes to the tariff data we serve, the government notices we read, and what shipped in the API, newest first. Data changes and notices marked "Affects our rates" change what the API returns; API changes are releases. Current API version v1.

Data change

United Kingdom pharmaceutical duty reduced to 0%

Heading 9903.04.63, the United Kingdom lane of the Section 232 action on patented pharmaceuticals, was reduced from an additional 10% to 0%. We were serving the superseded 10% for any as_of on or after 29 September 2026.

Commerce reduced the rate effective 12:01 a.m. Eastern on 31 July 2026 (FR Doc. 2026-15799, announced in CBP CSMS #69415934). That is the same moment the action's earliest lane opened and it precedes the 29 September general date, so the United Kingdom never owed the 10% on any entry. Nothing was over-charged on a shipment already made; the wrong figure would have appeared on forward-dated quotes.

UK-origin goods on covered chapter 29 and 30 provisions now resolve to their Column 1 rate and nothing more. The heading was amended rather than withdrawn, so it is still reportable on the entry and we still return it, as a zero-rate advisory rather than a charge. If you total our response yourself, note that it contributes nothing. Verified live in production on 2 August 2026.

Data change

Corrected: Section 301 rates on 8 China lanes (note 20), and the 9903.88.70 solar-equipment exclusion now surfaced

Fixed a Section 301 data defect affecting Chinese-origin goods under U.S. note 20: expired product-exclusion subdivisions were being served as live exemptions, under-charging 8 tariff lanes (e.g. 9401.71.00.11 served 12.5% instead of the correct 37.5%) since 2026-07-24, and the live solar-equipment exclusion 9903.88.70 (note 20(www), extended through 2026-11-09 by FR 2025-21671 Annex B) was never surfaced as claimable. 392 defective exemption rows removed, 3 re-keyed to the correct claim heading with the cited expiry; the parser now rejects the defect class at ingestion and a daily audit guard asserts it stays gone. Full regression corpus (260 tuples) green against production.

API change

additional_measures now return effective_from

We have always returned effective_date_unknown, a boolean saying whether we know when a measure took effect, without ever returning the date itself. If we told you we knew, you still had to email and ask what the date was. Every entry in additional_measures now carries effective_from alongside the existing effective_to.

The field is null when the date is genuinely unknown. We do hold an internal fallback date for rows whose notice we could not parse, and we deliberately do not return it, because presenting an ingestion artefact as a legal effective date is worse than saying we do not know.

This also fills four keys the MCP tools and the AI chat have been promising and serving as null since launch: effective_dates.from, effective_dates.to, country_scope and applicable_countries. Those now carry real values.

Additive. No existing field changed shape or meaning.

Government notice No rate change CBP CSMS

CSMS # 69403181 - Harmonized System Update (HSU) 2618

as a separate action, HSU 2618 is the ACE/HTS implementation of the Section 232 patented-pharmaceuticals duties already tracked under CSMS #69395344, which we model in full (headings 9903.04.60-.69); it announces no new rate and no scope change.

Harmonized System Update 2618, created July 31, 2026, carries 174 tariff records and 591 ABI records loading the Section 232 patented-pharmaceuticals duties into ACE, effective July 31, 2026. CBP points readers to CSMS #69395344 for the substance.

This is the plumbing for an action we already model rather than a new action. Proclamation 11020 and U.S. note 40 are live in our data across headings 9903.04.60 through 9903.04.69, including the 100% default lane, the 15% lane for the EU-27, Japan, Korea, Switzerland and Liechtenstein, the United Kingdom lane, the Annex III window that runs to September 28, 2026, and the claimable generics relief under 9903.04.67.

One operational note for anyone reconciling our numbers against the published schedule. This update is what put the 9903.04.6x range into the USITC export, and the exported text for the United Kingdom heading 9903.04.63 still reads "+10%". That figure was superseded on July 31, 2026, the same day, by a Commerce notice reducing it to 0% (FR Doc. 2026-15799, announced in CBP CSMS #69415934). We serve the reduced 0% rate. Where the published schedule and a later Commerce or CBP instrument disagree, the later instrument governs, and the schedule catches up afterwards.

API change

USMCA relief on forced-labor duties is surfaced as a claim, and batch now matches single

U.S. note 52(g) and (h), headings 9903.05.93 (Canada) and 9903.05.94 (Mexico): the forced-labor duty does not apply to goods entered free of duty under the USMCA. Whether a given shipment qualifies is a per-shipment claim, and we cannot assert it from an HTS code, an origin and a date alone. So we charge the duty by default and return the heading in available_exemption on the measure. If your entry qualifies and you file that heading, you pay nothing on that leg. Erring high is the right default when we cannot prove the relief.

Three outcomes, all pinned in our regression corpus. A USMCA base rate already served means we assumed the claim, and the measure is suppressed. Canada or Mexico origin without a USMCA base means the duty is charged with the exemption surfaced. Any other origin is charged with no exemption offered.

Separately, a parity bug worth calling out. /api/v1/tariffs/resolve_batch was dropping available_exemption entirely, both for these carve-out lanes and for the described-article Section 301 exclusions under 9903.88.69, even though the batch response has always documented the field. The same HTS code and origin answered differently depending on which endpoint you called, and batch clients saw a duty applied with no indication that relief was claimable. Batch and single now agree.

API change

Section 301 forced-labor duty now applies to EU member states

The EU leg of the Section 301 forced-labor action (headings 9903.05.38 and 9903.05.39, U.S. note 52) was keyed internally to the country code "EU". That is not an ISO 3166-1 country and it is never what an importer declares as origin, so the duty never fired for any of the 27 member states. Every EU line with a column 1 rate under 10% was returned base-only, at full confidence, with no warning attached.

This ran from the start of the regime on 2026-07-24 until 2026-07-31. If you priced EU-origin goods in that window, re-run them. Japan, South Korea, Switzerland and Taiwan carry real ISO codes and were correct throughout.

The note 52(j)(2) exemption list (9903.05.97) was keyed the same way. It has been re-keyed together with the charge, so the duty and its exemption stay in step rather than one applying without the other.

API change

Section 232 patented pharmaceuticals (9903.04.60 through .69)

Proclamation 11020 put a Section 232 action on patented and branded pharmaceuticals, covering 149 provisions across chapters 29 and 30. We now model the whole family. It returns under program section_232 with program_detail pharmaceuticals.

The arithmetic is not uniform across the family, and that is the part worth knowing before you total anything yourself. 9903.04.60 (100%) and 9903.04.62 (15%) are all-in: the total is the higher of the Section 232 rate and the column 1 rate, not the sum. 9903.04.64 (plus 20%) is additive: the total is column 1 plus the rate. The remaining headings in the family levy nothing.

The United Kingdom lane, 9903.04.63, is one of those. It was set at plus 10% by the proclamation, then reduced to 0% before any entry could be charged: Commerce reduced it effective 12:01am Eastern on July 31, 2026 (FR Doc. 2026-15799, announced in CBP CSMS #69415934), which is the same moment the action's earliest lane opened. UK-origin goods on covered provisions therefore pay their column 1 rate and nothing more. The heading is still reportable on the entry, so we return it as a 0% advisory rather than dropping it, and you should still declare it.

Relief under this action is surfaced as a claim rather than applied silently. Where a heading offers relief you have to qualify for and file, we keep charging the duty and return the heading in available_exemption on the measure, so you can see it and claim it rather than discover it at entry.

Government notice No rate change Federal Register

Continuation of the National Emergency With Respect to Lebanon

a National Emergencies Act 202(d) renewal of the EO 13441 Lebanon emergency, which is an IEEPA blocking-sanctions program administered by OFAC, not a duty program; the notice contains no tariff text, names no HTS code or Chapter 99 heading, and changes no rate.

On July 29, 2026 the President continued for one year the national emergency with respect to Lebanon originally declared in Executive Order 13441 of August 1, 2007. This is a routine annual renewal under section 202(d) of the National Emergencies Act.

Executive Order 13441 authorises blocking the property of persons undermining Lebanon's sovereignty or democratic institutions. It is a targeted sanctions program, not a tariff action: it names no Harmonized Tariff Schedule provisions and imposes no duties. The renewal notice adds nothing beyond extending the emergency.

No effect on any duty rate we report. Sanctions and blocking programs are outside what this API models; we resolve Column 1 and Column 2 base rates, Chapter 99 additional measures such as Section 301, Section 232 and Section 122, their exemptions, and trade-agreement special rates. Screening a counterparty against OFAC lists is a separate compliance question from the duty owed on a classified good.

API change

Section 301 product exclusions (9903.88.69) are now claim-conditional

Many Section 301 List 3 lines carry a USTR product exclusion under 9903.88.69 (note 20(vvv)) that applies to a specific product description, not the entire statistical line. We had been treating these as line-wide waivers and returning 0%, which under-charged any importer whose goods did not match the narrow description.

The default rate on these lines now returns the full List 3 duty. For example, 8473.30.11.80 from China now returns 25%. The exclusion is surfaced explicitly as an available_exemption object on the section_301 measure; it names 9903.88.69 and states that the duty applies unless the entry qualifies and the exclusion is claimed with documentation.

If your goods match the excluded description, you still pay 0% by filing 9903.88.69 at entry, so your effective duty is unchanged. If your integration reads the flat applicable_ad_valorem_rate, note that it now reflects the line default; read available_exemption to see the exclusion you may claim.

Lines that are bare statistical numbers with no product description remain fully excluded and continue to return 0%.

API change

Section 301 rates corrected for 9401.71.00 seating from China

Heading 9401.71.00 (seats with metal frames, upholstered) is split across Section 301 lists at the 10-digit statistical suffix, and we had been serving a single 7.5% rate across every suffix. That was wrong in both directions, and both are now corrected.

Three suffixes are on neither list and now correctly carry no Section 301 list duty: 9401.71.00.01 (highchairs and booster seats), .05 (infant walkers), and .06 (bouncers). These were previously over-charged at 7.5%.

Four lanes are on List 3 and now correctly carry 25% under 9903.88.04: 9401.71.00.08 (activity centers), .11 (other household), .31 (other), and the bare 8-digit heading. These were previously under-charged at 7.5%. 9401.71.00.07 (children's swings) remains on List 4A at 7.5%.

For China origin, the Section 301 forced-labor duty (9903.05.31, +12.5%) stacks on top where it applies. The correction also applies to past as_of dates, so a historical lookup resolves to the same corrected answer.

Government notice No rate change CBP CSMS

CSMS # 69395228 - Quota Processing Issue in the Automated Commercial Environment (ACE)

this is a CBP operational notice about a quota-processing defect in ACE; it names no HTS codes, moves no duty rate, and changes no tariff-rate-quota threshold, and quotas are outside what we model (we resolve Column 1/2 base rates and Chapter 99 additional measures, not quota or licensing administration).

CBP has reported a defect in how the Automated Commercial Environment (ACE) processes quotas for certain Chapter 99 HTS codes, and says it is investigating and will follow up when a fix is in place. CBP did not identify the affected codes.

This does not affect any rate returned by the API. Quota and licensing administration sits outside what we model — we resolve Column 1 and Column 2 base rates and Chapter 99 additional measures (Section 301, 232, 122). No duty rate, effective date, or quota threshold in our data moves as a result of this notice, and no action is needed on your side.

We are tracking CBP's follow-up message in case the resolution carries a substantive tariff change.

Government notice No rate change Federal Register

Continuation of the National Emergency With Respect to Brazil

a National Emergencies Act 202(d) renewal of the EO 14323 Brazil emergency with no operative tariff text; the IEEPA duty authority it once carried terminated 2026-02-23 (Learning Resources v. Trump) and Brazil duties now come from Section 301 notes 50 and 52, which this notice does not touch.

On July 28, 2026 the President continued for one year the national emergency with respect to Brazil originally declared in Executive Order 14323 of July 30, 2025. This is a routine renewal under section 202(d) of the National Emergencies Act. The notice contains no tariff schedule, no Chapter 99 heading, and no change to any duty rate.

The IEEPA tariff authority that once rested on this emergency ended on February 23, 2026 after the Supreme Court's decision in Learning Resources v. Trump; continuing the emergency preserves the sanctions and blocking authorities, not duty collection. US duties on Brazilian goods today come from the Section 301 actions: +25% on all products of Brazil under heading 9903.05.01 (U.S. note 50, effective 2026-07-22) and +12.5% under the forced-labor action at 9903.05.27 (U.S. note 52, effective 2026-07-24), which stack on each other.

Rates returned by the API are unchanged. Verified against live production on 2026-07-29: 6909.19.50.95 / BR resolves to 4% base + 25% + 12.5%, and 6404.11.90 / BR to 20% base + 25% + 12.5%.

API change

Forced-labor exemptions resolve, including the USMCA and CAFTA-DR lanes

The forced-labor action carries a large exemption structure, and applying the duty without
it would over-charge every exempted line across all 60 economies. All of it now resolves,
and the response names the exempting heading in `suppressed_measures` so you can show a
user why a duty did not apply.

* 2,120 product exemptions applying to every economy (U.S. note 52(b) to (e)):
`9903.05.86` general, `9903.05.88` civil aircraft, `9903.05.89` pharmaceutical.
* Thirteen economy-specific lists (`9903.05.96` to `9903.06.21`), for the United
Kingdom, the European Union, Switzerland, Malaysia, Cambodia, Guatemala, El Salvador,
Argentina, Bangladesh, Taiwan, Indonesia, Ecuador and Jordan.
* Goods already subject to Section 232 are excluded under `9903.05.90`.
* USMCA duty-free goods of Canada and Mexico, under `9903.05.93` and `9903.05.94`.
* CAFTA-DR textile and apparel goods, under `9903.05.95`.

The FTA lanes resolve only where the base rate for that same request came from the
agreement in question, so the exemption follows the preference claim rather than the
origin alone.

Some exemptions cannot be resolved from an HTS code. Goods in transit, donations,
informational materials and a set of narrowly described articles depend on a per-entry
claim or describe something narrower than the subheading they sit in. Those still return
the duty, because suppressing them would under-state every other good in the same
subheading.

API change

Brazil now returns both of its Section 301 actions

Brazilian origins are covered by two separate Section 301 actions, and the response now
carries both:

* `9903.05.01`, +25%, the country action under U.S. note 50, effective 22 July 2026
* `9903.05.27`, +12.5%, the forced-labor action under U.S. note 52, effective 24 July 2026

`6404.11.90` / BR now returns 57.5% (20% base + 25% + 12.5%).

The two are separate investigations. Neither heading's exception list names the other,
the notice carries no non-cumulation language, and the Presidential memorandum states
that "each tariff action directed in this memorandum is separate from every other." We
therefore read them as stacking. None of the primary sources addresses the interaction
directly, so if your broker reads it differently we would like to hear it.

This also closes a regression in which the note 50 duty disappeared after the 23 July
sync. Two independent causes: a scrape arrives as six chunked uploads and only one
carries Chapter 99 data, but all six were running the stale-capping step, so survival
depended on which job finished last; and a guard added on 23 July required a note body
that the USITC feed does not export. Both are fixed, and the duty is now declared in a
way the feed cannot silently drop.

API change

Section 301 forced-labor duties now returned for all 60 economies

The Section 301 forced-labor action, effective 24 July 2026, was not being returned. Any
covered origin resolved without it, at full confidence and with no warning, so the answer
was understated by 10 to 12.5 points with nothing to signal it.

All 60 economies now resolve, under headings `9903.05.20` through `9903.05.84`.

* `6909.19.50` / CN → 41.5% (base 4% + 25% List 3 + 12.5%)
* `6909.19.50` / IN → 14% (base 4% + 10%)
* `9503.00.00` / JP → 12.5%

Two rate structures, and they are not interchangeable. Most economies are additive.
Five are not: the European Union, Japan, Korea, Switzerland and Taiwan use a combined cap,
where the answer is the higher of the threshold or the Column 1 rate, not the sum. The
thresholds differ, and the EU and Taiwan cap at 10% rather than 12.5%. The Presidential
memorandum behind the action puts it directly: the tariff is imposed "so that the sum of
the MFN tariff and the tariff imposed pursuant to these investigations shall be 12.5
percent, and where such product's MFN tariff is greater than or equal to 12.5 percent,
the Trade Representative shall impose a section 301 tariff of zero."

Every economy's rate was checked line by line against that memorandum.

Sources: CBP CSMS #69326983, FR 2026-15181, FR 2026-15274.

Government notice No rate change Section 301 Federal Register

Notice of Actions in Section 301 Investigations of Acts, Policies, and Practices of Various Economies Related to the Failure of Each Economy To Impose and Effectively Enforce a Prohibition on the Importation of Goods Produced With Forced Labor

this is the source already modeled: the Section 301 forced-labor duties of 10% to 12.5% across sixty economies, effective 2026-07-24, live in production.

USTR's Notice of Actions imposes additional duties of 10% to 12.5% on imports from sixty economies under headings 9903.05.20 through 9903.05.84, effective 12:01 a.m. ET on July 24, 2026, with general exemptions at 9903.05.85 through 9903.05.92 and economy-specific exemptions at 9903.06.01 through 9903.06.21.

This action is already reflected in the API, including the exemption lists. Where an economy also carries its own country-level Section 301 action, the two stack: Brazilian goods land at base plus 25% under note 50 plus 12.5% under note 52. No further change results from this notice.

Government notice No rate change Section 301 Federal Register

Actions by the United States in the Investigations Under Section 301 of the Trade Act of 1974 of the Acts, Policies, and Practices of 60 Economies Related to the Failure of Each Economy To Impose and Effectively Enforce a Prohibition on the Importation...

the Presidential determination directing the Section 301 forced-labor action already modeled; the operative duties are USTR's companion Notice of Actions, live since 2026-07-24.

This document records the Presidential actions in the Section 301 investigations of sixty economies over the failure to prohibit and enforce against imports of goods produced with forced labor. It is the directing instrument; the duties themselves come from USTR's companion Notice of Actions.

Those duties, 10% to 12.5% under headings 9903.05.20 through 9903.05.84 with effect from July 24, 2026, are already live in the API together with their exemption lists. No change results from this document.

Government notice No rate change CBP CSMS

CSMS # 69357309 - Harmonized System Update (HSU) 2617

Harmonized System Update 2617 carries the Section 301 forced-labor records already modeled plus Fish and Wildlife import flag changes.

Harmonized System Update 2617 contains 124 tariff records and 379 broker interface records. It carries the Section 301 forced-labor tariff records, effective July 24, 2026, and changes several Fish and Wildlife Service import flags from FW2 to FW1 following a final rule amending the shellfish definition.

The forced-labor duties are already live in the API under headings 9903.05.20 through 9903.05.84. Partner-government agency import flags govern which agency must review a shipment; they carry no duty and are outside what this API models. No rate changes.

Data change

Section 122 surcharge expires July 23

The 10% Section 122 import surcharge under heading 9903.03.01 applies to entries through July 23, 2026 and expires after that date. From July 24, resolver responses no longer include the surcharge; total rates on affected codes drop by 10 percentage points unless another measure applies.

Effective July 23, 2026
Government notice No rate change Section 301 CBP CSMS

CSMS # 69326983 - GUIDANCE: Section 301 Forced Labor Import Duties

CBP filing guidance for the Section 301 forced-labor action already modeled; the 60 economies, the 10% and 12.5% rates, the 9903.05.20-.84 headings, and the 2026-07-24 effective date all match what production returns.

CBP issued filing instructions for USTR's Section 301 forced-labor action: additional duties of 10% to 12.5% on imports from sixty economies, under headings 9903.05.20 through 9903.05.84, effective for goods entered on or after 12:01 a.m. ET on July 24, 2026, with general exemptions at headings 9903.05.85 through 9903.05.92 and economy-specific exemptions at 9903.06.01 through 9903.06.21.

This action is already reflected in the API, including the exemption lists and the fact that Brazil takes this duty on top of its own country action, landing Brazilian goods at base plus 25% plus 12.5%. No change results from this guidance.

Government notice No rate change CBP CSMS

CSMS # 69324417 - Harmonized System Update (HSU) 2616

Harmonized System Update 2616 carries the Brazil Section 301 records already modeled plus one FDA import flag change.

Harmonized System Update 2616 contains 20 tariff records and 80 broker interface records. It carries the Section 301 Brazil tariff records, effective July 22, 2026, and changes one FDA import flag on subheading 2941.50.0000 from FD2 to FD1.

The Brazil Section 301 duty is already live in the API at +25% under heading 9903.05.01. Partner-government agency import flags govern which agency must review a shipment; they carry no duty and are outside what this API models. No rate changes.

Government notice No rate change Federal Register

Continuation of the National Emergency With Respect to Mali

a National Emergencies Act 202(d) renewal of the EO 13882 Mali emergency, carrying sanctions authority with no tariff text and touching no watched program.

On July 21, 2026 the President continued for one year the national emergency with respect to the situation in Mali, originally declared in Executive Order 13882 of July 26, 2019. This is a routine renewal under section 202(d) of the National Emergencies Act.

The notice contains no tariff schedule, no Chapter 99 heading, and no duty rate. The underlying emergency supports sanctions and blocking authorities, not import duties, and Mali carries no trade-remedy measure in the API. Rates are unchanged.

Government notice No rate change Federal Register

Further Strengthening Actions Taken To Adjust Imports of Aluminum Into the United States

Proclamation 11045 creates a Commerce-administered onshoring incentive granting approved companies a half-rate 232 allowance on primary aluminum; it is company and quantity specific, sets no new rate or heading, and expressly defers any HTSUS change to a later Commerce notice.

Proclamation 11045 directs the Secretary of Commerce to establish an investment incentive program under Section 232. Companies that submit an approved onshoring plan, committing to build, refurbish, or expand a U.S. primary aluminum facility with construction starting by January 20, 2029, may annually import a quantity of primary aluminum matching that facility's anticipated output at half the Section 232 rate otherwise in effect.

No published aluminum rate changes and no Chapter 99 heading is created. The benefit attaches to an approved company and a specific quantity, not to a tariff code and country of origin, so it is not something a rate API can resolve, in the same way as the existing auto-parts import adjustment offset. The proclamation directs Commerce to decide separately whether any tariff schedule changes are needed and to publish them by Federal Register notice; that future notice is the thing to watch. Aluminum rates returned today are unchanged.