USITC HTS Tariff Revision Diff Monitor
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor 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, or8507.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
- Confirm that the run reached
SUCCEEDED; asynchronous/runsresponses do not contain the dataset items. - Read
defaultDatasetIdfrom that specific run rather than reusing a dataset ID from an older run. - Temporarily remove
htsPrefixes, setdutyChangesOnlytofalse, and allow all three change types. A valid comparison can produce zero filtered rows. - Leave both revisions empty to test the current latest-versus-previous pair.
- Check the run's
SUMMARYrecord. 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.