OrbTop

US Customs Records & Import Trade Data Scraper — ImportYeti

BUSINESSLEAD GENERATIONOTHER

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

US Customs Records & Import Trade Data Scraper — ImportYeti

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
}
Field Type Default Description
companies array of strings [] ImportYeti company slugs or URLs for US importers (consignees).
suppliers array of strings [] ImportYeti supplier slugs or URLs for foreign shippers.
mode string "both" both, profiles, or shipments — see below.
includeSummary boolean true Emit one extra summary record per target with rollups. Only applies when mode is both.
maxItems integer 50 Max 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.

mode Records per target Use it when
both up to 51 You want the full picture of a target: rollups and its recent shipments. The default.
profiles exactly 1 You are screening or qualifying many companies — total shipments, estimated spend, top partners, countries, HS codes.
shipments up to 50 You 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"
}
Field Type Description
record_type string Always "bill_of_lading" for shipment rows.
target_type string "company" (US importer) or "supplier" (foreign shipper).
target_slug string ImportYeti slug for the target.
target_url string Target profile URL on ImportYeti.
target_name string Target display name pulled from the page title.
target_address string Primary address string pulled from the page title.
arrival_date string Shipment arrival date in MM/DD/YYYY.
bill_of_lading string House bill-of-lading number.
master_bill_of_lading string Master BOL number when shown separately.
carrier_code string Carrier SCAC / shipping line ID (e.g. ZIMU, ONEY, HLCU).
counterparty_name string Supplier when target is a company; customer when target is a supplier.
counterparty_slug string Counterparty's ImportYeti slug.
counterparty_url string Counterparty's ImportYeti profile URL.
counterparty_city string Counterparty city.
counterparty_country string Counterparty country.
weight_kg number Shipment weight in kilograms.
quantity number Package count reported on the manifest.
quantity_unit string Unit of quantity — usually "pkg".
container_count number Container count on the shipment.
product_description string Free-text description from the carrier manifest.
est_freight_cost_usd number Estimated freight cost for the shipment in USD. null when ImportYeti reports no estimate for the lane.
freight_route string Origin region and trade lane, e.g. "Eu / Transatlantic", "Asia / Pacific".
hs_codes array of strings HS codes linked from the target's product-breakdown table.
hs_chapters array of strings Distinct HS-code chapters (first two digits).
source_url string URL the record was scraped from.
source string "bill_of_lading".
scraped_at string ISO 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"
}
Field Type Description
record_type string Always "summary".
total_shipments number Total shipments reported on the target's page (may be thousands).
most_recent_shipment_date string Most recent shipment date reported on the page.
top_counterparties array of strings Formatted Name | country | shipment_count for the largest trading partners.
top_countries array of strings Formatted Country | shipment_count rollup.
hs_codes, hs_chapters, target_*, source_url, scraped_at various Same 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.