Megatrends & Themes
The megatrend taxonomy is a 3-tier tree of investment themes — from broad macro trends (tier 1) down to specific sub-themes (tier 3). Every article and stock in MarketDX is mapped to nodes in this tree.
Node ids are 8-digit integers: tier-1 nodes end in 000000 (e.g. 10000000), tier-2 in 0000 (e.g. 10010000), tier-3 are fully specific (e.g. 10010100).
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/megatrends | List/browse the taxonomy tree |
GET | /v1/megatrends/:id | Get one node's metadata |
GET | /v1/megatrends/:id/stocks | Listed stocks mapped to this node |
GET | /v1/megatrends/:id/off-coverage | Private and off-coverage companies |
GET | /v1/megatrends/:id/context | Theme context rail (leaders, news, cross-asset) |
GET | /v1/themes/:id/summary | Composed analyst brief for a theme |
GET | /v1/brief | Analyst brief over any scope combo — see News |
GET /v1/megatrends
Browse or navigate the taxonomy tree. All parameters are optional — omitting all returns the full flat list.
| Parameter | Type | Description |
|---|---|---|
depth | integer | Return only nodes at tier 1, 2, or 3. Also accepted as tier. |
under | integer | Return the recursive subtree under this node id. Works at any tier. |
parent | integer | Return immediate children of this node id only (one level). |
GET /v1/megatrends?depth=1
GET /v1/megatrends?under=10010000
GET /v1/megatrends?parent=10010000
GET /v1/megatrends/:id
Metadata for a single node — name, description, tier, parent chain, aliases.
GET /v1/megatrends/10010000
Returns 404 if the node id does not exist.
GET /v1/megatrends/:id/stocks
Listed stocks mapped to this megatrend node, including rollup from descendant nodes by default.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | ✅ | ISO-2 country code (e.g. US, JP, TW) or all for the global roster. |
exposure | string | — | core, secondary, or all (default). How central the theme is to the company. |
rollup | string | — | true (default) — include descendant nodes. false = exact node only. |
exchange | string | — | Filter to a specific exchange code. |
domicile | string | — | Filter by country of incorporation. |
limit | integer | — | Page size. Default 20. |
offset | integer | — | Pagination offset. |
GET /v1/megatrends/10010000/stocks?country=US
GET /v1/megatrends/10010000/stocks?country=all&exposure=core
GET /v1/megatrends/:id/off-coverage
Private and public-but-uncovered companies mapped to this node. Complements /stocks (which only returns listed equities).
To get both listed + off-coverage together, call both endpoints and concatenate — each row self-identifies via type.
| Parameter | Type | Description |
|---|---|---|
kind | string | private — never listed. public_off_coverage — listed on markets not ingested. Omit for both. |
exposure | string | core, secondary, or all. |
country | string | Filter by country. |
rollup | string | Include descendant nodes (default true). |
include_flagged | string | true to include audit-flagged mappings. Default false (clean only). |
limit | integer | Page size. Default 20. |
offset | integer | Pagination offset. |
GET /v1/megatrends/10000000/off-coverage?kind=private&country=US
GET /v1/megatrends/:id/context
The theme's context rail — a composed view of three lenses over the node's roster:
- Leaders — top stocks by market cap and recent performance
- In news — most impacted stocks from recent articles
- Cross-asset — related commodities, currencies, and macro indicators
Cached 6 hours. No additional parameters.
GET /v1/megatrends/10010000/context
GET /v1/themes/:id/summary
Composed analyst brief for a theme — returns a bundled payload with:
- Pulse timeseries — article volume and sentiment over time
- Top stories — most impactful recent articles
- Ripple — which adjacent themes were affected
- Winners/losers — stocks most benefited or hurt
- Aspect heatmap — which impact channels dominated
- Top entities — most frequently mentioned companies and private firms
:::info Cost
GET /v1/themes/:id/summary charges 15 credits (bundles ~5 sub-queries).
:::
Query parameters
| Parameter | Type | Description |
|---|---|---|
window | string | 7d, 30d (default), 90d, 180d, 1y, mtd, qtd, or ytd. |
from / to | string | ISO date range, alternative to window. |
interval | string | Pulse timeseries granularity (day, week). |
country | string | Scope stock data to a country. |
lang | string | Language for labels. Default en. |
GET /v1/themes/10010000/summary?window=90d
GET /v1/themes/10010000/summary?from=2026-01-01&to=2026-06-30
exposure values
| Value | Meaning |
|---|---|
core | The theme is central to the company's business model |
secondary | The company has partial/indirect exposure to the theme |
all | No filter — both core and secondary |