# Global Trade Company & Shipment Data Scraper — Trademo (`jungle_synthesizer/trademo-global-trade-company-shipment-profile-scraper`) Actor

Extract global trade company and shipment data from Trademo -- import/export shipment counts and USD values, top HS codes, monthly trends, named buyers and suppliers, and sample bill-of-lading shipments across 78+ countries.

- **URL**: https://apify.com/jungle\_synthesizer/trademo-global-trade-company-shipment-profile-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 record scrapeds

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

## Global Trade Company & Shipment Data Scraper — Trademo

Extract global trade company profiles from [Trademo](https://www.trademo.com), which tracks import/export activity across 78+ reporting countries. Returns combined, importer, and exporter shipment counts and USD values, top HS codes with market share, monthly trend series, named top buyers and suppliers, and a sample bill-of-lading-level shipment for each direction — one record per company.

***

### Global Trade Company & Shipment Data Scraper Features

- Returns combined, importer, and exporter shipment counts and USD values per company
- Extracts top HS codes with document counts, market share, and shipment value
- Includes named top buyer and supplier counterparties — not just totals
- Captures monthly trend series (shipment count and value, both directions)
- Adds a bill-of-lading-level sample shipment for both the import and export side
- Crawls Trademo's full company directory, sharded A-Z, so a run can walk the whole corpus or a slice of it
- Covers 78+ reporting countries — this isn't limited to US customs data like most import/export scrapers on the market

***

### Who Uses Trademo Trade Data?

- **Lead generation teams** — build prospect lists of active importers and exporters filtered by trade volume, not guesswork
- **Supply chain analysts** — identify a company's actual trading partners from the named buyer and supplier fields
- **Market researchers** — track HS-code market share and monthly trend data to spot category shifts before they show up in official statistics
- **Competitive intelligence** — see who a competitor's counterparties are, and how their shipment volume moves month to month
- **Logistics and freight brokers** — target companies by shipment volume and trade lane, then reach out with a number attached instead of a hunch

***

### How Global Trade Company & Shipment Data Scraper Works

1. Pick which letter shards of Trademo's company directory to crawl — A through Z, or leave it empty for the whole alphabet.
2. The scraper walks each shard's paginated company list and queues a profile request for every company it finds.
3. Each profile page yields one record: shipment aggregates, HS codes, trend history, named counterparties, and a sample shipment for each trade direction.
4. Records land in your dataset as they're collected, so you can start using the early ones before a large run finishes.

***

### Input

```json
{
  "maxItems": 100,
  "letters": ["a", "b"]
}
```

| Field      | Type    | Default | Description |
|------------|---------|---------|-------------|
| `maxItems` | Integer | 10      | Maximum number of company profiles to scrape. |
| `letters`  | Array   | (all)   | Limit the crawl to these first-letter shards of Trademo's directory (company names beginning with the selected letters). Leave empty to crawl every shard A-Z. |

Leave `letters` empty for a full alphabetical crawl, or narrow it to a handful of letters when you only need a slice of the corpus.

***

### Global Trade Company & Shipment Data Scraper Output Fields

```json
{
  "company_name": "amazon com inc",
  "company_id": "25045854",
  "company_slug": "amazon-com-inc",
  "company_mongo_id": "6279079d0c72e95a3a4a0d52",
  "company_type": "B",
  "company_address": "terry avenue north",
  "country_name": "united states",
  "country_code": "US",
  "combined_shipment_count": 1662582,
  "importer_shipment_count": 26112,
  "importer_shipment_value": 1045811543.46,
  "exporter_shipment_count": 1636470,
  "exporter_shipment_value": 887180202.86,
  "top_hs_codes": [
    { "direction": "exporter", "code": "980710", "description": "", "doc_count": 1146069, "market_share": 70.03, "shipment_value": 112889551.6 }
  ],
  "top_importer_countries": ["china", "vietnam", "mexico"],
  "top_exporter_countries": ["mexico", "canada", "united states"],
  "top_importer_keywords": ["hat", "furniture", "electronics"],
  "top_exporter_keywords": ["cable", "case", "accessory"],
  "top_buyers": ["ningbo yangbo home technology co ltd"],
  "top_suppliers": ["importadora amazon mexico s de rl de cv"],
  "monthly_trends": [
    { "key_as_string": "Jan 2022", "doc_count_as_exporter": 36106, "doc_count_as_importer": 264, "shipment_value_as_exporter": { "value": 14073494.79 }, "shipment_value_as_importer": { "value": 13576555.84 } }
  ],
  "product_descriptions": [
    { "key": "Nuclear reactors, boilers, machinery and mechanical appliances...", "doc_count": 1146069 }
  ],
  "sample_shipment_as_importer": {
    "alias_derived_country_of_export": "china",
    "alias_derived_port_of_unlading": "newark, new jersey, united states",
    "alias_derived_weight": 18415,
    "alias_shipment_date": "2026-03-30T00:00:00.000Z"
  },
  "sample_shipment_as_exporter": {
    "alias_derived_country_of_import": "u.s. virgin islands",
    "alias_derived_weight": 3,
    "alias_shipment_date": "2026-03-29T00:00:00.000Z"
  },
  "profile_url": "https://www.trademo.com/companies/amazon-com-inc/25045854"
}
```

| Field                         | Type    | Description |
|-------------------------------|---------|-------------|
| `company_name`                | String  | Company name |
| `company_id`                  | String  | Numeric company id (from the profile URL) |
| `company_slug`                | String  | Canonical URL slug |
| `company_mongo_id`            | String  | Internal Trademo id — joins to other Trademo surfaces |
| `company_type`                | String  | `B` = both importer and exporter, `I` = importer only, `E` = exporter only |
| `company_address`             | String  | Company address |
| `country_name`                | String  | Country name |
| `country_code`                | String  | ISO-2 country code |
| `combined_shipment_count`     | Integer | Total shipments, both directions |
| `importer_shipment_count`     | Integer | Shipment count as importer |
| `importer_shipment_value`     | Number  | Shipment value as importer (USD) |
| `exporter_shipment_count`     | Integer | Shipment count as exporter |
| `exporter_shipment_value`     | Number  | Shipment value as exporter (USD) |
| `top_hs_codes`                | Array   | Top HS codes as objects — direction, code, description, doc count, market share, shipment value |
| `top_importer_countries`      | Array   | Top countries this company imports from |
| `top_exporter_countries`      | Array   | Top countries this company exports to |
| `top_importer_keywords`       | Array   | Top product keywords as importer |
| `top_exporter_keywords`       | Array   | Top product keywords as exporter |
| `top_buyers`                  | Array   | Named top buyer counterparties |
| `top_suppliers`               | Array   | Named top supplier counterparties |
| `monthly_trends`              | Array   | Monthly trend series — month, shipment count and value as importer/exporter |
| `product_descriptions`        | Array   | HS chapter/heading product description objects |
| `sample_shipment_as_importer` | Object  | Bill-of-lading-level sample shipment as importer |
| `sample_shipment_as_exporter` | Object  | Bill-of-lading-level sample shipment as exporter |
| `profile_url`                 | String  | Canonical Trademo profile URL |

***

### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### FAQ

#### How do I scrape Trademo company data?

Set `maxItems` to how many company profiles you want and run it. Leave `letters` empty for a full A-Z crawl, or list specific letters to narrow the run to a slice of the directory.

#### What data can I get from Trademo?

Global Trade Company & Shipment Data Scraper returns a full trade-aggregate profile per company: shipment counts and USD values by direction, top HS codes with market share, named buyer and supplier counterparties, monthly trend history, and a sample bill-of-lading shipment for both import and export.

#### Does this only cover US trade, like most import/export scrapers?

No. Trademo tracks companies across 78+ reporting countries, so this covers non-US trade lanes that US-customs-only sources can't reach.

#### Can I filter by a specific letter of the alphabet?

Yes. Pass `letters: ["a", "b"]` (or any subset) to restrict the crawl to those first-letter shards of the company directory.

#### How much does Global Trade Company & Shipment Data Scraper cost to run?

Cost scales with `maxItems` — each company profile is one billed record. Check the Apify pricing tab on this actor's page for the current per-record rate.

***

### Need More Features?

Need custom fields, filters, or a different target site? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use Global Trade Company & Shipment Data Scraper?

- **Broader than US customs data** — covers 78+ reporting countries, not just the US import lanes every ImportYeti-style scraper is limited to.
- **Named counterparties, not just totals** — top buyers and top suppliers ship as real company names, so you know who a company actually trades with, not just how much.
- **Full-corpus crawl** — walks Trademo's entire letter-sharded directory in one run, so you get systematic coverage instead of one-company-at-a-time lookups.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Maximum number of company profiles to scrape.

## `letters` (type: `array`):

Limit the crawl to these first-letter shards of Trademo's company directory (company names beginning with the selected letters). Leave empty to crawl every shard A-Z.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}
```

# Actor output Schema

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

No description

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/trademo-global-trade-company-shipment-profile-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/trademo-global-trade-company-shipment-profile-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}' |
apify call jungle_synthesizer/trademo-global-trade-company-shipment-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/trademo-global-trade-company-shipment-profile-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/XQMaY1JyYk5UVaz4o/builds/XTKIV7CjLStousDEH/openapi.json
