SMM - Shanghai Metals Market app icon

Metals market data · authorized integration

Wiring SMM's metal-market data into your own platform

More than 850 metal-market series — spot prices on 300-plus metals (per metal.com), monthly trade flows, weekly inventories, indices and SHFE figures — sit behind SMM's four account levels, and the useful ones need an account above the Free tier. The cleanest way in is the data interface SMM serves to licensed accounts: it speaks JSON, takes a date range, and reports per call whether your level covers the series you asked for. Where a surface only lives in the app — SMM Insight commentary, the Data Graph charts, your saved watchlist — we capture it through authorized protocol analysis of the session.

What sits behind the account tiers

Each row maps a real SMM surface to where it shows up in the app, how granular it is, and what an integrator does with it once it lands in their own systems.

Data domainWhere it shows in the appGranularityWhat you'd do with it
SMM Price (spot)Latest Data, price screens, watchlistDaily, per metal grade and regionBenchmark feeds into contract pricing, ERP, cost models
Imports & exportsLatest / Historical DataMonthlyTrade-flow and supply-demand balance models
InventoriesLatest Data, SHFE stock reportsWeekly / monthlySupply-tightness and restocking signals
IndexIndex categoryDailyComposite tracking, dashboard tiles
Historical DataHistorical DataSome series back over ten years (as described)Backtests and long-run trend charts
SHFE dataSHFE screenExchange scheduleFutures basis against SMM spot
News & SMM InsightNews and Insight feedsAs publishedAlerting, sentiment and event tagging

How we'd reach the data

Three routes apply here. They differ in effort and in how well they hold up when SMM changes something, and the right mix depends on which surfaces you actually need.

Consented access to SMM's data interface

SMM serves licensed accounts a documented data interface that returns JSON. A request carries an OAuth token plus an optional start and end date; the response wraps column metadata and a records array, and each dataset reports whether the calling tier is permitted. Reachable: the priced and reported series your account level covers. Effort is low to moderate, durability is high because the JSON contract is stable. We set up the token flow against the account you license — that onboarding is part of the build, handled with you.

Protocol analysis of the app and portal

SMM Insight write-ups, the Data Graph trend charts, and personal watchlist state render in the client rather than the priced endpoint. We reach those through authorized analysis of an instrumented session under your sign-off. Effort is moderate; durability is medium, since a portal front-end change can move things — which is why we keep a re-validation pass in maintenance.

Native Data Download

The website Data Download exports historical series in bulk. It is manual but durable, and it is the quickest way to seed ten years of one metal before the live calls take over the daily increment.

On this app the core integration goes against the data interface: its envelope is versioned and already carries the per-tier permission flag, so a client built on it keeps working as your SMM level shifts. Protocol analysis covers what that endpoint does not carry, and the website Data Download seeds the long history. We would recommend starting with the interface and adding the other two only for the surfaces that need them.

What you get

Everything below is written against SMM's actual surfaces, not a generic template:

  • An OpenAPI/Swagger spec for the SMM data calls your account covers — the GetDataEn datasets, the date-range parameters, and the column-metadata plus records envelope, documented field by field.
  • A protocol and auth-flow report: how the OAuth token is obtained and refreshed, how the per-tier permission flag behaves, and what the app-only surfaces return.
  • Runnable source in Python or Node.js — token handling, the dataset calls, and a parser that turns the column-metadata + records envelope into typed rows or a normalized schema.
  • Automated tests against recorded responses, including the not-in-tier (permission denied) path so a downgrade does not break your pipeline silently.
  • Interface documentation, including the dataset-id catalogue that maps human metal and series names to SMM's slugs.
  • Compliance and retention notes for the China cross-border angle.

Inside one data call

The shape below reflects SMM's documented data interface as observed during the mapping; the host, parameters and field names come from a published lead-inventory series on data.metal.com. Treat it as illustrative — the exact dataset and fields are confirmed per account during the build.

# 1) Get an OAuth token for the licensed account
POST https://platform.smm.cn/usercenter/auth
  { "username": "...", "password": "...", "source": "..." }
  -> { "access_token": "<token>" }

# 2) Query a dataset (date range optional; defaults to ~1 year)
POST https://dataapi.smm.cn/GetDataEn/pb_weekly_report_shfe_stock_by_region_zhejiang
  { "token": "<token>", "sdatetime": "2025-01-01", "edatetime": "2026-06-15" }

# 3) Response envelope
{
  "Code": 200,
  "Msg": "success",
  "Data": {
    "Status": 1,                 # 1 = your tier is permitted, 0 = not in plan
    "Field": [                    # column metadata: name, unit, description
      {"name":"report_date","unit":""},
      {"name":"spotwghts","unit":"mt"},
      {"name":"whstocks","unit":"mt"},
      {"name":"whstockchange","unit":"mt"}
    ],
    "Content": [                  # 2D array of records, column order = Field
      ["2026-06-13", 18250, 41200, -360]
    ]
  }
}

# Client logic: read Data.Status first.
if resp["Data"]["Status"] == 0:
    skip_series(dataset)         # out of tier — degrade, don't fail
else:
    rows = zip_fields(resp["Data"]["Field"], resp["Data"]["Content"])
      

Where teams put this

  • A procurement desk pipes SMM copper and aluminium spot benchmarks into daily contract pricing.
  • A trading team pulls SHFE stock reports alongside SMM spot to compute the basis.
  • A research group backfills a decade of zinc and lead history for a forecasting model, then keeps it current off the live calls.
  • An ERP integration normalizes SMM prices next to LME reference prices so one schema serves both.

PIPL, cross-border transfer, and what's personal here

The market numbers themselves are not personal data — they are prices, stocks and indices. The personal-information surface is small: the account login used to authorize the pull. China's Personal Information Protection Law (PIPL), alongside the Data Security Law and Cybersecurity Law, governs that surface, and because SMM is a mainland platform, anything personal leaving the country falls under the cross-border transfer regime. PIPL offers three routes for that — a CAC security assessment, a standard contract, or certification; the CAC and SAMR finalized the certification measures on 14 October 2025, effective 1 January 2026, and a March 2024 relaxation added a contractual-necessity exemption (per China Briefing). We keep the personal surface to the consented credential and strip the rest, so in practice a cross-border pull moves market data and not user records. Consent is recorded, access is logged and data-minimized, and we sign an NDA where the work touches anything sensitive.

Engineering notes specific to SMM

Two things shape this build more than anything else, and a third saves real time later.

  • Per-tier permission, not all-or-nothing. Every dataset answers with a status flag, so we design the sync to read it per call and pull only what the licensed level covers — a lower tier means fewer series, never a broken job. We map the tier rules so two accounts on different SMM levels are handled correctly.
  • Cross-border data minimization by construction. We scope the integration so the only personal value that ever crosses a border is the single consented login; everything downstream is market data. Retention windows and logging are set with you during onboarding rather than bolted on afterward.
  • Dataset-id catalogue. SMM's dataset identifiers are long, language-suffixed slugs under GetDataEn/. We maintain the catalogue that maps human names — "SHFE zinc warehouse stock", "copper spot premium" — to those keys, so your code references the metal, not a raw id.

Cost and timeline

A runnable SMM client — the OAuth token flow, the GetDataEn calls your tier covers, and the parser for the column-metadata and records envelope — starts at $300, billed only after it is delivered and you are satisfied with it. The metered alternative skips the build entirely: call our hosted SMM endpoints and pay per call, with nothing upfront. Both run on a one-to-two-week cycle. Tell us the app and what you need out of its data, and we will scope it — start a conversation here.

Screens from the app

These are SMM's own screens, included to ground the surfaces named above. Tap to enlarge.

SMM - Shanghai Metals Market screenshot 1 SMM - Shanghai Metals Market screenshot 2 SMM - Shanghai Metals Market screenshot 3 SMM - Shanghai Metals Market screenshot 4
SMM - Shanghai Metals Market screenshot 1 enlarged
SMM - Shanghai Metals Market screenshot 2 enlarged
SMM - Shanghai Metals Market screenshot 3 enlarged
SMM - Shanghai Metals Market screenshot 4 enlarged

What we checked

We mapped SMM's published data interface and the app listing in June 2026, working from the dataset documentation, the app's feature page, and the store entry; the China cross-border position comes from a public summary of the CAC certification measures. Sources opened during the review:

Mapped by the OpenBanking Studio integration desk · June 2026.

Teams that integrate SMM usually run one or more of these alongside it; a unified integration normalizes them into a single schema. Listed for context, not ranking.

  • Fastmarkets (Dashboard) — independent price assessments across metals, including LME official and closing reference prices.
  • London Metal Exchange / LMElive — official exchange prices, settlements and warehouse stock figures.
  • CME Group — metals futures and options with settlement and volume data.
  • Argus Media — independent price assessments spanning metals and energy.
  • S&P Global Commodity Insights (Platts) — benchmark prices and market reports across commodities.
  • CRU — supply, demand and cost intelligence across the metals chain.
  • Investing.com — consumer-facing metals quotes, charts and alerts.
  • TradingView — charting over metals futures and spot symbols.
  • Capital IQ Pro — S&P market intelligence including commodity datasets.

Questions integrators ask about SMM

Does my SMM account level change what the data interface returns?

Yes. Each dataset comes back with a status flag — granted or not for your tier — so we build the client to read that flag per call and pull only the series your SMM level actually covers, degrading cleanly rather than erroring when one is out of plan.

Can you reach SMM Insight and the Data Graph charts, not only the priced series?

Those surfaces render in the app and portal rather than the priced data endpoint, so we reach them through authorized protocol analysis of the session — the same way we capture watchlist state and rendered trend charts.

We need ten-plus years of history for backtesting — how does that come over?

Historical Data and the website Data Download cover bulk backfills, while the data interface takes a start and end date on each call for incremental pulls; we wire the one-time backfill and the daily increment as separate jobs.

SMM is a mainland-China platform — how do you handle the cross-border data rules?

We keep the personal-data surface to the single consented login and strip the rest, so a cross-border pull moves market data, not user records; retention, logging and any standard-contract paperwork are set up with you under PIPL during onboarding.

App profile — SMM - Shanghai Metals Market

SMM - Shanghai Metals Market (package cn.smm.en, per its Play Store listing) is the mobile app of Shanghai Metals Market / metal.com, a China-based metals price and market-intelligence provider. The app describes more than 850 types of data covering the China metal market — prices, imports and exports, inventories and indices — together with global metals news and SMM Insight analysis. Users are grouped into four levels from Free upward, with latest and historical data, Data Graph charts, SHFE data, and website-only Data Comparison, Data Download and data-interface features gated by level. Some historical series track back more than ten years, as the app describes it. This page is independent and references the app to document an authorized integration route.

Mapping last checked 2026-06-15.