ImportYeti Bill of Lading Scraper — No Login, $1.4/1k
Pricing
from $1.40 / 1,000 results
ImportYeti Bill of Lading Scraper — No Login, $1.4/1k
ImportYeti scraper: US customs bills of lading for bulk lists of importers, suppliers, HS codes or addresses. Shipper, consignee, cargo, weight, containers, arrival date. Also company/supplier lead lists with shipment counts. No login or cookies. MCP-ready for AI agents. $1.4 per 1,000 records.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Fortuitous Pirate
Maintained by CommunityActor stats
1
Bookmarked
67
Total users
10
Monthly active users
12 hours ago
Last modified
Categories
Share
ImportYeti Bill of Lading Scraper
Get current US customs import records (ocean bills of lading) from ImportYeti without a login: who imports what, from which overseas supplier, how much and when. Paste a list of importers, suppliers, HS codes or addresses and get one clean row per shipment, or pull a lead list of companies and suppliers with their shipment counts.
- Current data: US CBP manifests republished by ImportYeti, updated daily; shipments usually appear 5 to 10 days after arrival.
- Bulk input: lists of importers, suppliers, HS codes / product keywords, ImportYeti URLs, or a CSV / Google Sheet link.
- Filters buyers ask for: minimum total shipments, active within N months, shipments from the last N days, arrival date window, per-company cap.
- Two outputs: shipment rows (bills of lading) or company/supplier rows (lead lists).
- No ImportYeti account, no cookies. Runs on Apify residential proxy so ImportYeti's 25-pageviews-per-IP limit never stops you.
- Partial results are kept: one bad name never fails the run; the
OUTPUTrecord lists what matched and what did not.
What buyers use it for
| Goal | Input | You get |
|---|---|---|
| Find a competitor's factories | companies: ["Anker International", "Keurig Green Mountain"] | Their latest shipments with the overseas shipper, cargo, weight, containers |
| Find a factory's US customers | suppliers: ["Anker Innovations"] | The US consignees it ships to |
| Find suppliers of a product | hsCodes: ["lithium batteries", "9403"] | Recent shipments of that product with the overseas shipper |
| Build an importer lead list | mode: "entities", queries: ["coffee"], entityType: "company", minShipments: 100, lastShipmentWithinMonths: 6 | Active US importers with total shipments and last shipment date |
| Find every importer at a location | mode: "entities", searchBy: "address", queries: ["Stone Mountain, GA"] | Companies whose address matches |
| Watch new arrivals | Any list + shipmentsWithinDays: 7, scheduled weekly | Only shipments that arrived in the last 7 days |
Input
Bulk lists (recommended)
| Field | Example | Notes |
|---|---|---|
companies | ["Walmart", "anker-international", "https://www.importyeti.com/company/wal-mart"] | US importers (consignees): names, ImportYeti slugs or URLs |
suppliers | ["Anker Innovations"] | Overseas suppliers (shippers): names, slugs or URLs |
hsCodes | ["8507", "850760", "solar panels"] | HS codes, or product keywords mapped to 6-digit HS codes; only shipments whose cargo description contains the keyword are kept |
queries | ["Home Depot", "Target"] | Interpreted by searchType (and searchBy) |
listUrl | https://docs.google.com/spreadsheets/d/.../edit | CSV/TXT file or Google Sheet shared as "anyone with the link"; first column is read, ImportYeti URLs auto-detected |
startUrls | [{"url": "https://www.importyeti.com/hs-codes/8507"}] | ImportYeti company, supplier or HS-code pages |
Each name is matched to the best ImportYeti entity (exact or close name, recently active first, then most shipments). maxMatchesPerQuery reads more than one match per name (default 1 for lists).
Mode and filters
| Field | Default | Notes |
|---|---|---|
mode | shipments | shipments = bill of lading rows; entities = company/supplier rows from ImportYeti search (no page views, fast) |
searchBy | name | address matches companies by address text instead of name |
entityType | any | company (US importers) or supplier (overseas) in entities mode; the companies/suppliers lists set it automatically |
minShipments | 0 | Skip companies/suppliers with fewer total shipments |
lastShipmentWithinMonths | 0 | Skip companies/suppliers with no shipment in the last N months |
shipmentsWithinDays | 0 | Keep only shipments that arrived in the last N days |
dateFrom / dateTo | Arrival date window, YYYY-MM-DD | |
maxShipmentsPerTarget | 0 (no cap) | Shipments per matched company / supplier / HS code, so maxItems spreads across a long list |
maxItems | 10 | Total records for the run |
proxyConfiguration | Apify residential | Keep it on; ImportYeti hides data after 25 pageviews per IP and blocks datacenter IPs |
minShipments and lastShipmentWithinMonths apply to names and addresses (pasted URLs are read as given).
Single search (original inputs, still supported)
searchType (consignee, shipper, cargo, marks) + searchQuery + maxPages work exactly as before. searchQuery is used when no list or URL is given; an empty input returns a Walmart sample.
Output
Shipment row (mode: "shipments")
{"recordType": "shipment","url": "https://www.importyeti.com/us-bill-of-ladings/NPSCSELNGB269089","billOfLadingNumber": "NPSCSELNGB269089","masterBillOfLadingNumber": "...","billType": "house","shipperName": "Ningbo Singfun Electric Appliance C","shipperAddress": "...","shipperCountry": "China","shipperUrl": "https://www.importyeti.com/supplier/...","consigneeName": "Wal Mart","consigneeAddress": "Bentonville, Ar 72716, Us","consigneeCountry": "United States","consigneeUrl": "https://www.importyeti.com/company/wal-mart","arrivalDate": "2026-10-15","shippingRoute": "Asia,Pacific","cargoDescription": "...","hsCode": null,"hsCodeDescription": null,"quantity": 36,"quantityUnit": "CTN","numberOfPieces": "36 CTN","grossWeightKg": 336,"grossWeight": "336 KG","estimatedFreightUsd": 8192.04,"containerCount": 1,"searchType": "consignee","searchQuery": "Walmart","sourcePage": "https://www.importyeti.com/company/wal-mart","scrapedAt": "2026-10-21T00:00:00.000Z"}
hsCode / hsCodeDescription are filled for HS code and product searches. ImportYeti guards HS-code pages more strictly than company pages, so some codes are refused even through residential proxy after several retries; those are listed in OUTPUT with the error and the rest of the run continues. ImportYeti does not show the importer on product pages, so consignee* is null for those rows. Fields ImportYeti keeps behind its paid login are present for compatibility and always null: phones, notify party, vessel, voyage, ports, volume, net weight, declared value, container numbers.
Company / supplier row (mode: "entities")
{"recordType": "entity","url": "https://www.importyeti.com/company/anker-international","entityName": "Anker International","entityType": "company","entityCountryCode": "US","entityAddress": "1640 Stone Ridge Dr 678-735, Stone Mountain, Ga 30083, Us","totalShipments": 8170,"mostRecentShipmentDate": "2026-10-19","otherNamesCount": 36,"otherAddressesCount": 108,"searchType": "consignee","searchBy": "name","searchQuery": "Anker"}
Run summary
The OUTPUT record in the run's key-value store lists every input entry with the ImportYeti pages it matched, how many records it produced and any error (no match, page not found), so you can fix a list without rerunning everything.
How many records can I get?
Each ImportYeti company, supplier or HS-code page shows its 50 most recent shipments, so one matched entity gives up to 50 shipment rows. For more coverage add more entities (lists, maxMatchesPerQuery) rather than expecting deep history for one company.
Pricing
Pay per result; see the Pricing tab for the current price per 1,000 records. Company/supplier rows and shipment rows cost the same. You only pay for rows you receive.
Run it from code
curl -X POST "https://api.apify.com/v2/acts/fortuitous_pirate~bill-of-lading-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"companies": ["Keurig Green Mountain", "Anker International"], "shipmentsWithinDays": 30, "maxShipmentsPerTarget": 20, "maxItems": 40}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("fortuitous_pirate/bill-of-lading-scraper").call(run_input={"mode": "entities","queries": ["coffee"],"entityType": "company","minShipments": 100,"lastShipmentWithinMonths": 6,"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["entityName"], item["totalShipments"], item["mostRecentShipmentDate"])
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('fortuitous_pirate/bill-of-lading-scraper').call({hsCodes: ['lithium batteries'],shipmentsWithinDays: 14,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((i) => `${i.arrivalDate} ${i.shipperName}: ${i.cargoDescription}`));
For AI agents
The actor works through the Apify MCP server. Give it a list of company names or HS codes and read recordType to tell shipment rows from company rows. Start with mode: "entities" to find the right ImportYeti entities cheaply, then pass their url values back as companies or suppliers for shipment detail.
Data source and history
Records come from US Customs and Border Protection import manifests as published by ImportYeti. Until 2026-09-28 this actor read Port Examiner, which stopped updating in July 2016; Port Examiner search URLs in startUrls are still converted to the equivalent search. Input and output field names from earlier versions are unchanged, so existing tasks and integrations keep working.