🚢 HTS Tariff & Trade Scraper avatar

🚢 HTS Tariff & Trade Scraper

Pricing

from $9.00 / 1,000 results

Go to Apify Store
🚢 HTS Tariff & Trade Scraper

🚢 HTS Tariff & Trade Scraper

Extract daily Harmonized Tariff Schedule updates from USITC and USTR releases. Protect your ecommerce supply chain margins with precise docket data.

Pricing

from $9.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

Tariff Trade Change Digest | Federal Register + HTS Monitor

Managing international ecommerce logistics requires constant vigilance over Harmonized Tariff Schedule (HTS) codes and import regulations. This dedicated web scraper automatically monitors USITC HTS releases, USTR notices, and the Federal Register to extract crucial trade data directly from the source. When you run this scraper, it captures every new ruling, agency update, and document type, allowing you to quickly spot policy changes that might affect your supply chain costs or shipping margins.

Designed for ecommerce operations, freight forwarders, and procurement teams, this tool eliminates the need to manually browse dense government websites. You can easily schedule daily digests to scrape target keywords or specific commodity updates. The scraper navigates the official pages, pulls out the vital details, and structures the data into a clean, searchable format. Every execution delivers precise outputs, including the issuing government agency, publication dates, official docket numbers, and direct URLs to the original notices.

Integrate these automated digests into your daily operations to ensure no tariff hike catches your business off guard. You can export the extracted data seamlessly into your existing logistics platforms or set up webhook alerts to notify your team the instant a relevant trade policy shifts. Protect your bottom line by using reliable, automated tools to extract essential regulatory data.

Store Quickstart

Run this actor with your target input. Results appear in the Apify Dataset and can be piped to webhooks for real-time delivery. Use dryRun to validate before committing to a schedule.

Key Features

  • 🏛️ Government-sourced — Pulls directly from official agency feeds — no third-party aggregators
  • ⏱️ Timely digests — Daily/weekly rollups of new filings, rulings, or actions
  • 🔍 Keyword watchlists — Flag items matching your compliance/legal watch terms
  • 📊 Structured metadata — Agency, date, docket, document type, link — all dataset-ready
  • 📡 Webhook alerts — Push to legal/compliance teams the moment new items match watchlist

Use Cases

WhoWhy
DevelopersAutomate recurring data fetches without building custom scrapers
Data teamsPipe structured output into analytics warehouses
Ops teamsMonitor changes via webhook alerts
Product managersTrack competitor/market signals without engineering time

Input

FieldTypeDefaultDescription
topicsarrayrequiredOne entry = one digest row. Keep each topic narrow: one Federal Register query plus one focused HTS keyword and/or small
watchTermsstringComma-separated terms added to every topic for highlighting notices and context.
lookbackDaysinteger7Default lookback for Federal Register and USTR context filtering.
maxDocsPerTopicinteger20Upper bound on Federal Register documents returned for each topic.
maxPagesPerTopicinteger2Hard page cap for the Federal Register query. Keep low for recurring runs.
maxHtsMatchesPerTopicinteger15Default cap for HTS evidence rows when topic.hts.maxMatches is omitted.
deliverystring"dataset"dataset stores the digest JSON in the Apify dataset/local output. webhook posts the full payload to webhookUrl.
webhookUrlstringRequired only when delivery=webhook.

Input Example

{
"lookbackDays": 7,
"maxDocsPerTopic": 20,
"maxPagesPerTopic": 2,
"maxHtsMatchesPerTopic": 15,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "tariff-trade-change-digest-state",
"federalRegisterApiUrl": "https://www.federalregister.gov/api/v1/documents.json",
"htsBaseUrl": "https://hts.usitc.gov/reststop/",
"ustrRssUrl": "https://ustr.gov/rss.xml",
"includeUstrContext": false,
"requestTimeoutSeconds": 30,
"notifyOnNoChange": true,
"dryRun": false
}

Output

FieldTypeDescription
metaobject
errorsarray
digestsarray
digests[].topicIdstring
digests[].topicNamestring
digests[].checkedAttimestamp
digests[].statusstring
digests[].baselineCreatedboolean
digests[].changedSinceLastRunboolean
digests[].actionNeededboolean
digests[].recommendedActionstring
digests[].summarystring
digests[].signalTagsarray
digests[].watchTermsarray
digests[].federalRegisterQueryobject
digests[].htsQueryobject
digests[].countsobject
digests[].evidenceobject
digests[].errornull

Output Example

{
"meta": {
"generatedAt": "2026-04-06T05:49:00.539Z",
"now": "2026-04-03T12:00:00.000Z",
"topicCount": 1,
"changedTopicCount": 1,
"actionNeededCount": 1,
"currentHtsRelease": "2026HTSRev4",
"totalFederalRegisterDocs": 2,
"newFederalRegisterDocs": 1,
"totalHtsMatches": 3,
"htsChangedCount": 1,
"noticeHitCount": 1,
"ustrContextCount": 1,
"snapshot": {
"key": "tariff-trade-local-proof",
"loadedFrom": "local",
"savedTo": "local"
},
"sourceCoverage": {
"federalRegisterApiUrl": "https://www.federalregister.gov/api/v1/documents.json",
"htsBaseUrl": "https://hts.usitc.gov/reststop/",
"ustrRssUrl": "https://ustr.gov/rss.xml",
"ustrContextEnabled": true
},
"warnings": [],
"executiveSummary": {
"overallStatus": "action_needed",
"brief": "1 topic(s) have tariff/trade changes requiring follow-up.",
"actionItems": [
"Review 1 action-needed topic(s): Section 301 China Tariffs",
"1 tracked HTS line(s) changed across the watchlist",
"1 new Federal Register document(s) matched topic queries",
"1 new USITC notice(s) matched topic terms",
"Treat USTR RSS items as context only until Federal Register or HTS confirms the change"
],
"topicStatuses": [
{
"topicId": "section-301",
"topicName": "Section 301 China Tariffs",

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~tariff-trade-change-digest/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "lookbackDays": 7, "maxDocsPerTopic": 20, "maxPagesPerTopic": 2, "maxHtsMatchesPerTopic": 15, "delivery": "dataset", "datasetMode": "all", "snapshotKey": "tariff-trade-change-digest-state", "federalRegisterApiUrl": "https://www.federalregister.gov/api/v1/documents.json", "htsBaseUrl": "https://hts.usitc.gov/reststop/", "ustrRssUrl": "https://ustr.gov/rss.xml", "includeUstrContext": false, "requestTimeoutSeconds": 30, "notifyOnNoChange": true, "dryRun": false }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/tariff-trade-change-digest").call(run_input={
"lookbackDays": 7,
"maxDocsPerTopic": 20,
"maxPagesPerTopic": 2,
"maxHtsMatchesPerTopic": 15,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "tariff-trade-change-digest-state",
"federalRegisterApiUrl": "https://www.federalregister.gov/api/v1/documents.json",
"htsBaseUrl": "https://hts.usitc.gov/reststop/",
"ustrRssUrl": "https://ustr.gov/rss.xml",
"includeUstrContext": false,
"requestTimeoutSeconds": 30,
"notifyOnNoChange": true,
"dryRun": false
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/tariff-trade-change-digest').call({
"lookbackDays": 7,
"maxDocsPerTopic": 20,
"maxPagesPerTopic": 2,
"maxHtsMatchesPerTopic": 15,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "tariff-trade-change-digest-state",
"federalRegisterApiUrl": "https://www.federalregister.gov/api/v1/documents.json",
"htsBaseUrl": "https://hts.usitc.gov/reststop/",
"ustrRssUrl": "https://ustr.gov/rss.xml",
"includeUstrContext": false,
"requestTimeoutSeconds": 30,
"notifyOnNoChange": true,
"dryRun": false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Run daily for active watchlists; weekly for passive monitoring.
  • Webhook delivery works well for compliance team Slack channels — include docket URL for 1-click access.
  • Use watchKeywords generously — false positives are cheap to triage, false negatives miss filings.
  • Pair with regulatory-change-monitor for cross-agency coverage.
  • Archive Dataset rows weekly for long-term compliance evidence retention.

FAQ

How far back does history go?

This actor monitors forward-only — new items since first run. For historical data, use the agency's own search tool.

What timezones are used?

All timestamps are UTC. Use your downstream pipeline to convert to agency-local time if needed.

Does it translate non-English content?

No — original language is preserved. Use downstream translation services if needed.

Is the data official?

Yes — sourced directly from official government websites and feeds. Not a third-party aggregator.

Can I use this for legal research?

For alerting and monitoring, yes. For litigation research, cross-verify with primary sources (agency websites) — this actor is a monitoring tool, not a legal database.

Government & Regulatory cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.003 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01

No subscription required — you only pay for what you use.

⭐ Was this helpful?

If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.

Bug report or feature request? Open an issue on the Issues tab of this actor.