ImportYeti Scraper — US Customs Bill of Lading & Supplier Data
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor 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.
| Field | Type | Description |
|---|---|---|
_mode | string | Which mode produced the row (companySearch, supplierSearch, companyShipments, productSearch). |
bol_number | string | Bill-of-lading number reported to US Customs. |
bol_type | string | Master, House or the raw bill code. |
master_bol | string | Master bill-of-lading number (carrier level). |
house_bol | string | House bill-of-lading number (forwarder level). |
arrival_date | string (date) | Shipment arrival date (YYYY-MM-DD). |
company_name | string | Importer / consignee (the US buyer). |
company_address | string | Importer address. |
company_country | string | Importer country. |
company_website | string | Importer website when known. |
company_slug | string | ImportYeti profile slug for the importer. |
company_total_shipments | number | Total shipments on the importer's profile. |
company_emails | array | Importer contact emails when available on the public profile. |
company_phones | array | Importer contact phones when available on the public profile. |
supplier_name | string | Supplier / shipper (the overseas manufacturer or exporter). |
supplier_address | string | Supplier address. |
supplier_country | string | Supplier country. |
supplier_website | string | Supplier website when known. |
supplier_slug | string | ImportYeti profile slug for the supplier. |
supplier_total_shipments | number | Total shipments on the supplier's profile. |
supplier_emails | array | Supplier contact emails when available on the public profile. |
supplier_phones | array | Supplier contact phones when available on the public profile. |
product_description | string | Goods description from the manifest. |
hs_code | string | HS/HTS code parsed from the manifest when present. |
weight | number | Shipment weight in kilograms. |
weight_unit | string | Weight unit (kg). |
quantity | number | Quantity shipped. |
quantity_unit | string | Quantity unit (e.g. CTN, PKG). |
containers_count | number | Number of containers on the bill of lading. |
shipping_cost_usd | number | ImportYeti's estimated shipping cost (USD), when available. |
shipping_route | string | Trade lane / route label. |
source_profile | string | The profile slug this BOL was read from. |
source_profile_type | string | company or supplier. |
profile_url | string | ImportYeti URL of the source profile. |
scrapedAt | string (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)
- Set Mode to
companySearch(importers) orsupplierSearch(foreign suppliers). - Put a name, slug or ImportYeti URL in Company / supplier / product (or the dedicated slug fields), e.g.
nikeorhttps://www.importyeti.com/company/nike. - 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
- Set Mode to
productSearch. - Put a product keyword in Company / supplier / product (e.g.
furniture) and/or an HS / HTS code (e.g.9403). - 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
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string (select) | companySearch | companySearch, supplierSearch, companyShipments or productSearch. |
query | string | furniture | Free-text seed: company/supplier name, slug, URL, or product keyword (productSearch). |
companySlug | string | — | Single importer slug or URL. |
companySlugs | array | [] | Several importer slugs/URLs (one per line). |
supplierSlug | string | — | Single supplier slug or URL. |
supplierSlugs | array | [] | Several supplier slugs/URLs. |
hsCode | string | — | HS/HTS code filter for productSearch. |
includeCompanySummary | boolean | true | Also emit one company-summary row per crawled profile. |
maxResults | integer | 500 | Upper bound on rows; drives crawl depth. |
proxy | object | US RESIDENTIAL | Proxy 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
maxResultsto go deeper — the crawler visits more profiles as the limit grows; 500 is fast, 2000+ maps a broad supply chain. - Use
companyShipmentsfor 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_numberif 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 ApifyClientclient = 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/nike → nike. 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.
Is it legal?
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.
Related scrapers
- 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.