ImportYeti Scraper — US Customs Bill of Lading & Supplier Data avatar

ImportYeti Scraper — US Customs Bill of Lading & Supplier Data

Pricing

from $1.50 / 1,000 results

Go to Apify Store
ImportYeti Scraper — US Customs Bill of Lading & Supplier Data

ImportYeti Scraper — US Customs Bill of Lading & Supplier Data

Scrape US customs bill-of-lading & supplier trade data by company, supplier, product or HS code. Extract per-shipment BOL records with importer & supplier names, addresses, countries, products, weights and contacts. Keyless, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract US customs bill-of-lading (BOL) shipment records and supplier trade relationships from ImportYeti by company, supplier, product or HS code — one clean row per shipment, with importer and supplier addresses, countries, websites and contact enrichment. No API key, no login.

What does ImportYeti Scraper do?

This Actor turns ImportYeti's public web front-end into a structured, shipment-level trade-intelligence feed. It loads company and supplier profile pages through a Chrome-fingerprinted HTTP client over US residential exits (needed to pass ImportYeti's Cloudflare Managed Challenge), then reassembles the streamed Next.js RSC payload embedded in each page and parses out the bill-of-lading records and supplier tables.

Unlike other ImportYeti tools that only return a company summary, this scraper emits one row per bill of lading — the actual shipment manifests reported to US Customs (CBP) — and then fans out across the importer↔supplier graph so a single run accumulates hundreds to thousands of shipments. Every profile embeds up to 50 recent bills of lading; the crawler walks each importer's suppliers (and each supplier's buyers) to keep collecting until your maxResults or a ~4-minute time budget is reached. It is fully keyless — you never supply an ImportYeti account or paid API key.

Who is it for?

  • Sales & lead-gen teams building lists of US importers (or the overseas factories behind them) in a niche.
  • Sourcing & procurement managers discovering which suppliers a competitor buys from and at what volume.
  • Market & competitive analysts mapping trade lanes, product mixes and shipment cadence.
  • Freight forwarders & logistics providers prospecting shippers/consignees on specific lanes and HS codes.
  • Data teams & researchers who need a clean, structured BOL dataset for enrichment, scoring or ML.

Use cases

  • Pull every recent shipment for a target importer and see exactly which suppliers, products and container volumes are behind it.
  • Reverse a factory: start from a foreign supplier and list all the US companies it ships to — a ready-made prospect list.
  • Filter a whole trade graph down to one product or HS code (e.g. furniture 9403, LED lighting) and export only matching bills of lading.
  • Benchmark a competitor's supply chain — total shipments, estimated shipping spend, top suppliers and product breakdown.
  • Feed BOL rows into a CRM or spreadsheet as sourcing leads, enriched with importer and supplier address + country.

Why use ImportYeti Scraper?

  • Bill-of-lading level output — one row per shipment (BOL #, master/house BOL, arrival date, product, weight, quantity, containers, estimated cost), not just a company summary. This is the core differentiator.
  • Importer AND supplier in every row — names, addresses, countries, websites and any available contact emails/phones for both sides of the shipment.
  • Product / HS-code fan-out — crawl the graph and keep only shipments matching a keyword or Harmonized System code.
  • Keyless — no ImportYeti login, no paid IYApiKey, no cookies. Just run it.
  • High volume by design — graph crawl across importers and suppliers yields hundreds–thousands of rows per run, bounded by maxResults.
  • Export anywhere — results stream to a dataset you can download as JSON, CSV, Excel or feed via API, and pay only per result.

What data can you extract?

Each shipment (bill of lading) row contains the fields below. Company-summary rows (optional) add also-known names, HS codes, top suppliers and totals.

FieldTypeDescription
_modestringWhich mode produced the row (companySearch, supplierSearch, companyShipments, productSearch).
bol_numberstringBill-of-lading number reported to US Customs.
bol_typestringMaster, House or the raw bill code.
master_bolstringMaster bill-of-lading number (carrier level).
house_bolstringHouse bill-of-lading number (forwarder level).
arrival_datestring (date)Shipment arrival date (YYYY-MM-DD).
company_namestringImporter / consignee (the US buyer).
company_addressstringImporter address.
company_countrystringImporter country.
company_websitestringImporter website when known.
company_slugstringImportYeti profile slug for the importer.
company_total_shipmentsnumberTotal shipments on the importer's profile.
company_emailsarrayImporter contact emails when available on the public profile.
company_phonesarrayImporter contact phones when available on the public profile.
supplier_namestringSupplier / shipper (the overseas manufacturer or exporter).
supplier_addressstringSupplier address.
supplier_countrystringSupplier country.
supplier_websitestringSupplier website when known.
supplier_slugstringImportYeti profile slug for the supplier.
supplier_total_shipmentsnumberTotal shipments on the supplier's profile.
supplier_emailsarraySupplier contact emails when available on the public profile.
supplier_phonesarraySupplier contact phones when available on the public profile.
product_descriptionstringGoods description from the manifest.
hs_codestringHS/HTS code parsed from the manifest when present.
weightnumberShipment weight in kilograms.
weight_unitstringWeight unit (kg).
quantitynumberQuantity shipped.
quantity_unitstringQuantity unit (e.g. CTN, PKG).
containers_countnumberNumber of containers on the bill of lading.
shipping_cost_usdnumberImportYeti's estimated shipping cost (USD), when available.
shipping_routestringTrade lane / route label.
source_profilestringThe profile slug this BOL was read from.
source_profile_typestringcompany or supplier.
profile_urlstringImportYeti URL of the source profile.
scrapedAtstring (date-time)When the row was scraped.

Example shipment output

{
"_mode": "companySearch",
"bol_number": "FMALF142702",
"bol_type": "House",
"master_bol": "ONEYRTME32279600",
"house_bol": "FMALF142702",
"arrival_date": "2024-11-23",
"company_name": "Nike",
"company_address": "1 Bowerman Dr, Beaverton, Or 97005, Us",
"company_country": "United States of America",
"company_website": null,
"company_slug": "nike",
"company_total_shipments": 560,
"company_emails": [],
"company_phones": [],
"supplier_name": "Stadium Grow Lighting B V",
"supplier_address": "Abr Kroesweg 44",
"supplier_country": "Netherlands",
"supplier_website": null,
"supplier_slug": "stadium-grow-lighting-b-v",
"supplier_total_shipments": null,
"product_description": "Sgl Mobile Unit Type Led Serial Commercial",
"hs_code": null,
"weight": 1536,
"weight_unit": "kg",
"quantity": 2,
"quantity_unit": "PKG",
"containers_count": 1,
"shipping_cost_usd": 3098.38,
"shipping_route": "Eu,Transatlantic",
"source_profile": "nike",
"source_profile_type": "company",
"profile_url": "https://www.importyeti.com/company/nike",
"scrapedAt": "2026-07-24T09:00:00.000Z"
}

How to use

Option A — by company or supplier (most common)

  1. Set Mode to companySearch (importers) or supplierSearch (foreign suppliers).
  2. Put a name, slug or ImportYeti URL in Company / supplier / product (or the dedicated slug fields), e.g. nike or https://www.importyeti.com/company/nike.
  3. Set Max results (e.g. 1000) and run. The Actor pulls that profile's bills of lading, then crawls its trade partners for more.
{
"mode": "companySearch",
"companySlug": "nike",
"maxResults": 1000
}

Option B — by product / HS code

  1. Set Mode to productSearch.
  2. Put a product keyword in Company / supplier / product (e.g. furniture) and/or an HS / HTS code (e.g. 9403).
  3. Optionally seed the crawl with a relevant importer via Company slug. Run — only matching bills of lading are kept.
{
"mode": "productSearch",
"query": "furniture",
"hsCode": "9403",
"companySlug": "wayfair",
"maxResults": 500
}

Precise, no crawl

Use companyShipments with exact companySlugs / supplierSlugs to grab just those profiles' bills of lading (up to 50 per profile) without expanding to neighbours.

Input parameters

ParameterTypeDefaultDescription
modestring (select)companySearchcompanySearch, supplierSearch, companyShipments or productSearch.
querystringfurnitureFree-text seed: company/supplier name, slug, URL, or product keyword (productSearch).
companySlugstringSingle importer slug or URL.
companySlugsarray[]Several importer slugs/URLs (one per line).
supplierSlugstringSingle supplier slug or URL.
supplierSlugsarray[]Several supplier slugs/URLs.
hsCodestringHS/HTS code filter for productSearch.
includeCompanySummarybooleantrueAlso emit one company-summary row per crawled profile.
maxResultsinteger500Upper bound on rows; drives crawl depth.
proxyobjectUS RESIDENTIALProxy config. US residential is required to pass Cloudflare.

Full input example:

{
"mode": "companySearch",
"query": "furniture",
"companySlug": "wayfair",
"companySlugs": [],
"supplierSlug": "",
"supplierSlugs": [],
"hsCode": "",
"includeCompanySummary": true,
"maxResults": 1000,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

Output example

See the fully-populated shipment JSON in What data can you extract? above. Company-summary rows (when enabled) look like:

{
"_mode": "companySearch",
"_row": "summary",
"slug": "nike",
"kind": "company",
"company_name": "Nike",
"also_known_names": ["Nike Usa", "Nike Inc", "Nike Retail Services"],
"company_address": "1 Bowerman Dr, Beaverton, Or 97005, Us",
"company_country": "United States of America",
"company_website": null,
"company_phone": null,
"total_shipments": 560,
"total_shipping_cost_usd": 2122157.77,
"contact_emails": [],
"contact_phones": [],
"hs_codes": [{ "hs_code": "6110.20.2069", "description": "Other (338)", "shipments": 30 }],
"top_suppliers": [{ "name": "Pou Sung Vietnam", "country": "Vietnam", "slug": "pou-sung-vietnam", "shipments": 189, "weight": 584921, "teus": 86 }],
"supplier_count": 50,
"bol_sample_count": 50,
"profile_url": "https://www.importyeti.com/company/nike"
}

Tips for best results

  • Start from a known slug or URL — the slug is the last path segment of an ImportYeti profile URL (/company/<slug> or /supplier/<slug>). Names are auto-slugified but exact slugs are most reliable.
  • Raise maxResults to go deeper — the crawler visits more profiles as the limit grows; 500 is fast, 2000+ maps a broad supply chain.
  • Use companyShipments for precision when you only want a handful of named profiles and no graph expansion.
  • Combine keyword + HS code in productSearch to tightly scope a product category.
  • Keep the US residential proxy on — ImportYeti's Cloudflare challenge blocks datacenter and non-US exits; the default is already correct.
  • Contact enrichment is best-effort — ImportYeti masks most emails/phones on its public pages, so those arrays are often empty; addresses, countries and websites are the dependable contact signals.
  • De-dupe across runs on bol_number if you schedule the Actor, since profiles refresh over time.
  • Batch seeds with the array fields to cover several importers or suppliers in one run.
  • Watch the log — it prints per-profile BOL counts and the live queue size so you can see the crawl fan out.
  • Mind the time budget — very large crawls stop cleanly at ~4 minutes and push everything collected so far.

Integrations

Connect ImportYeti Scraper to the rest of your stack with Apify's built-in integrations:

  • Google Sheets — push BOL rows straight into a sheet for the sales team.
  • Slack — notify a channel when a run finishes or a target supplier appears.
  • Zapier / Make — trigger downstream automations on each new dataset.
  • Webhooks — POST results to your own endpoint or CRM.
  • Schedule — run daily/weekly to track a competitor's incoming shipments over time.

API usage

Run the Actor and fetch results programmatically. Get your token from the Apify console.

cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~importyeti-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "mode": "companySearch", "companySlug": "nike", "maxResults": 1000 }'

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover/importyeti-scraper').call({
mode: 'companySearch',
companySlug: 'nike',
maxResults: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/importyeti-scraper").call(run_input={
"mode": "companySearch",
"companySlug": "nike",
"maxResults": 1000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Use with AI agents (MCP)

This Actor works as a tool for LLM agents via the Apify MCP server, so an assistant can pull live customs data on demand. Example prompt: "Use the ImportYeti scraper to list the last 500 bills of lading for the importer wayfair, then summarize the top 5 suppliers by shipment count and their countries." The agent calls the Actor, reads the dataset, and answers with structured trade intelligence.

FAQ

Is ImportYeti Scraper keyless?

Yes. It never asks for an ImportYeti login, cookies or a paid API key. It reads the public web front-end over a US residential proxy.

What exactly is a "bill of lading" here?

A bill of lading is the shipping manifest filed with US Customs (CBP) for each ocean import. ImportYeti surfaces these publicly; this Actor returns one row per manifest with importer, supplier, product and logistics detail.

How many results can I get per run?

As many as maxResults allows. Each profile embeds up to 50 bills of lading, and the crawler fans out across suppliers and buyers, so 500–2000+ rows per run is typical. A ~4-minute time budget stops very large crawls gracefully.

Why do I need a US residential proxy?

ImportYeti is protected by a Cloudflare Managed Challenge that blocks datacenter IPs and non-US exits. A US residential proxy (the default) passes the challenge; the Actor also rotates to a fresh IP on each retry.

Why are some email/phone fields empty?

ImportYeti masks most contact emails and phone numbers on its public profile pages (e.g. XXXXXXX453). The Actor surfaces any that are actually exposed but does not fabricate them; company/supplier addresses, countries and websites are the reliable contact signals.

Can I filter by product or HS code?

Yes — use productSearch with a keyword and/or hsCode. Only bills of lading whose product description or HS code matches are kept.

How do I find a company or supplier slug?

It is the last segment of the ImportYeti URL: https://www.importyeti.com/company/nikenike. You can paste the full URL too; the Actor extracts the slug.

What formats can I export?

Any Apify dataset format: JSON, CSV, Excel, XML, RSS, or via the API. Use the Shipments view for BOL detail and the Summary view for company profiles.

How fresh is the data?

It reflects ImportYeti's public profiles at scrape time. Schedule the Actor to track new shipments as they appear; de-dupe on bol_number across runs.

Does it work for both importers and exporters?

Yes. companySearch starts from US importers; supplierSearch starts from overseas suppliers/manufacturers. Every row carries both sides of the shipment regardless of the starting point.

Will empty input return data?

Yes. An empty run defaults to companySearch on a popular importer and returns bill-of-lading rows bounded by maxResults.

Is there a rate limit?

The Actor self-throttles with a small concurrency and delays, and retries the Cloudflare challenge with fresh IPs. Very large runs are naturally paced by the crawl and the time budget.

This Actor collects data that ImportYeti publishes on its public website, which itself originates from US Customs (CBP) bill-of-lading records — public trade records. Use it responsibly and in line with ImportYeti's Terms of Service and applicable law. Do not use scraped personal contact data for spam or in violation of privacy regulations (GDPR/CCPA) or anti-spam laws (CAN-SPAM). You are responsible for how you use the output; this tool is provided for legitimate market research, sourcing and lead-generation purposes.

  • Company registry & B2B lead scrapers — enrich importers with official company-registry data.
  • Email & contact finders — pair with an email finder/verifier to complete outreach lists.
  • Website & tech-stack scrapers — profile an importer's or supplier's website once you have their domain.
  • Other customs/trade data scrapers — combine with global trade-data sources for non-US lanes.