# ImportYeti Scraper - US Customs Import & Supplier Data (`crawloop/importyeti-scraper`) Actor

Scrape ImportYeti US customs records: importers, suppliers, HS/HTS codes, trading partners, shipping lanes, and bills of lading. Search or enrich profiles for sourcing, compliance, and B2B leads.

- **URL**: https://apify.com/crawloop/importyeti-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** Lead generation, E-commerce, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.49 / 1,000 enriched importer/supplier profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## ImportYeti Scraper — US Customs Import & Supplier Data

Unofficial ImportYeti dataset extractor for Apify. Not affiliated with ImportYeti.

Pull **US sea-import bills of lading intelligence**: importers, foreign suppliers, HS/HTS codes, trading partners, shipping lanes, carriers, and recent shipments — into clean JSON/CSV for sourcing, compliance, and B2B prospecting.

<table cellpadding="0" cellspacing="0" border="0" width="100%">
  <tr>
    <td colspan="2" bgcolor="#0B3948" style="padding:10px 14px;color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.35;">
      <strong style="color:#ffffff;">ImportYeti Exporter</strong>
      <span style="color:#A8D5CF;"> · </span>
      <span style="color:#D7ECE8;">Chrome extension — companies, suppliers &amp; shipments to CSV/JSON</span>
    </td>
  </tr>
  <tr>
    <td width="70" bgcolor="#E8F8F6" align="center" valign="middle" style="padding:12px 10px;border-right:1px solid #D5EBE7;">
      <a href="https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd"><img src="https://api.apify.com/v2/key-value-stores/pm9ExIs2ctKxSK8ng/records/importyeti-exporter-logo.png?signature=1AJDxVx1qeOwcJqjpDDMp" width="48" height="48" alt="ImportYeti Exporter" /></a>
    </td>
    <td bgcolor="#F7FCFB" valign="middle" style="padding:12px 14px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.45;color:#1F2937;">
      <a href="https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd" style="color:#0F766E;text-decoration:none;"><strong>ImportYeti Exporter</strong></a>
      <span style="color:#0F766E;"> ↗</span><br/>
      <span style="color:#4B5563;">One-click CSV/JSON in your browser · free <strong>200 rows / month</strong></span><br/>
      <a href="https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd" style="color:#0F766E;"><strong>Install free →</strong></a>
    </td>
  </tr>
</table>

| Actor | Role |
| :--- | :--- |
| ImportYeti Scraper ◄── you are here | US customs importer & supplier profiles |
| [Europages Scraper](https://apify.com/crawloop/europages-scraper) | EU B2B company contacts after you find a supplier |
| [WLW Scraper](https://apify.com/crawloop/wlw-scraper) | DACH B2B directory enrichment |

### When to use

- Find **who supplies** a US brand or retailer from public customs records
- Build **supplier / importer lead lists** by keyword, brand, or product class
- Map **HS/HTS codes**, origin countries, ports, and carriers for a target account
- Screen trade partners with **UFLPA** flags and shipment recency
- Cheap **search-only discovery**, then enrich only the profiles you need

### When not to use

- **Quick browser export (CSV/JSON)** — For one-off exports from the page you are viewing, use **ImportYeti Exporter** ([Chrome Web Store](https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd)) instead of a cloud run.
- **ImportYeti Premium Power Query / native bulk downloads** — out of scope for both the Actor and the free browser exporter.

### ImportYeti Exporter (browser extension)

**ImportYeti Exporter** turns ImportYeti trade pages into clean **CSV or JSON** — in one click.

Built for sourcing teams, sales researchers, and analysts who need structured US customs trade data from ImportYeti. Export runs in your browser session: no account on our servers, no copy-paste.

**[Install from Chrome Web Store →](https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd)** · Free tier: **200 rows / month**

#### Who it’s for

- Buyers and sourcing managers mapping suppliers of importers
- Sales and BD teams finding customers of manufacturers
- Researchers building outreach lists from public customs data

#### What you get

- Supplier lists from importer (company) profiles
- Customer lists from supplier profiles
- Recent shipment / bill-of-lading summaries shown on the page
- Search result hits (when a query is available)
- HS code tables from the HS explorer
- Optional partner-profile enrich (phone / website / address when published)
- Filters: country, min shipments, has phone / email / website, active 12 months
- CSV (Excel-ready) or JSON

#### How to use

1. Install the extension ([Chrome Web Store](https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd))
2. Open an ImportYeti company, supplier, search, or HS page
3. Click the on-page **Export** button (or use the toolbar popup)
4. Choose export type, filters, and CSV or JSON — download starts

#### Supported site

- importyeti.com / www.importyeti.com

#### Free tier & privacy

- Export up to **200 rows per month** for free; remaining quota is shown in the extension
- No signup required to start
- Data is parsed and downloaded locally in your browser
- We do not require login to our servers for the free exporter
- Works with your existing ImportYeti session (including login when the site requires it)

#### Notes & disclaimer

- Does not replace ImportYeti Premium features such as Power Query or native bulk downloads
- **ImportYeti Exporter** is an independent productivity tool published by Crawloop
- Not affiliated with, endorsed by, sponsored by, or officially connected to ImportYeti, LLC or any ImportYeti website operator
- “ImportYeti” and related names, logos, and trademarks are the property of their respective owners and are used only to describe compatibility
- You remain responsible for complying with ImportYeti’s Terms of Service and applicable law
- Export only covers data already visible in your own browser session; it is not a substitute for ImportYeti’s official products or licensed data services

**Actor vs extension:** use this Apify Actor for scheduled enrich pipelines, large automated datasets, and MCP/API workflows; use ImportYeti Exporter when you want an instant CSV/JSON download from ImportYeti in Chrome.

### Key features

- **Dual mode** — `search` (public search API) or `enrich` (full profile + nested BOLs)
- **Companies and suppliers** — US consignees and foreign shippers
- **90+ normalized fields** on enriched profiles (partners, HS/HTS, lanes, carriers, TEU, spend)
- **Recent bills of lading** nested on profiles; optional flat `shipment` rows
- **Cloudflare-aware HTTP** via `curl_cffi` Chrome impersonation + Apify residential proxies
- **MCP-ready** for AI assistants via Apify MCP

### Input

| Field | Type | Description |
| :--- | :--- | :--- |
| `searchQueries` | string\[] | Company / supplier / product keywords |
| `startUrls` | request list | `/company/{slug}` or `/supplier/{slug}` URLs |
| `mode` | enum | `enrich` (default) or `search` |
| `entityType` | enum | `any`, `company`, or `supplier` |
| `minShipments` | integer | Drop low-volume entities |
| `maxItems` | integer | Cap on search hits or enriched profiles |
| `includeShipments` | boolean | Nest recent BOLs on profiles (default true) |
| `emitShipmentRows` | boolean | Also push flat `shipment` dataset items |
| `concurrency` | integer | Parallel profile fetches (enrich mode) |
| `proxyConfiguration` | object | Prefer Residential proxies |

```json
{
  "searchQueries": ["Patagonia"],
  "mode": "enrich",
  "entityType": "company",
  "maxItems": 10,
  "includeShipments": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Output

Enriched **profile** example (truncated):

```json
{
  "recordType": "profile",
  "entityType": "company",
  "name": "Patagonia",
  "slug": "patagonia",
  "id": "company/patagonia",
  "url": "https://www.importyeti.com/company/patagonia",
  "address": "Ventura, Ca 93001, Us",
  "countryCode": "US",
  "totalShipments": 3047,
  "shipments12m": 178,
  "mostRecentShipment": "08/09/2026",
  "avgTeuPerMonth": 36.86,
  "uflpa": false,
  "tradingPartners": [
    {
      "name": "Hirdaramani International Export",
      "type": "supplier",
      "country": "Sri Lanka",
      "shipments": 419
    }
  ],
  "hsCodes": [{ "code": "61", "description": "Apparel - knitted", "shipments": 1604 }],
  "htsCodes": [{ "code": "6110.30.3053", "shipments": 129 }],
  "recentShipments": [
    {
      "arrivalDate": "2026-08-09T00:00:01.000Z",
      "billOfLading": "EXDO6840348955",
      "counterpartyName": "Sheico Thailand Co Ltd"
    }
  ],
  "scrapedAt": "2026-08-11T10:00:00Z"
}
```

| Field | Description |
| :--- | :--- |
| `recordType` | `search_result`, `profile`, or `shipment` |
| `entityType` | `company` or `supplier` |
| `totalShipments` / `shipments12m` | Volume metrics |
| `tradingPartners` | Top suppliers or customers |
| `hsCodes` / `htsCodes` | Product classification rollups |
| `shippingLanes` / `carriers` | Ports and SCAC codes |
| `shipmentsTimeSeries` | Monthly shipments / weight / TEU |
| `recentShipments` | Public recent BOL table |
| `uflpa` | Forced-labor related flag when present |

### Use cases

| Job | How |
| :--- | :--- |
| Amazon / ecom supplier discovery | Search a brand → enrich → export `tradingPartners` |
| Freight / 3PL prospecting | Filter high `totalShipments` importers by lane or carrier |
| Competitive supply-chain map | Enrich competitor profiles; compare HS chapters and origins |
| Trade compliance screening | Check `uflpa`, origins, and HTS before onboarding a vendor |
| OSINT / research | Keyword search + profile URLs for structured customs evidence |

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/importyeti-scraper').call({
  searchQueries: ['Patagonia'],
  mode: 'enrich',
  maxItems: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawloop/importyeti-scraper").call(
    run_input={
        "searchQueries": ["Patagonia"],
        "mode": "enrich",
        "maxItems": 5,
    }
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~importyeti-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["Patagonia"],"mode":"enrich","maxItems":5}'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp).
Connect your Apify account, then call this Actor by its Store ID / name.

Example prompts:

- "Run ImportYeti Scraper for Patagonia in enrich mode and return the top suppliers as JSON"
- "Search ImportYeti for lithium battery importers, max 20 companies, search-only mode"
- "Enrich these ImportYeti company URLs and then find matching EU contacts with Europages Scraper"

### Suite next step

After you identify foreign factories or US importers, enrich European company contacts with [Europages Scraper](https://apify.com/crawloop/europages-scraper) or DACH listings with [WLW Scraper](https://apify.com/crawloop/wlw-scraper).

### FAQ

**What coverage does ImportYeti have?**\
Public US **sea** import bills of lading (not air/land). History generally starts around 2015.

**Do I need an ImportYeti login?**\
No for public search and profile pages this Actor targets. Power Query / full CSV exports / official paid API are out of scope.

**Is there a Chrome extension?**\
Yes — **ImportYeti Exporter** exports companies, suppliers, shipments, search hits, and HS tables to CSV/JSON in one click. Install from the [Chrome Web Store](https://chromewebstore.google.com/detail/importyeti-exporter/egkmmpbpmoeaogkajoklglgaienkbibd).

**Search vs enrich?**\
`search` is cheap discovery (name, address, shipment counts). `enrich` opens each profile for partners, HS/HTS, lanes, carriers, and recent BOLs.

**Why residential proxies?**\
ImportYeti sits behind Cloudflare and applies per-IP view limits. Residential US proxies keep enrich runs stable.

### Related Actors

- [Europages Scraper](https://apify.com/crawloop/europages-scraper)
- [WLW Scraper](https://apify.com/crawloop/wlw-scraper)
- [ENF Solar Scraper](https://apify.com/crawloop/enf-solar-scraper)

# Actor input Schema

## `searchQueries` (type: `array`):

Company names, supplier names, brands, or product keywords to search on ImportYeti (e.g. Patagonia, lithium battery).

## `startUrls` (type: `array`):

Direct ImportYeti /company/{slug} or /supplier/{slug} profile URLs (or bare slugs). Skips search discovery for these targets.

## `mode` (type: `string`):

search = cheap discovery rows from the public search API only. enrich = open each profile and extract full trade intelligence (default).

## `entityType` (type: `string`):

Filter to US importers (company), foreign suppliers, or both.

## `minShipments` (type: `integer`):

Drop entities with fewer lifetime sea shipments than this value.

## `maxItems` (type: `integer`):

Hard cap on search rows (search mode) or enriched profiles (enrich mode). Shipment rows from emitShipmentRows do not count toward this cap. 0 = unlimited.

## `maxPagesPerQuery` (type: `integer`):

ImportYeti returns 10 hits per search page. Caps pagination per query.

## `includeShipments` (type: `boolean`):

When enriching, nest the public recent bills of lading (~50) inside each profile record.

## `emitShipmentRows` (type: `boolean`):

When true (enrich mode), push each recent bill of lading as a separate dataset item (recordType=shipment) in addition to the profile.

## `concurrency` (type: `integer`):

Parallel profile fetches in enrich mode. Lower if you hit rate limits.

## `mostRecentShipment` (type: `string`):

Optional hint filter. ImportYeti search API does not apply this server-side; kept for UI parity with the site filters.

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

Apify proxy settings. Residential US recommended — ImportYeti uses Cloudflare and IP page-view limits.

## Actor input object example

```json
{
  "searchQueries": [
    "Patagonia"
  ],
  "startUrls": [],
  "mode": "enrich",
  "entityType": "any",
  "minShipments": 0,
  "maxItems": 50,
  "maxPagesPerQuery": 20,
  "includeShipments": true,
  "emitShipmentRows": false,
  "concurrency": 4,
  "mostRecentShipment": "any",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset items (profiles, search results, and optional shipment rows).

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/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 = {}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/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 '{}' |
apify call crawloop/importyeti-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawloop/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/hLBKe1jqE3HjIakGa/builds/jsSaZXbdsm9XTL4mO/openapi.json
