US Customs Records & Import Trade Data Scraper — ImportYeti avatar

US Customs Records & Import Trade Data Scraper — ImportYeti

Pricing

from $1.50 / 1,000 record scrapeds

Go to Apify Store
US Customs Records & Import Trade Data Scraper — ImportYeti

US Customs Records & Import Trade Data Scraper — ImportYeti

Search US customs records and import/export trade data from ImportYeti. Pull US import records — bill-of-lading shipments: dates, BOL numbers, supplier and customer names, countries, weight, container counts, product descriptions, and HS-code rollups for any US importer.

Pricing

from $1.50 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

3

Bookmarked

151

Total users

16

Monthly active users

a day ago

Last modified

Share

A trade data scraper for US customs records from ImportYeti. Pull US import records — bill-of-lading shipment date, BOL numbers, foreign supplier or US consignee details, product descriptions, weights, HS codes, container counts, and estimated freight cost per shipment for any company or supplier profile on the site — 50 of the most recent shipments per target plus a supply-chain summary.


ImportYeti Scraper Features

  • Pulls up to 50 of the most recent bill-of-lading rows per target. That covers arrival date, house + master BOL numbers, carrier SCAC, counterparty name/slug/URL, city, country, weight, quantity, containers, free-text product description, estimated freight cost, and the origin region and trade lane the shipment moved on.
  • Extracts HS codes and HS-chapter rollups from the on-page product breakdown.
  • Emits one optional summary record per target — total shipment count, most recent shipment date, top trading partners with shipment counts, and country-level volume.
  • Accepts both US importer (consignee) slugs via companies and foreign supplier (shipper) slugs via suppliers. Slugs, paths (/company/apple), or full URLs all work.
  • Pay-per-event billing at $0.10 per run start plus $0.001 per record. A normal run with a few targets costs pocket change.
  • Handles ImportYeti's protected edge for you.

What Can You Do With ImportYeti Data?

  • Supplier sourcing — Find every foreign shipper that sold a given product to a US buyer, ranked by shipment volume.
  • Competitive intelligence — See which factories your competitor's products leave from, and how often.
  • Procurement diligence — Verify that a prospective supplier actually ships the volume and category they claim to. The bill of lading doesn't lie.
  • Commodity flow research — Roll shipments up by HS chapter to track import trends for a tariff code or product category.
  • Sales prospecting — Enrich target accounts with shipment frequency, vessel carriers, and supplier networks, then feed the result into a CRM.
  • Tariff exposure analysis — For any importer, list the HS codes and origin countries they rely on, then overlay the current Section 301 rates.

How ImportYeti Scraper Works

  1. Supply one or more ImportYeti slugs under companies (US importers) or suppliers (foreign shippers). A full URL like https://www.importyeti.com/company/apple works just as well as the bare slug apple.
  2. The scraper loads each target's profile page, clearing ImportYeti's protected edge on the way in.
  3. Each page is parsed for the 50-row shipment table plus the HS-code rollup. If you leave includeSummary on, one extra summary record is emitted with top partners, country splits, and total shipment count.
  4. Records stream into the Apify dataset as they're extracted. Stop anytime with maxItems; it caps total records across every target in the run.

Input

{
"companies": ["apple", "walmart"],
"suppliers": ["foxconn-interconnect-technology"],
"includeSummary": true,
"maxItems": 500
}
FieldTypeDefaultDescription
companiesarray of strings[]ImportYeti company slugs or URLs for US importers (consignees).
suppliersarray of strings[]ImportYeti supplier slugs or URLs for foreign shippers.
modestring"both"both, profiles, or shipments — see below.
includeSummarybooleantrueEmit one extra summary record per target with rollups. Only applies when mode is both.
maxItemsinteger50Max total records across all targets. 0 for no cap.

You need at least one entry in companies or suppliers. Empty inputs will fail fast.

Output mode — screening a long list vs. going deep

A company target returns one summary record plus up to 50 bill-of-lading rows, so it costs 51 records. The 50 rows are the target's most recent shipments; the summary's rollups are computed over its entire history. For a large importer those rows are a thin slice — Walmart has 691,317 shipments on record, IKEA 1,354,096 — so if you are qualifying a list of companies rather than studying one, you are paying 51 records to read the one that answers your question.

modeRecords per targetUse it when
bothup to 51You want the full picture of a target: rollups and its recent shipments. The default.
profilesexactly 1You are screening or qualifying many companies — total shipments, estimated spend, top partners, countries, HS codes.
shipmentsup to 50You only want the shipment rows and already have the company context.
{
"companies": ["apple", "walmart", "home-depot", "ikea"],
"mode": "profiles"
}

profiles is not a superset of both. top_counterparties lists 7 partners ranked by lifetime volume, while the shipment rows name every counterparty in the recent window — typically 13–38 per target, and often a different set. Apple's lifetime leaders are all in China; its most recent shipments are mostly from Vietnam. If you are looking for who a company buys from now, or for a sourcing shift, you need the rows. The practical pattern is to screen wide in profiles, then re-run both on the handful worth the detail.

Multiple targets in one run

{
"companies": [
"apple",
"https://www.importyeti.com/company/walmart",
"/company/amazon-com-services"
],
"suppliers": ["apple-fashion"],
"includeSummary": true,
"maxItems": 1000
}

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

ImportYeti Scraper Output Fields

Two record types ride in the same dataset, distinguished by record_type.

Bill-of-lading record

One per row in the 50-row shipment table.

{
"record_type": "bill_of_lading",
"target_type": "company",
"target_slug": "apple",
"target_url": "https://www.importyeti.com/company/apple",
"target_name": "Apple",
"target_address": "578 Aldi Blvd 37, Mount Juliet, Tn 37122, Us",
"arrival_date": "01/21/2026",
"bill_of_lading": "SHPT012025121832",
"master_bill_of_lading": "ZIMUBCN10198564",
"carrier_code": "ZIMU",
"counterparty_name": "Galan Textile Machinery Sl",
"counterparty_slug": "galan-textile-machinery",
"counterparty_url": "https://www.importyeti.com/supplier/galan-textile-machinery",
"counterparty_city": "Barcelona",
"counterparty_country": "Spain",
"weight_kg": 690,
"quantity": 2,
"quantity_unit": "pkg",
"container_count": 1,
"product_description": "Double Twisting Machine Bobbins First Twist Overhead Creel Winding Machine",
"est_freight_cost_usd": 23.49,
"freight_route": "Eu / Transatlantic",
"hs_codes": ["8504.40.9999", "8517.62.94", "8471.60.71"],
"hs_chapters": ["85", "84"],
"source_url": "https://www.importyeti.com/company/apple",
"source": "bill_of_lading",
"scraped_at": "2026-04-19T10:35:49.345Z"
}
FieldTypeDescription
record_typestringAlways "bill_of_lading" for shipment rows.
target_typestring"company" (US importer) or "supplier" (foreign shipper).
target_slugstringImportYeti slug for the target.
target_urlstringTarget profile URL on ImportYeti.
target_namestringTarget display name pulled from the page title.
target_addressstringPrimary address string pulled from the page title.
arrival_datestringShipment arrival date in MM/DD/YYYY.
bill_of_ladingstringHouse bill-of-lading number.
master_bill_of_ladingstringMaster BOL number when shown separately.
carrier_codestringCarrier SCAC / shipping line ID (e.g. ZIMU, ONEY, HLCU).
counterparty_namestringSupplier when target is a company; customer when target is a supplier.
counterparty_slugstringCounterparty's ImportYeti slug.
counterparty_urlstringCounterparty's ImportYeti profile URL.
counterparty_citystringCounterparty city.
counterparty_countrystringCounterparty country.
weight_kgnumberShipment weight in kilograms.
quantitynumberPackage count reported on the manifest.
quantity_unitstringUnit of quantity — usually "pkg".
container_countnumberContainer count on the shipment.
product_descriptionstringFree-text description from the carrier manifest.
est_freight_cost_usdnumberEstimated freight cost for the shipment in USD. null when ImportYeti reports no estimate for the lane.
freight_routestringOrigin region and trade lane, e.g. "Eu / Transatlantic", "Asia / Pacific".
hs_codesarray of stringsHS codes linked from the target's product-breakdown table.
hs_chaptersarray of stringsDistinct HS-code chapters (first two digits).
source_urlstringURL the record was scraped from.
sourcestring"bill_of_lading".
scraped_atstringISO timestamp when the record was emitted.

Summary record

One per target, emitted when includeSummary is true.

{
"record_type": "summary",
"target_type": "supplier",
"target_slug": "apple-fashion",
"target_url": "https://www.importyeti.com/supplier/apple-fashion",
"target_name": "Apple Fashion",
"target_address": "#9A Lot 5 Ttn25 Street Tan Thoi Nhat Ward District 12 Ho Chi Minh City Vn",
"total_shipments": 1474,
"most_recent_shipment_date": "10/25/2019",
"top_counterparties": [
"Ao Fashions | United States of America | 1083",
"The Perfektyming | United States of America | 338",
"Elim Trade | United States of America | 40"
],
"top_countries": ["Vietnam | 1473"],
"hs_codes": ["6104.43.2010"],
"hs_chapters": ["61"],
"source_url": "https://www.importyeti.com/supplier/apple-fashion",
"source": "summary",
"scraped_at": "2026-04-19T10:35:49.345Z"
}
FieldTypeDescription
record_typestringAlways "summary".
total_shipmentsnumberTotal shipments reported on the target's page (may be thousands).
most_recent_shipment_datestringMost recent shipment date reported on the page.
top_counterpartiesarray of stringsFormatted Name | country | shipment_count for the largest trading partners.
top_countriesarray of stringsFormatted Country | shipment_count rollup.
hs_codes, hs_chapters, target_*, source_url, scraped_atvariousSame meaning as in the BOL records.

BOL-only fields (bill_of_lading, weight_kg, etc.) are empty or null on summary records, and total_shipments and top_* are empty on BOL rows. Filter by record_type to keep the two views separate.


FAQ

How do I scrape ImportYeti?

ImportYeti Scraper accepts one or more company or supplier slugs and walks each profile page. Paste either a slug (apple), a path (/company/apple), or a full URL — the actor normalizes all three. Free-text search is deliberately unsupported; ImportYeti disallows it in robots.txt, and you get better results pasting URLs you actually care about.

How much does ImportYeti Scraper cost to run?

ImportYeti Scraper uses pay-per-event pricing: $0.10 per run start plus $0.001 per record. A run that pulls 500 BOL rows across ten targets lands near $0.60 before Apify's own platform usage.

What data can I get from ImportYeti?

ImportYeti Scraper returns 50 recent shipments per target plus an optional rollup — arrival dates, BOL numbers, carrier codes, supplier/consignee names and countries, weights, HS codes, product descriptions, and an estimated freight cost and trade lane per shipment. Deeper history and per-BOL detail pages are behind ImportYeti's own paywall and are out of scope.

What happens if a slug I supply has no data on ImportYeti?

The run fails and names the slug, rather than returning an empty row you would be charged for. The slug is the last path segment of the ImportYeti URL — /company/<slug> or /supplier/<slug> — and it is not always the company name, so copy it from the address bar when in doubt. If some targets in a run resolve and others do not, the run completes and lists the ones that returned nothing.

Can I get more than 50 shipments per company?

ImportYeti Scraper is capped at 50 rows per target because that's what ImportYeti exposes on the free tier. Their paid tier provides deeper history and per-BOL detail, but this scraper does not bypass that paywall.


Need More Features?

Need deeper shipment history, additional fields, or a different supply-chain source? File an issue or get in touch.

Why Use ImportYeti Scraper?

  • Affordable — ~$0.001/record plus a $0.10 start fee. Enough coverage for a week of research without paying five figures for Panjiva.
  • Clean output — Returns flat JSON with consistent field names across both BOL rows and summary records, so you can pipe it straight into a database without writing adapter code.
  • No babysitting — the only moving part you supply is the list of company or supplier slugs you care about.