Free Developer
$0- · 1 API key
- · 500 asset reads / day
- · 20 batch calls / day
- · 60 req/min
MarketSchema for developers
Agents that read markets. Bots that act on structure. Automations that never sleep. Old school sells terminals to humans — we feed structure to machines: every score explained, every input sourced, every response honest about freshness.
# no key needed to try — 500 reads/day anonymous
curl https://api.marketschema.com/v1/asset/NVDA
{
"ticker": "NVDA",
"schema_score": 14,
"regime_label": "balanced_mixed",
"confidence": 74,
"entry_value": 32,
"freshness": "live",
"as_of": "2026-06-12T11:27:18.485074+00:00",
"top_drivers": [
{
"index_symbol": "RQRI",
"index_name": "Risk-Quality Rotation Index",
"wind": "tailwind",
"z_score": 0.8155,
"weight": 0.16
},
{
"index_symbol": "LFSI",
"index_name": "Liquidity & Financial Stress Index",
"wind": "tailwind",
"z_score": 0.5071,
"weight": 0.21
},
{
"index_symbol": "DCAI",
"index_name": "Data Center Buildout Index",
"wind": "tailwind",
"z_score": 0.2159,
"weight": 0.31
}
],
"contract_version": "3.0.0"
}One number per asset for how the macro environment lines up behind it — with the drivers that produced it, never just the number.
GET /v1/asset/{ticker}
{
"ticker": "NVDA",
"schema_score": 14,
"regime_label": "balanced_mixed",
"confidence": 74,
"entry_value": 32,
"freshness": "live",
"as_of": "2026-06-12T11:27:18.485074+00:00",
"top_drivers": [
{
"index_symbol": "RQRI",
"index_name": "Risk-Quality Rotation Index",
"wind": "tailwind",
"z_score": 0.8155,
"weight": 0.16
},
{
"index_symbol": "LFSI",
"index_name": "Liquidity & Financial Stress Index",
"wind": "tailwind",
"z_score": 0.5071,
"weight": 0.21
},
{
"index_symbol": "DCAI",
"index_name": "Data Center Buildout Index",
"wind": "tailwind",
"z_score": 0.2159,
"weight": 0.31
}
],
"contract_version": "3.0.0"
}Market-wide risk gauges by family — liquidity, credit, volatility — computed from the same published indexes your agent can audit.
GET /v1/gauges
{
"gauges": [
{
"gauge_key": "liquidity",
"label": "Liquidity & Stress",
"value": -0.05847155555555556,
"signal": "neutral"
},
{
"gauge_key": "credit",
"label": "Credit",
"value": -0.05265661111111112,
"signal": "neutral"
},
{
"gauge_key": "rates",
"label": "Rates & Curve",
"value": -0.005137444444444442,
"signal": "neutral"
}
],
"computed_at": "2026-06-12T11:42:43.596255+00:00"
}62 proprietary macro indexes, every formula published, every input sourced. The raw structure layer.
GET /indices
[
{
"symbol": "ACSI",
"name": "AI Compute Capex Index",
"current_value": 0.138589
},
{
"symbol": "ALVI",
"name": "Auto Lending Volume Index",
"current_value": -1.272806
},
{
"symbol": "ASPI",
"name": "AI Buildout Bottleneck Index",
"current_value": -0.271455
}
]33 tracked market narratives with momentum and state — what the market is trading on, machine-readable.
GET /v1/trust/narrative-graph
{
"narrative_count": 33,
"items": [
{
"slug": "war-oil-shock",
"label": "War / Oil Shock",
"state": "Dormant",
"momentum_1w": 11
},
{
"slug": "ai-infrastructure-buildout",
"label": "AI Infrastructure Buildout",
"state": "Weakening",
"momentum_1w": -10
},
{
"slug": "power-bottleneck",
"label": "Power Bottleneck",
"state": "Dormant",
"momentum_1w": -14
}
]
}Per-asset theme exposure with direction and impact — which stories move this ticker, and how hard.
GET /api/assets/equity:{ticker}
{
"ticker": "NVDA",
"related_themes": [
{
"slug": "semiconductor-supercycle",
"name": "Semiconductor Supercycle",
"score": 57,
"direction": "tailwind",
"impact": 0.0756
},
{
"slug": "data-center-thermal-bottleneck",
"name": "Data Center Thermal Bottleneck",
"score": 74,
"direction": "tailwind",
"impact": 0.0756
}
]
}A hosted Model Context Protocol server, running now. Point Claude at it and your agent can pull the market regime, audit an index's drivers, or fetch a full decision packet — structured, sourced, and explainable, not scraped. There's an OpenAI function-calling manifest for everything else, and llms.txt so models can orient themselves.
# Claude Code — one command, live in seconds
claude mcp add --transport http marketschema \
https://marketschema-mcp-production.up.railway.app/mcp
# OpenAI function-calling manifest — 6 tools, no auth
curl https://api.marketschema.com/v1/agent/openai-tools
{
"server": "MarketSchema MCP",
"tools": [
"get_market_regime",
"check_trade",
"get_index_detail",
"get_signal_changes",
"get_market_pulse",
"get_decision_packet"
]
}import requests
API = "https://api.marketschema.com"
KEY = {"X-API-Key": "ms_..."} # free tier: 1 key, 500 reads/day
# 1. the morning read — regime + risk gauges
gauges = requests.get(f"{API}/v1/gauges", headers=KEY).json()
# 2. score the book — up to 25 tickers per call
book = requests.post(f"{API}/v1/check/batch", headers=KEY,
json={"tickers": ["NVDA", "ARM", "XOM"]}).json()
# 3. act only when structure agrees with price
for asset in book["results"]:
if asset["schema_score"] < 45: # headwind band
print(asset["ticker"], "— structure against you")Every price feed tells your bot what just happened. MarketSchema tells it whether the macro structure agrees — before it sizes the trade. Batch-score your whole book in one call, stream regime changes over SSE, and pull the /v1/agent/briefing every morning. Automations that never sleep, reading a market that never stops explaining itself.
# live updates over SSE — keepalive verified
curl -N "https://api.marketschema.com/v1/stream?channels=indices,conditions"
Python SDK with a paper-bot framework (guardrails, journal, replay) ships to PyPI shortly — the raw HTTP above works today.