# ImportYeti Scraper | US Import Records & Bills of Lading (`data_daemon/importyeti-scraper`) Actor

ImportYeti US import data: the latest bills of lading per importer (date, supplier, country, weight, containers, cargo description, route) or a company profile (top suppliers, HS codes, port lanes, monthly shipment trend). Watch competitors' suppliers with only-new mode. No login.

- **URL**: https://apify.com/data_daemon/importyeti-scraper.md
- **Developed by:** [Daemon Data](https://apify.com/data_daemon) (community)
- **Categories:** Lead generation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 shipments

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**ImportYeti Scraper** returns **US import records from [ImportYeti](https://www.importyeti.com)** (ocean bills of lading from US customs data) as JSON, CSV or Excel. Give it importers such as `Walmart` or `IKEA Supply`, or suppliers such as `Foxconn`, and get either **the latest bills of lading** (date, supplier, supplier country and address, weight, quantity, containers, cargo description, route, estimated freight cost) or a **company profile** (total and last-12-month shipments, top 50 suppliers with volumes and HS codes, product categories, port lanes, monthly shipments for up to the last 24 months with shipments). With **only-new mode** it becomes a daily monitor of a competitor's or prospect's new shipments. **$2 per 1,000 shipments, $10 per 1,000 profiles**, no login.

### What can you do with ImportYeti data?

| Who | What they get | Typical run |
|---|---|---|
| Sourcing and procurement teams | Who supplies a competitor, from which country, and what they ship | `output: profile` for a list of competitors |
| Suppliers and freight forwarders | US importers buying from your region, with fresh shipments to pitch | `suppliers` = rival factories, `output: shipments` |
| Sales teams (B2B lead generation) | Importers that just received cargo in your category | daily `onlyNewSinceLastRun` on a target list |
| Analysts and investors | Import trend of a listed retailer or brand over 24 months | `output: profile`, `monthlyShipments` |

### How to scrape ImportYeti

1. In the **Input** tab, list importers in `companies` (names or ImportYeti URLs) and/or exporters in `suppliers`.
2. Choose `shipments` (recent bills of lading) or `profile` (one row per company).
3. Click **Start** and download the results as JSON, CSV, Excel or HTML, or read them through the API.
4. To monitor new shipments, turn on **Only new since the last run** and schedule the Actor daily.

An empty input `{}` returns Walmart's latest bills of lading.

### Input

| Field | What it does |
|---|---|
| `companies` | US importers: `Walmart`, `ikea-supply`, or a URL like `https://www.importyeti.com/company/wal-mart`. |
| `suppliers` | Exporters: a name or a URL like `https://www.importyeti.com/supplier/foxconn`. |
| `output` | `shipments` (one row per bill of lading, up to the 50 newest per company) or `profile` (one row per company). |
| `shippedWithinDays` | Shipments only: keep bills of lading from the last N days. |
| `maxShipmentsPerCompany`, `topSuppliers`, `maxResults` | Caps. |
| `onlyNewSinceLastRun`, `stateName` | Remember what was delivered (`importyeti-state` key-value store); skipped rows are not charged. |
| `skipIds` | Bill of lading numbers or `company/<slug>` ids you already have. |

Names are turned into ImportYeti page addresses (`IKEA Supply` → `/company/ikea-supply`). Companies often appear under several spellings; if a name is not found, the run says so; copy the exact URL from importyeti.com.

```json
{
    "companies": ["walmart", "https://www.importyeti.com/company/ikea-supply"],
    "output": "shipments",
    "shippedWithinDays": 7,
    "onlyNewSinceLastRun": true
}
```

### Output

Shipments (`output: shipments`):

```json
{
    "id": "ONEYDELG34285600",
    "importer": "Wal Mart",
    "date": "2026-10-28",
    "billOfLading": "ONEYDELG34285600",
    "supplier": "Arjan Impex P Ltd",
    "supplierCountry": "India",
    "supplierAddress": "Industrial Estate Sonipat ... Hr 131001 In",
    "weightKg": 598,
    "quantity": 314,
    "quantityUnit": "CTN",
    "containers": 1,
    "description": "Stainless Steel Pet Bowl ...",
    "shippingRoute": "Asia,Pacific",
    "estimatedShippingCostUsd": 8714.26
}
```

Profiles (`output: profile`) contain `name`, `address`, `website`, `mostRecentShipment`, `totalShipments`, `shipmentsLast12Months`, `avgTeuPerMonth`, `topSuppliers[]` for importers or `topImporters[]` for suppliers (name, country, shipments, last-12-month shipments, weight, TEU, HS codes, products), `hsCodes[]`, `topLanes[]` (exit port → US entry port), `billTypes` and `monthlyShipments[]` (up to the last 24 months that had shipments).

| Field | Meaning |
|---|---|
| `date`, `billOfLading`, `masterBillOfLading`, `houseBillOfLading`, `billType` | The shipment record. |
| `importer`, `supplier`, `supplierCountry`, `supplierAddress`, `supplierUrl` | Who shipped to whom (on supplier pages, `importer*` describes the US buyer). |
| `weightKg`, `quantity`, `quantityUnit`, `containers` | Size of the shipment. |
| `description`, `shippingRoute`, `estimatedShippingCostUsd` | Cargo text from the manifest, route group, ImportYeti's freight estimate. |

### How much does it cost to scrape ImportYeti?

**$2 per 1,000 shipments** and **$10 per 1,000 company profiles** (each profile carries up to 50 suppliers, HS codes, lanes and the 24-month trend), plus $0.001 per run; SILVER plans pay 15% less, GOLD and above 30% less. Watching 20 small or mid-size importers daily with only-new mode typically costs a few cents a day; a very large importer can add up to 50 new bills of lading a day (about $0.10). Rows skipped by only-new mode, `skipIds` or the date filter are never charged.

### Tips

- ImportYeti lists the **50 newest bills of lading** per company page. Daily or weekly only-new runs catch every new one for most importers; very large importers (Walmart, Amazon) receive more than 50 a day, so the page shows only the latest.
- Different spellings that ImportYeti redirects to the same page (`walmart`, `wal-mart`, `walmart-stores`) are read and charged once. Separate legal entities (e.g. `walmart` vs `walmart-com-usa`) are separate pages; add each one you care about.
- Masked phone numbers and notify-party contacts on ImportYeti are not collected.

### FAQ

**Is there an ImportYeti API?** Yes: ImportYeti sells an official REST API (`data.importyeti.com`) that needs an ImportYeti account, an API key and prepaid data credits (a company profile costs 1 credit; see docs.importyeti.com). This Actor is the no-account alternative: it reads the public company and supplier pages, needs no ImportYeti key or credits, and bills per row on your Apify account ($2 per 1,000 shipments, $10 per 1,000 profiles), with only-new mode for monitoring.

**Where does the data come from?** US Customs and Border Protection ocean manifests (bills of lading), as compiled and published by ImportYeti. Air and land shipments are not included, and some importers request manifest confidentiality.

**How fresh is it?** ImportYeti updates its database daily (`databaseUpdated` in profiles); shipments usually appear a few days after arrival.

**Can I search by product or HS code?** Not yet: ImportYeti's search runs in the browser behind bot protection. Start from company or supplier names.

**Is it legal to scrape ImportYeti?** The Actor reads public pages without logging in. You are responsible for how you use the data and for compliance with the site's terms.

Questions or a field you need? Use the **Issues** tab.

### Related Actors

- [India New Company Registrations](https://apify.com/data_daemon/india-new-company-registrations) – newly incorporated Indian companies daily: CIN, type, state, activity, capital
- [UK Gazette Insolvency Notices](https://apify.com/data_daemon/uk-gazette-insolvency-notices) – winding-up petitions, administrations and liquidations
- [Tickertape India Stocks Scraper](https://apify.com/data_daemon/tickertape-stocks-scraper) – NSE/BSE fundamentals, shareholding and screener

All Daemon Data Actors: [apify.com/data_daemon](https://apify.com/data_daemon).

# Actor input Schema

## `companies` (type: `array`):

Company names or ImportYeti URLs, e.g. `Walmart`, `ikea-supply`, `https://www.importyeti.com/company/wal-mart`. A name is turned into the page address (`Ikea Supply` becomes /company/ikea-supply); if it is not found, copy the exact URL from importyeti.com.

## `suppliers` (type: `array`):

Supplier names or ImportYeti supplier URLs, e.g. `https://www.importyeti.com/supplier/foxconn`. Shipments then list the US importers they ship to.

## `output` (type: `string`):

`shipments`: one row per recent bill of lading (the page lists the 50 newest). `profile`: one row per company with totals, top suppliers (or, for supplier pages, top US buyers), HS codes, port lanes and monthly shipments for up to the last 24 months that had shipments.

## `shippedWithinDays` (type: `integer`):

Shipments mode: keep bills of lading dated within the last N days.

## `maxShipmentsPerCompany` (type: `integer`):

Up to 50 (ImportYeti shows the 50 newest bills of lading per company).

## `topSuppliers` (type: `integer`):

Profile mode: how many suppliers (company pages) or US buyers (supplier pages) to include, up to 50, largest first.

## `maxResults` (type: `integer`):

Stop after this many saved rows (default 100). 0 = no cap.

## `onlyNewSinceLastRun` (type: `boolean`):

Shipments: skip bills of lading delivered by earlier runs. Profiles: deliver a company again only after it has a newer shipment. Memory is kept in a key-value store named `importyeti-state` (skipped rows are not charged).

## `stateName` (type: `string`):

By default it follows the output and the company list.

## `skipIds` (type: `array`):

Bill of lading numbers (shipments) or `company/<slug>` ids (profiles) you already have. Not saved, not charged.

## `proxyConfiguration` (type: `object`):

Usually not needed: ImportYeti pages answer Apify's servers directly; the Actor switches to Apify Proxy by itself if it is rate limited.

## Actor input object example

```json
{
  "companies": [
    "walmart"
  ],
  "suppliers": [],
  "output": "shipments",
  "maxShipmentsPerCompany": 50,
  "topSuppliers": 20,
  "maxResults": 100,
  "onlyNewSinceLastRun": false,
  "skipIds": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Bills of lading or company profiles as JSON items in the default dataset (also CSV, Excel, XML).

## `runSummary` (type: `string`):

RUN-SUMMARY record: companies read, rows saved, skipped and charged, companies not found.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "walmart"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_daemon/importyeti-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "companies": ["walmart"] }

# Run the Actor and wait for it to finish
run = client.actor("data_daemon/importyeti-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "walmart"
  ]
}' |
apify call data_daemon/importyeti-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_daemon/importyeti-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BtLGgUkBwf8NFc4Cl/builds/NT8vrxJEvVeakrKOh/openapi.json
