WolfMarket API

Normalized, historical, always-fresh market and economic data — one clean JSON API. SEC filings & financials, commodity and energy prices, CFTC positioning, US macro series.

Getting started

Base URL: https://wolfmarketai.com. Every data request needs an API key in the X-Api-Key header — create one in the portal. The JSON API is included from Professional up. Trial and Starter get the dashboard: interactive charts of everything you track plus the market commons, company filing and financials pages, and futures-positioning views, no code required — and every plan can use it. Opt-in email alerts (portal → Account view) notify you within the hour when a tracked company files with the SEC, and a Monday digest summarizes your tracked entities' week. Per-entity data — companies, commodity series, COT markets — is served for entities on your tracked list; economy-wide commons (CPI, Treasury yields, policy rates, FX, headline indexes) are open to every plan.

curl -H "X-Api-Key: wm_..." \
  "https://wolfmarketai.com/api/v1/series/EIA:PET.RWTC.D/observations?from=2020-01-01"

Every data response uses one envelope: { data, meta, attribution }. The attribution array lists the origin of every source present in the result — see your obligations below.

rate limit 10 requests/second per key (burst 20). Exceeding it returns 429.

Database starter kit (Data plan)

Rather run your own database? The portal generates a personalized kit: name your database, pick SQL Server or PostgreSQL, choose the data domains — and download a ZIP containing the create-database script, the full schema, an automated sync script (initial backfill + re-runnable refresh of everything you're entitled to), and step-by-step instructions.

# SQL Server (nothing to install beyond SQL Server itself)
.\sync.ps1 -ApiKey wm_YOUR_KEY -Init

# PostgreSQL (psql + curl)
./sync.sh --api-key wm_YOUR_KEY --init

Re-running the sync is always safe — every load is an idempotent upsert with incremental watermarks. Your API key is a runtime parameter, never stored in the kit. Attribution obligations ship inside the kit as ATTRIBUTION.md and are collected automatically into an attribution_seen table.

What's inside

DomainDataHistorySource
SEC filingsFiling index (10-K/10-Q/8-K/…) for covered companies, with primary-document links1994+SEC EDGAR
Company financialsRaw XBRL facts — every reported figure, all taxonomies, you pick the tags1989+SEC EDGAR
Energy pricesWTI & Brent crude, Henry Hub gas, gasoline/diesel retail, propane, electricity1986+EIA
Agricultural pricesPrices received: corn, soybeans, wheat, cattle, hogs, milk (monthly, national)1908+USDA NASS
Futures positioningCFTC Commitments of Traders — legacy, disaggregated, and TFF reports, 989 markets1986+CFTC
Rates & debtDaily Treasury par yield curve (13 tenors), avg interest rates, Debt to the Penny1990+US Treasury
US inflationCPI-U (headline and core) and PPI index series1913+BLS
US employmentNonfarm payrolls, unemployment rate, labour-force participation, average hourly earnings1939+BLS
US national accountsReal and nominal GDP, PCE and core PCE price indexes (the Fed's target measure), personal income1947+US BEA
US demand & housingAdvance retail trade sales; housing starts, building permits and completions1959+US Census Bureau
Global macroGDP, inflation, population, unemployment for major economies1960s+World Bank
World commodity pricesMonthly dollar prices for ~70 commodities — metals, ores, rubber, rice, palm oil, coffee (Pink Sheet)1960+World Bank
Foreign exchangeDaily EUR reference rates (30+ currencies) and CAD pairs — informational rates, freely available at source1999+ECB, Bank of Canada
Central bank policy ratesDaily policy rates for 49 economies — US, euro area, UK, Japan, China, India, Korea, Indonesia, Malaysia, Thailand, Philippines, Mexico & more1945+BIS
Canada macroCPI all-items, unemployment, real GDP, Raw Materials Price Index, retail sales (monthly)1976+Statistics Canada
Japan import unit valuesLNG (a widely cited Asian benchmark), crude oil and LPG — derived from MOF customs value and quantity; lag spot benchmarks ~1-2 months2016+e-Stat / Japan Customs
Mexico macroMXN/USD FIX rate (1991+), policy target rate, TIIE 28-day, INPC headline & core CPI (1969+), UDIS1969+Banco de México
Euro area & EU macroHICP inflation (annual rate) and unemployment — euro area + DE, FR, IT, ES, NL, PL, SE1983+Eurostat
UK company registryAll ~5.75M live UK-registered companies: status, type, incorporation date, SIC codes, registered officecurrent registerCompanies House
UK company accountsBalance-sheet core per filed accounts (equity, assets, creditors, cash, employees; turnover where filed) — ~23k filings/day2026-06+ (accumulating)Companies House
Taiwan listed companiesTWSE registry (1,095 companies) + monthly revenue and quarterly EPS/net income per company2026-08+ (accumulating)TWSE
Southeast Asia macroMalaysia CPI/core CPI/IPI/unemployment/GDP · Singapore CPI & unemployment · Philippines CPI · Taiwan CPI1961+DOSM, SingStat, PSA
Philippines farmgate pricesPalay (paddy rice) and yellow corn national farmgate prices, PHP/kg monthly2010+PSA
Freight & logistics costsUS producer price indexes for deep sea freight, freight forwarding, marine cargo handling, port operations, truckload and LTL trucking, warehousing, couriers and air freight. Price indexes for the service, not spot container rates — monthly and lagged1988+BLS
Finished-goods import pricesWhat finished consumer goods cost to land in the US — hand tools, tool bits, locks, builders' fittings, plastic and steel housewares, grills, aluminium and steel articles, lighting, seats and furniture. World total plus China-, Vietnam- and India-origin, priced per article or per kilogram depending on how each heading is actually traded2018+US Census
Consumer-goods producer pricesHardware, hand and edge tools, plumbing fixtures, lighting fixtures, household furniture and appliances, electric housewares, lawn and garden equipment1926+BLS
US import unit valuesHard $/kg for polymers (PE, PP, PS, PVC, ABS) and steel grades — the licence-clean substitute for resin and steel spot assessments; derived from customs value ÷ quantity, lags spot 1-2 months2018+US Census
China-origin import pricesWhat Chinese-made goods cost at a foreign border: cold-rolled and galvanized steel, silicon steel, polypropylene, polyester yarn, permanent magnets (Japan customs) and sintered NdFeB magnets (US customs). CIF at the importing border, not a Chinese domestic price1994+Japan MOF, US Census
US wholesale dairyDry whey, nonfat dry milk, dry whole milk and whey protein concentrate ($/lb), plus butter and cheddar as international export quotations ($/MT)1991+USDA AMS
US cottonUpland cotton spot quotation, base quality 41-4-34, US cents/lb, by producing region and national total2025+ (accumulating)USDA AMS
Sovereign yield curvesUS Treasury par curve (13 tenors) and the German Bund curve (9 maturities, 1Y-30Y) — the euro area's risk-free benchmark1990+ / 1997+US Treasury, Bundesbank
US money-market ratesSOFR, EFFR, OBFR, TGCR and BGCR — the rates the Fed's target actually prints at2000+New York Fed
US dollar exchange ratesMonthly USD rates for 12 currencies including VND, PHP and IDR — several with no clean euro-cross alternative1945+BIS
OECD macroHarmonised CPI, GDP growth and unemployment for the major economies, including China and Indonesia1987+OECD
Global unemploymentBrazil, China and India — ILO modelled estimates (annual econometric imputations, not survey results; projection years are never served)1991+ILOSTAT
EU producer pricesIndustrial PPI by product group — pulp, paper, paperboard and more, per member state1976+Eurostat
Japan CPIHeadline and core consumer price indexes from the Statistics Bureau (separate from the customs trade feed)1970+e-Stat / Statistics Bureau
Critical mineralsUS and world production quantities for 39 critical minerals — rare earths, lithium, cobalt, gallium. Quantities only: price rows that republish commercial assessments are deliberately excludedannualUSGS

No equity prices or exchange market data — every byte served here is verified redistributable (US-government public domain or CC-BY). That verification is the product.

Endpoint reference

All endpoints are GET unless noted. Dates are YYYY-MM-DD. Machine-readable spec: /openapi/v1.json.

/api/v1/catalog/sources

All data sources with license type, terms URL, and attribution requirements.

/api/v1/catalog/datasets?source=&domain=

Datasets per source. domain ∈ macro | commodities | energy | ag | prices | fx | filings | registry.

/api/v1/catalog/series?q=&dataset=&page=&pageSize=

Search the time-series catalog by key or title. Each entry carries units, frequency (D/W/M/Q/A), and first/last observation dates.

How q matches: every word you give must appear, in the series key or the title, in any order — so q=retail sales finds “Advance retail trade sales”. Up to six words are used; the rest are ignored.

/api/v1/series/{seriesKey}/observations?from=&to=&limit=

Observations for one series, oldest first. Series keys are namespaced by source:

NamespaceExampleMeaning
EIA:EIA:PET.RWTC.DWTI crude spot, daily. Any valid EIA series id works — unknown ones are auto-collected on subscription.
TREAS:TREAS:YIELD:PAR:10Y10-year Treasury par yield. Tenors 1M–30Y; also TREAS:DEBT:*, TREAS:AVGRATE:*.
BLS:BLS:CUUR0000SA0CPI-U all items, NSA (BLS series ids).
NASS:NASS:CORN_GRAIN_PRICE_RECEIVED_MEASURED_IN_BUUS monthly price received.
WB:WB:NY.GDP.MKTP.CD:USAWorld Bank indicator per country (ISO3).
WBCMO:WBCMO:COPPERWorld Bank Pink Sheet monthly world commodity price.
ECB: / BOC:ECB:EURUSD, BOC:FXUSDCADDaily FX reference rates (commons — every plan).
BIS:BIS:CBPOL:CNDaily central bank policy rate per economy, ISO2 code (commons — every plan).
STATCAN:STATCAN:CPI_ALLITEMSCurated Canadian macro indicators (commons — every plan).
EUROSTAT:EUROSTAT:HICP_INF_DECurated EU macro per geo (commons — every plan).
TWSE:TWSE:REV:2330Taiwan listed-company fundamentals by stock code: REV monthly revenue, EPS/NETINC quarterly cumulative YTD. Tracked entities.
DOSM: / SINGSTAT: / PSA:SINGSTAT:CPICurated Malaysia / Singapore / Philippines macro + PH farmgate prices (commons — every plan).
AMS:AMS:DAIRY:WHEY_CENTRAL, AMS:COTTON:UPLAND_USUSDA wholesale dairy and cotton quotations. Values are the midpoint of the published low-high range.
USTRADE:USTRADE:UV:PVC, USTRADE:CN:NDFEBUS import unit values, $/kg. :UV: is a world total; :CN: is China-origin only.
ESTAT:ESTAT:IMP_LNG, ESTAT:CN:GALVJapan customs import unit values, JPY per unit. :CN: is China-origin only.
BBK:BBK:YIELD:10YGerman sovereign yield curve, daily (commons — every plan).
NYFED:NYFED:SOFRUS money-market reference rates, daily (commons — every plan).
OECD: / ILO:OECD:CPI_CHN, ILO:UNEMP:BRAOECD harmonised macro; ILO modelled unemployment estimates (commons — every plan).
JPCPI: / BANXICO: / DGBAS:JPCPI:HEADLINE, BANXICO:FIXJapan CPI, Mexico macro, Taiwan CPI (commons — every plan).
USGS:USGS:ALUMINUM:WORLD_PRODCritical-mineral production quantities, annual (commons — every plan).

/api/v1/companies?q=&covered=

Search all ~8,000 SEC registrants by name or ticker. covered=true limits to companies with collected data. q matches a ticker exactly, or a name word by word in any orderq=Bath Body Works finds “Bath & Body Works, Inc.”. Also /api/v1/companies/{cikOrTicker} for one — note that it returns data as a one-element array, not an object: every endpoint wraps its payload the same way so one parser handles all of them. Read data[0].

/api/v1/global/companies?registry=&q=&status=&page=&pageSize=

Non-US registries. registryGB-CH (UK Companies House, ~5.75M live companies) | TW-TWSE (Taiwan listed companies). q is a name prefix match or an exact registry number. One company: /api/v1/global/companies/{registry}/{number} (e.g. /global/companies/GB-CH/00445790, /global/companies/TW-TWSE/2330). Registry data is commons — any plan with API access.

/api/v1/filings?cik=|ticker=&form=&from=&to=&page=&pageSize=

Filing index, newest first. form e.g. 10-K, 8-K. Single filing: /api/v1/filings/{accessionNumber}.

/api/v1/facts?cik=|ticker=&tag=&taxonomy=&unit=&from=&to=&limit=

Raw XBRL facts. Filter by company and/or tag (e.g. tag=RevenueFromContractWithCustomerExcludingAssessedTax, tag=NetIncomeLoss, unit=USD). Duration facts carry periodStart; instant facts don't.

/api/v1/cot/{legacy|disaggregated|tff}?market=&variant=&from=&to=&limit=

COT weekly positions. market = contract code or name search (GOLD, 067651); variant 1 = futures-only, 2 = combined. Market catalog: /api/v1/cot/markets?q=.

POST /api/v1/subscriptions

The auto-collect trigger: subscribe to something and the system starts collecting it — including its full history — automatically (typically live within minutes).

curl -X POST -H "X-Api-Key: wm_..." -H "Content-Type: application/json" \
  -d '{"targetType":"Company","targetKey":"DE"}' \
  https://wolfmarketai.com/api/v1/subscriptions
# → 202 {"subscriptionId":42,"status":"Requested"}

targetTypeCompany (ticker or CIK) | Bundle (commodity concept — corn, crude-oil, steel… one slot covers its prices, futures positioning, and cost indexes) | Series (series key) | CotMarket (contract code or name). Tracking an entity is also what entitles your key to query it. Track progress at /api/v1/subscriptions/{id}: Requested → Backfilling → Active. Requests that can't be resolved automatically are queued for operator review (NeedsReview) — nothing silently fails.

Point-in-time (asOf)

Publishers revise. WolfMarket keeps what a value said before it changed, so you can ask what you would have seen on a past date — essential when testing a rule against history. Add asOf= (an ISO timestamp) to /series/{seriesKey}/observations or to any /cot/* endpoint.

curl -H "X-Api-Key: wm_..." \
  "https://wolfmarketai.com/api/v1/series/JPCPI%3AHEADLINE/observations?asOf=2026-09-10T00:00:00Z"

The response meta then carries asOf, the number of values the request actually changed (restatedPoints, or restatedRows for COT), and vintagesFromUtc — when revision capture began: 2026-09-06 for series and 2026-09-13 for COT. Before those dates today's values are returned, so you can always tell "never revised" from "not yet recording".

Attribution — your obligations

These obligations are contractual: see section 6 of the Terms of Service.

WolfMarket serves only redistribution-licensed data, and some licenses carry conditions that pass through to you:

Every response's attribution array gives you the exact strings and terms URLs.

Errors

StatusMeaning
401Missing, invalid, or revoked X-Api-Key (no body).
404Unknown company/series/filing — or data that is not licensed for redistribution (served as if absent).
403Your key is not entitled to that entity — track it (or its bundle) first; the body says so.
429Rate limit exceeded (10/s, burst 20). Back off and retry.
400Bad parameters; body carries an error message.