# China Shipping & Freight Indexes (SCFI, CCFI) from SSE (`sinodata/china-shipping-indexes`) Actor

Official freight indexes from the Shanghai Shipping Exchange (上海航运交易所), no login: CCFI and SCFI container indexes with route values, dry bulk (CBFI, FDI, CDFI), coal, ore, grain, tanker and crude (CTFI), import trade and schedule punctuality. 18 indexes, about 250 values per run.

- **URL**: https://apify.com/sinodata/china-shipping-indexes.md
- **Developed by:** [SinoData](https://apify.com/sinodata) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 index values

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

## China Shipping & Freight Indexes (SCFI, CCFI) from SSE

Get **China's official shipping and freight indexes** as clean JSON, straight from the **Shanghai Shipping Exchange (上海航运交易所, sse.net.cn)**, the publisher of the SCFI and CCFI. No login, no Chinese needed: every row has an English name.

**18 indexes, about 250 values per run:**

| Group | Indexes |
|---|---|
| Container | **CCFI** (composite + 12 trade lanes), **SCFI** composite, **SCFIS** (settlement index, Europe and US West Coast), **CICFI** (import container), **TWFI** (Taiwan Strait), **SEAFI** (Southeast Asia) |
| Dry bulk | **CBFI** coastal bulk (composite, coal, grain, ore and oil sub-indexes, 16 coastal routes), **CBCFI** coal, **CBOFI** ore, **CBGFI** grain, **CDI** coastal daily charter, **FDI** (Capesize, Panamax and Supramax rates and time charters), **CDFI** import dry bulk (iron ore, coal, soybeans, nickel ore) |
| Tanker | **CCTFI** coastal products tanker, **CTFI** import crude oil tanker (VLCC routes from the Middle East, West Africa and the US Gulf) |
| Trade | **CSI** China import trade shipping index by region and country (about 80 countries), **Belt and Road** trade and freight indexes |
| Punctuality | **GCSPI** global container schedule punctuality |

Each value comes with the previous value, the change (in % or points, as published), the release dates and route details such as vessel size, cargo, unit and weight.

### Use cases

- **Freight and logistics**: track container rates out of China and coastal bulk costs week by week.
- **Commodities and trading**: coal, iron ore, grain and crude freight into China, a leading signal for import demand.
- **Research and macro**: the CSI import shipping index by country, Belt and Road trade, schedule reliability.
- **Dashboards**: schedule a weekly run (Friday afternoon China time, after the SCFI release) and send it to Google Sheets or your database.

### Example input

Everything:

```json
{}
```

Container indexes only, and only when there is a new release (for scheduled runs):

```json
{
  "groups": ["container"],
  "skipUnchanged": true
}
```

Specific indexes: `{ "indexes": ["scfi", "ccfi", "cdfi"] }`

### Output

```json
{
  "type": "shippingIndex",
  "indexCode": "ccfi",
  "indexName": "中国出口集装箱运价指数",
  "indexNameEnglish": "China Containerized Freight Index (CCFI)",
  "indexGroup": "Container",
  "item": "中国出口集装箱运价综合指数",
  "itemEnglish": "CCFI composite index",
  "attributes": null,
  "previousDate": "2026-09-30",
  "previousValue": 1923.93,
  "currentDate": "2026-10-09",
  "currentValue": 1912.38,
  "change": -0.6,
  "changeUnit": "%"
}
```

A crude tanker route:

```json
{
  "indexCode": "ctfi",
  "item": "中东湾拉斯坦努拉—中国宁波(CT1)",
  "itemEnglish": "ME Gulf Ras Tannura to China Ningbo(CT1)",
  "attributes": { "cargoSize": "270000 MT", "vesselType": "VLCC", "unit": "points", "weight": "60%" },
  "currentDate": "2026-10-09",
  "currentValue": 22202.67,
  "change": 494.49
}
```

- `item` is the official Chinese name; `itemEnglish` is the exchange's own English label where it gives one, otherwise our translation.
- `changeUnit` is `%` when the exchange publishes a percentage change; otherwise the change is in the index's own unit (points, USD).
- Indexes published for a month (such as GCSPI) carry a month like `2026-09` as their date.

### Release schedule

Most indexes are published weekly (the SCFI and CCFI on Fridays); a few, such as GCSPI, are monthly. With **Only new releases** on, a scheduled run skips (and doesn't charge for) any index whose latest release you already have.

### Pricing

**$0.001 per index value.** A full run (about 250 values) costs about $0.25; the CCFI alone (13 values) about $0.013.

### Notes and limits

- **Latest release only.** The exchange publishes historical values and the SCFI route breakdown to members only, so this Actor returns what is public: the current release of every index. Schedule it weekly to build your own history.
- Official figures as published; this Actor does not calculate or estimate any rates.
- Only public data is collected.

### Related

- [China CNY Fixing, Shibor & LPR Rates](https://apify.com/sinodata/china-cny-rates) and [China Wholesale Food Prices](https://apify.com/sinodata/china-agri-prices): more official China economic data.

### Feedback

Need another index or field? Open an issue on the Issues tab.

# Actor input Schema

## `groups` (type: `array`):

Only these groups (leave empty for all 18 indexes).

## `indexes` (type: `array`):

Only these index codes, e.g. ccfi, scfi, cbfi, fdi, ctfi. Leave empty to use the groups above.

## `skipUnchanged` (type: `boolean`):

For scheduled runs: skip (and don't pay for) an index whose latest release you already saved in a previous run.

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

Not needed for normal use.

## Actor input object example

```json
{
  "skipUnchanged": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

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

// Run the Actor and wait for it to finish
const run = await client.actor("sinodata/china-shipping-indexes").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("sinodata/china-shipping-indexes").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 sinodata/china-shipping-indexes --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sinodata/china-shipping-indexes"
        }
    }
}
```

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/0ebrxQO3fQMD2S0e2/builds/xkr2ULbhigSZg0hse/openapi.json
