USITC HTS Tariff Revision Diff Monitor avatar

USITC HTS Tariff Revision Diff Monitor

Pricing

from $1.00 / 1,000 results

Go to Apify Store
USITC HTS Tariff Revision Diff Monitor

USITC HTS Tariff Revision Diff Monitor

Compare official USITC Harmonized Tariff Schedule revisions and return added, removed, and modified HTS codes with before/after duty data.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

AetherPromptStudio

AetherPromptStudio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

7.7 days

Issues response

16 days ago

Last modified

Categories

Share

Compare official U.S. Harmonized Tariff Schedule releases and export the tariff codes that changed. This HTS tariff change API detects added, removed, and modified codes, preserves before-and-after descriptions and duty fields, and links every result to both official USITC source files.

Use the Actor in Apify Console, call it synchronously when an integration needs the records immediately, or run it asynchronously for scheduled compliance and data-pipeline workflows. No USITC account, browser automation, or private data is required.

What can this HTS tariff change API do?

  • Compare the latest HTS release with its immediate predecessor automatically.
  • Compare an explicit Basic Edition or revision pair from 2017 onward.
  • Filter changes to one or more HTS prefixes, such as 84, 3004, or 8507.20.
  • Return added, removed, and modified HTS numbers.
  • Restrict results to changes involving a duty field.
  • Export results through Apify as JSON, JSONL, CSV, Excel, XML, or RSS.
  • Supply stable record keys, changed-field flags, publication metadata, and official source URLs for downstream deduplication and audits.

Whitespace-only source corrections are suppressed. HTS lookup tools answer what a code says now; this Actor answers what changed between two published releases.

Common business uses

  • Customs brokers and import-compliance teams can monitor classifications used in client or product catalogs.
  • Procurement and sourcing teams can detect tariff changes affecting planned purchases.
  • Trade counsel and researchers can review precisely which descriptions or duty fields changed.
  • Data teams can feed normalized tariff changes into ERP, product-master, alerting, and business-intelligence workflows.

Example input

{
"year": 2026,
"fromRevision": 14,
"toRevision": 15,
"htsPrefixes": ["84", "85"],
"changeTypes": ["added", "removed", "modified"],
"dutyChangesOnly": false,
"maxResults": 500
}

Omit both revision numbers to compare the latest available release with its immediate predecessor. If you provide one revision number, you must provide the other.

Example output

Each default-dataset item represents one changed HTS number. Fields that did not exist in one release are returned as null.

{
"recordKey": "usitc-hts-2026-15-modified-9903.03.06",
"changeType": "modified",
"htsNumber": "9903.03.06",
"changedFields": ["description", "general"],
"descriptionChanged": true,
"dutyChanged": true,
"beforeDescription": "Previous official description",
"afterDescription": "Updated official description",
"beforeGeneralDuty": "Previous duty value",
"afterGeneralDuty": "Updated duty value",
"fromRelease": "2026 HTS Revision 14",
"toRelease": "2026 HTS Revision 15",
"fromSourceUrl": "https://www.usitc.gov/..._json.json",
"toSourceUrl": "https://www.usitc.gov/..._json.json"
}

The actual descriptions, duties, changed fields, and source URLs always come from the selected official releases; the abbreviated values above illustrate the output structure.

Run through the API and receive records immediately

The synchronous endpoint waits for the Actor to finish and returns the default dataset items directly. Set APIFY_TOKEN in your environment instead of placing a secret token in source code.

curl --request POST \
--url "https://api.apify.com/v2/acts/azCypA4Ujs9Elj77Z/run-sync-get-dataset-items" \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header "Content-Type: application/json" \
--data '{}'

For a filtered comparison, replace {} with the example input above. The endpoint returns a JSON array, which can legitimately be empty when no tariff changes match the selected filters.

Run asynchronously and retrieve the dataset

The asynchronous run endpoint returns run metadata, not the final dataset items. Start the run, wait until its status is SUCCEEDED, and then read the dataset identified by defaultDatasetId.

# 1. Start a run. Save the returned run ID.
curl --request POST \
--url "https://api.apify.com/v2/acts/azCypA4Ujs9Elj77Z/runs" \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header "Content-Type: application/json" \
--data '{}'
# 2. Poll the run until status is SUCCEEDED.
curl --url "https://api.apify.com/v2/actor-runs/RUN_ID" \
--header "Authorization: Bearer $APIFY_TOKEN"
# 3. Use defaultDatasetId from the run response.
curl --url "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true" \
--header "Authorization: Bearer $APIFY_TOKEN"

Never post an API token in an Actor issue, screenshot, log excerpt, or support message. A run ID is sufficient for most troubleshooting.

Why the log says LIMITED PERMISSIONS

LIMITED PERMISSIONS is the Actor's security mode, not an Apify billing-plan restriction. The Actor can read its input and write to its own default dataset and key-value store, but it cannot inspect unrelated data in your Apify account. Paying and free users receive the same comparison logic and output.

The Actor does not need full account access because it reads public USITC files and writes only the results and summary created by the current run. Limited permissions therefore protect user data without preventing API or dataset output.

Troubleshooting empty API results

  1. Confirm that the run reached SUCCEEDED; asynchronous /runs responses do not contain the dataset items.
  2. Read defaultDatasetId from that specific run rather than reusing a dataset ID from an older run.
  3. Temporarily remove htsPrefixes, set dutyChangesOnly to false, and allow all three change types. A valid comparison can produce zero filtered rows.
  4. Leave both revisions empty to test the current latest-versus-previous pair.
  5. Check the run's SUMMARY record. It distinguishes the total changes found from the number that matched the supplied filters.

If the problem continues, open an Actor issue with the run ID, sanitized input, and API endpoint. Remove tokens and other credentials before posting.

Pricing and resource controls

The Store pricing panel shows the current pay-per-event prices before a run. The Actor uses bounded inputs, a 512 MB default memory setting, a 300-second run timeout, and a maximum result limit of 2,000. Platform usage is included in the configured event pricing.

Official source and limitations

The Actor discovers and compares public JSON releases linked from the official USITC HTS archive. It validates release size and required fields before producing results.

This Actor performs informational change detection. USITC data and this diff are not a binding customs classification or legal ruling. Verify relevant HTS provisions against the official releases and consult U.S. Customs and Border Protection, a licensed customs broker, or qualified trade counsel before acting on a classification or duty decision. This independent product is not affiliated with or endorsed by USITC or CBP.