Market intelligence for terminal-native agents.
Mountainhead is a market intelligence layer over public movement events, publisher feeds, social chatter, owner/ticker metadata, official disclosures, lobbying, and AI/MCP explanations. We do the joining, ranking, citing, and follow-up question generation so your terminal, Polymarket, Kalshi, equity, newsroom, or agent workflow can move from raw evidence to the questions that matter.
Free includes 50 API credits / month. No credit card.
Connect an agent via MCP
No key to paste — run this in Claude Code and approve once in your browser. Using the Claude app? Add to Claude copies the server URL and opens Customize → Connectors, where you paste it into Add custom connector.
claude mcp add --transport http mountainhead https://www.mountainhead.ai/api/mcpBase URL https://www.mountainhead.ai · Auth Bearer mh_live_… · JSON · UTF-8
01
Watch a market
TSLA, OpenAI, election odds, CEO succession, regulatory events.
02
Catch the signal
Congress trade, insider filing, lobbying spend, publisher hit, community thread, movement event.
03
Route the action
Update the terminal, alert a trader, refresh a Kalshi/Polymarket model, ask an agent.
Quickstart
From sign-up to first signal in three steps.
No SDK required. Curl works.
- 1
Create an API key
Every signed-in account starts with 50 API credits / month on the Free plan — no credit card required. Click below to sign up (or sign in) and the Account page will mint your first
mh_live_key automatically. Keys are shown exactly once, so store yours as an environment variable. - 2
Verify it works
GET /api/v1/meechoes your plan, scopes, and remaining quota. Any valid key can call it — perfect for health checks.curl https://www.mountainhead.ai/api/v1/me \ -H "Authorization: Bearer $MOUNTAINHEAD_API_KEY" - 3
Pull your first market feed
Filter by owner, ticker, signal kind, severity, or time. For equities desks,
ticker=TSLAgives you Elon/Tesla-linked news and movement signals in one feed. Follownext_cursorto paginate.curl "https://www.mountainhead.ai/api/v1/signals?ticker=TSLA&limit=5" \ -H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"
Authentication
Bearer keys with scoped permissions.
One header. No signing. No rotating tokens.
Every request needs an Authorization: Bearer mh_live_… header. Keys belong to a single user and inherit that user's plan and scopes.
- Provision: Account → API keys. Free includes 50 credits / month; Pro and Intel include more and unlock metered overage.
- Storage: the plaintext key is shown exactly once. We only store a hash.
- Rotation:mint a new key, deploy, then revoke the old one. There's no downtime — both work in parallel.
- Never ship in client code. Keys bill against your account. Always call the API server-side.
Scopes
Calls without the right scope return 403 forbidden_scope.
read:signalsList and read research signals.read:eventsSanitized flight events feed.read:ownersPublic owner directory and holdings.read:newsNormalized publisher feed.read:marketMarket snapshots, company terminal, macro data.read:filingsSEC filings, insider trades, congress trades, official profiles.stream:eventsSSE live feed (Intel only).
Use cases
Market workflows, not disconnected feeds.
Use Mountainhead like a terminal-grade signal layer: owner keys, tickers, official activity, source evidence, severity, and stable cursors.
The API gives agents a curated knowledge list.
Your app can pull the cited signal list directly, or hand it to Ask AI / MCP to generate explanations, follow-up questions, and routing logic for a trader, reporter, or research agent.
Suggested questions
- What changed for this owner in the last 24 hours?
- Which items are news, social chatter, or flight movement?
- What should a Polymarket / Kalshi desk check next?
- Which signals are strong enough to wake up an analyst?
Possible explanations
- A publisher hit is strong when it lines up with a tracked owner, ticker, and fresh movement context.
- A social thread matters when the source, score, and confidence show the narrative is moving before official filings.
- A landing becomes useful when it can be checked against court dates, board calendars, product events, or deal activity.
Polymarket / Kalshi / equities
news + chatter + last public location · same owner_key
A market desk gets the brief, not the homework.
A prediction-market desk can watch markets like “Musk at Tesla,” “OpenAI governance,” or TSLA volatility by joining owner/ticker signals to its own watchlist. One call returns the relevant publisher hits, social threads, landing context, scores, and follow-up prompts an analyst or agent can act on.
Request
curl "https://www.mountainhead.ai/api/v1/signals?owner_key=elon-musk&limit=5" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"Response (real shape)
{
"signals": [
{
"id": "news:https://www.reuters.com/business/elon-musks-trial-against-sam-altman...",
"kind": "general_news",
"title": "Elon Musk's trial against Sam Altman to reveal ongoing power struggle for OpenAI",
"thesis": "Publisher coverage tied to Elon Musk and OpenAI governance risk.",
"owners": [{ "owner_key": "elon-musk", "owner_name": "Elon Musk", "ticker": "TSLA" }],
"occurred_at": "2026-04-27T15:59:04+00:00",
"score": 0.72,
"confidence": "high",
"severity": null,
"evidence": [
{
"kind": "news",
"label": "Reuters",
"url": "https://www.reuters.com/business/elon-musks-trial-against-sam-altman...",
"source_type": "news",
"publisher": "Reuters"
}
]
},
{
"id": "landing:N272BG:2026-04-27T14:58:56.384+00:00",
"kind": "landing",
"title": "Elon Musk landed near San Jose",
"thesis": "Recent arrival worth checking against Tesla, xAI, OpenAI, court, and board calendars.",
"owners": [{ "owner_key": "elon-musk", "owner_name": "Elon Musk", "ticker": "TSLA" }],
"occurred_at": "2026-04-27T14:58:56.384+00:00",
"detected_at": "2026-04-27T14:59:01.742Z",
"score": 0.349,
"confidence": "medium",
"severity": 1,
"evidence": [
{
"kind": "flight_event",
"label": "Landing · KSJC",
"occurred_at": "2026-04-27T14:58:56.384+00:00",
"source_type": "flight_event"
}
],
"watch_next": "Ask AI: what TSLA / OpenAI / xAI catalysts are near San Jose this week?"
},
{
"id": "reddit:https://www.reddit.com/r/teslainvestorsclub/comments/...",
"kind": "insider_chatter",
"title": "Tesla investor thread turns to robotaxi timing",
"thesis": "High-engagement community thread tied to the same owner/ticker watchlist.",
"owners": [{ "owner_key": "elon-musk", "owner_name": "Elon Musk", "ticker": "TSLA" }],
"occurred_at": "2026-04-27T14:21:00+00:00",
"score": 0.681,
"confidence": "high",
"severity": null,
"evidence": [
{
"kind": "reddit",
"label": "r/teslainvestorsclub",
"source_type": "reddit",
"publisher": "r/teslainvestorsclub"
}
],
"watch_next": "Compare thread direction with publisher coverage before alerting the desk."
},
{
"id": "news:https://www.investors.com/news/tesla-stock-elon-musk-robotaxi/",
"kind": "general_news",
"title": "Elon Musk Registers 304 Million Tesla Shares. Stock Sinks.",
"owners": [{ "owner_key": "elon-musk", "ticker": "TSLA" }],
"occurred_at": "2026-04-27T13:48:00+00:00",
"confidence": "medium",
"evidence": [
{
"kind": "news",
"label": "Investor's Business Daily",
"source_type": "news",
"publisher": "Investor's Business Daily"
}
]
},
{
"id": "news:https://www.barrons.com/articles/tesla-stock-robotaxi-elon-musk...",
"kind": "general_news",
"title": "Tesla's Robotaxi Timeline Is Back in Focus",
"owners": [{ "owner_key": "elon-musk", "ticker": "TSLA" }],
"occurred_at": "2026-04-27T12:10:00+00:00",
"confidence": "medium",
"evidence": [
{
"kind": "news",
"label": "Barron's",
"source_type": "news",
"publisher": "Barron's"
}
],
"watch_next": "Ask AI to summarize what changed across the last five TSLA-linked signals."
}
],
"next_cursor": "MjAyNi0wNC0yN1QxMzo0ODowMCswMDowMHw..."
}owners[].tickerTSLA is already joined to the owner, so market-routing does not need a second database.kindOne ordered feed carries news, chatter, landings, co-locations, and key dates.evidence[].publisherReuters / IBD / Barron's-style source labels are ready for dashboards and audit logs.
Community chatter markets
insider_chatter · source_type=reddit · confidence=high
Turn a pile of threads into a cited narrative shift.
Prediction markets move on narratives before they move on filings. Instead of one isolated post, Mountainhead returns a ranked list of cited chatter signals with confidence, owner mapping, and an analyst-friendly `watch_next`.
Request
curl "https://www.mountainhead.ai/api/v1/signals?kind=insider_chatter&limit=3" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"Response (real shape)
{
"signals": [
{
"id": "reddit:https://www.reddit.com/r/politics/comments/1swnbyg/...",
"kind": "insider_chatter",
"title": "Trump Erupts in '60 Minutes' Interview",
"thesis": "Curated community thread connected to Donald Trump in r/politics.",
"owners": [
{
"owner_key": "donald-trump",
"owner_name": "Donald Trump",
"ticker": null,
"market_label": null
}
],
"occurred_at": "2026-04-26T23:42:55+00:00",
"score": 0.722,
"confidence": "high",
"severity": null,
"evidence": [
{
"kind": "reddit",
"label": "r/politics",
"url": "https://www.reddit.com/r/politics/comments/1swnbyg/...",
"occurred_at": "2026-04-26T23:42:55+00:00",
"source_type": "reddit",
"publisher": "r/politics"
}
],
"watch_next": "Skim the top comments before assuming the rumour is widely confirmed."
},
{
"id": "reddit:https://www.reddit.com/r/teslainvestorsclub/comments/...",
"kind": "insider_chatter",
"title": "Tesla holders debate whether robotaxi timelines slipped again",
"thesis": "Community narrative linked to Elon Musk and TSLA volatility.",
"owners": [
{
"owner_key": "elon-musk",
"owner_name": "Elon Musk",
"ticker": "TSLA",
"market_label": "Tesla"
}
],
"occurred_at": "2026-04-26T22:15:12+00:00",
"score": 0.681,
"confidence": "high",
"severity": null,
"evidence": [
{
"kind": "reddit",
"label": "r/teslainvestorsclub",
"source_type": "reddit",
"publisher": "r/teslainvestorsclub"
}
],
"watch_next": "Ask AI to compare this thread against today's TSLA publisher coverage."
},
{
"id": "reddit:https://www.reddit.com/r/artificial/comments/...",
"kind": "insider_chatter",
"title": "OpenAI lawsuit thread resurfaces questions about governance",
"thesis": "AI community chatter connected to an active owner/legal catalyst.",
"owners": [
{
"owner_key": "elon-musk",
"owner_name": "Elon Musk",
"ticker": "TSLA",
"market_label": "Tesla"
}
],
"occurred_at": "2026-04-26T20:03:44+00:00",
"score": 0.604,
"confidence": "medium",
"severity": null,
"evidence": [
{
"kind": "reddit",
"label": "r/artificial",
"source_type": "reddit",
"publisher": "r/artificial"
}
],
"watch_next": "Route only if it lines up with fresh publisher coverage or flight context."
}
]
}evidence[].source_typeClosed enum: news, reddit, flight_event, co_location, key_date. Build deterministic market-routing rules.score + confidenceUse score for ranking and confidence for whether to alert a human, agent, or strategy.watch_nextTells an analyst or agent what to check before assuming the narrative is confirmed.
Public movement event feed
event_type · airport_icao · payload_public · no raw lat/lon
Last public location without leaking raw track data.
If you need the aviation primitive underneath a signal, use events. Public responses expose lifecycle state, owner key, timestamp, airport/location context when known, and curated payload fields. Raw lat/lon and full position tracks stay internal.
Request
curl "https://www.mountainhead.ai/api/v1/events?owner_key=elon-musk&limit=3" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"Response (real shape)
{
"events": [
{
"id": "15",
"owner_key": "elon-musk",
"event_type": "landing",
"severity": null,
"score": null,
"occurred_at": "2026-04-27T14:58:56.384+00:00",
"airport_icao": "KSJC",
"payload_public": {
"airport": "San Jose Mineta International",
"icao": "KSJC",
"duration_minutes": 47
}
},
{
"id": "9",
"owner_key": "elon-musk",
"event_type": "squawk_change",
"severity": null,
"score": null,
"occurred_at": "2026-04-23T05:29:40.400+00:00",
"airport_icao": "KPAE",
"payload_public": {
"airport": "Paine Field",
"icao": "KPAE"
}
},
{
"id": "8",
"owner_key": "elon-musk",
"event_type": "landing",
"severity": null,
"score": null,
"occurred_at": "2026-04-23T05:29:40.400+00:00",
"airport_icao": "KPAE",
"payload_public": {
"airport": "Paine Field",
"icao": "KPAE",
"duration_minutes": 91
}
}
],
"next_cursor": "MjAyNi0wNC0yM1QwNToyOTo0MC40KzAwOjAwfDg",
"limit": 3
}event_typeAviation lifecycle events you can alert on without parsing ADS-B payloads.airport_icaoLast public location is exposed as an airport/location label, not raw coordinates.events/streamIntel customers can subscribe with SSE instead of polling.
Politician + executive-branch trading
STOCK Act PTRs · OGE 278 + 278-T · activity_type=transaction|holding
One feed for Congress AND the White House.
STOCK Act covers Congress only — the President, Vice President, and cabinet file OGE Form 278 (annual holdings) and Form 278-T (periodic transaction reports, ≤30 days after a reportable trade). `market/official-activity` unions both so one call answers 'what is the White House trading?' and 'what does Trump own?' Set `chamber=executive` for exec-only; pair with `activity_type=transaction` for buy/sell events or `activity_type=holding` for the annual Schedule A snapshot.
Request
# Real exec-branch transactions (RFK Jr 278-T, Vance VFIFX sale, Hegseth Bitcoin sale)
curl "https://www.mountainhead.ai/api/v1/market/official-activity?country=US&chamber=executive&activity_type=transaction&limit=10" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"
# Trump's full disclosed portfolio (Schedule A holdings, ~3,400 rows)
curl "https://www.mountainhead.ai/api/v1/market/official-activity?member=Trump&chamber=executive&activity_type=holding&limit=25" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"
# Single-call official dossier with both trades and holdings
curl "https://www.mountainhead.ai/api/v1/officials?slug=donald-trump" \
-H "Authorization: Bearer $MOUNTAINHEAD_API_KEY"Response (real shape)
{
"activities": [
{
"country": "US",
"chamber": "executive",
"official_name": "Robert F. Kennedy Jr.",
"official_slug": "robert-f-kennedy-jr",
"party": "R",
"activity_date": "2025-04-04",
"disclosure_date": "2025-05-09",
"activity_type": "transaction",
"transaction_type": "sale",
"symbol": "CRSP",
"asset_name": "CRISPR Therapeutics AG Common Shares (CRSP)",
"amount_min": 1001,
"amount_max": 15000,
"source_url": "https://extapps2.oge.gov/201/Presiden.nsf/.../Robert-F-Kennedy-Jr-05.09.2025-278T.pdf"
},
{
"country": "US",
"chamber": "executive",
"official_name": "JD Vance",
"activity_date": "2024-08-29",
"activity_type": "transaction",
"transaction_type": "sale",
"symbol": null,
"asset_name": "Vanguard Target Retirement 2050 Fund (VFIFX)",
"amount_min": 100001,
"amount_max": 250000
},
{
"country": "US",
"chamber": "executive",
"official_name": "Donald Trump",
"activity_date": "2025-12-31",
"activity_type": "holding",
"transaction_type": null,
"symbol": "JPM",
"asset_name": "JPMORGAN CHASE & CO COM",
"amount_min": 500001,
"amount_max": 1000000
}
],
"count": 25,
"next_cursor": "MjAyNS0xMi0zMXxKUE0"
}activity_type`transaction` = real buy/sell/exchange (STOCK Act PTRs + OGE 278-T). `holding` = Schedule A standing positions disclosed once a year on the annual 278.chamber=executiveUnlocks Trump / Vance / Bessent / Rubio / Hegseth / Lutnick / RFK Jr. (and any cabinet member added to officials). STOCK Act doesn't cover them.search_signals (kind=congress_trade)Cabinet 278-T trades on a tracked ticker surface here too — same shape as STOCK Act signals, slightly higher base score.
Endpoints
The full surface.
Every endpoint returns JSON. List endpoints share the same cursor pagination shape.
- GETany key
/api/v1/meVerify a key. Returns plan, scopes, current rate-limit window, and month-to-date usage.
- GETread:signals
/api/v1/signalsPrimary product. Ranked, cited research signals filtered by owner, ticker, kind, severity, and time.
- GETread:signals
/api/v1/signals/{id}Fetch a single signal by stable id.
- GETread:events
/api/v1/eventsReverse-chronological feed of sanitized flight events. Coordinates are not exposed.
- GETstream:events
/api/v1/events/streamServer-Sent Events feed of sanitized flight events. Intel plan only.
- GETread:owners
/api/v1/ownersPublic owner directory. Suppressed owners return as `{ owner_key, hidden: true }`.
- GETread:news
/api/v1/newsNormalized publisher feed. Closed `source_type` enum and free-text publisher label.
- GETread:market
/api/v1/market/snapshotBatched quote/price/delta/volume snapshot for up to 10 ticker symbols.
- GETread:market
/api/v1/market/companyCompany overview: fundamentals, recent earnings, SEC filings, news, and tracked owners.
- GETread:market
/api/v1/market/macroCurated FRED + OECD macro bundle: rates, inflation, labor, growth, money, housing, credit.
- GETread:filings
/api/v1/market/filingsList recent SEC EDGAR submissions for a ticker or CIK.
- GETread:filings
/api/v1/market/filing-contentFetch and return the plain-text content of an SEC filing document.
- GETread:news
/api/v1/insider-chatterPre-indexed insider sources for a tracked owner.
- GETread:filings
/api/v1/market/insider-tradesSEC Form 4 insider trading transactions by officers, directors, and 10%+ owners.
- GETread:filings
/api/v1/market/institutional13F-HR quarterly institutional holdings from major fund managers.
- GETread:filings
/api/v1/market/congressCongressional stock trading disclosures from House/Senate STOCK Act filings. For US executive branch (President / VP / cabinet — OGE Form 278/278-T) use `/api/v1/market/official-activity?country=US&chamber=executive`.
- GETread:filings
/api/v1/market/congress/summaryCongressional trading leaderboard: most active traders, most-traded tickers, bipartisan convergence, disclosure lag.
- GETread:filings
/api/v1/officialsGovernment official profiles with bio, committees, recent trades + holdings, and 90-day trading stats. Covers US Congress (STOCK Act), US executive branch (`chamber=executive` — Trump, Vance, Bessent, Rubio, Hegseth, Lutnick, RFK Jr. via OGE 278/278-T), UK Parliament, Canadian Commons, EU Parliament.
- GETread:filings
/api/v1/market/official-activityUnified disclosures across US (STOCK Act House/Senate + OGE Form 278 annual + OGE 278-T periodic transaction reports for executive branch), UK (registered interests), Canada (declarations), EU (MEP declarations). Use `chamber=executive` for White-House-only; `activity_type=holding` to see standing positions; `activity_type=transaction` to limit to real buy/sell events.
- GETread:filings
/api/v1/market/lobbyingLobbying disclosure filings. Registrant, client, amount, issue codes, lobbyists, government entities.
- GETany key
/api/v1/preferencesUser region preferences (GET to read, PUT to update). Controls default country filtering. Regions: US, GB, CA, EU.
Need request/response shapes and a live “Try it” UI? Open the interactive reference →
Pagination
Stable cursors. No skipped rows.
List endpoints return an opaque next_cursor in the body and a standard Link header. Cursors encode (timestamp, id) so duplicate timestamps never drop a row.
Loop until next_cursor is null. Default page size is 50, max 200.
let cursor: string | undefined;
do {
const page = await client.public.listSignals({
limit: 100,
cursor,
});
for (const s of page.data) handle(s);
cursor = page.nextCursor ?? undefined;
} while (cursor);Rate limits & errors
Per-key token buckets. Fail-closed on outages.
Free
30 req / min
0 included
Pro
120 req / min
1,000 included
Intel
600 req / min
10,000 included
Every response carries X-RateLimit-Limit and X-RateLimit-Remaining. When you exhaust the bucket you get 429 with Retry-After.
Important: if our rate-limit infrastructure is unavailable we fail closed with 503 and Retry-After: 1. Well-behaved clients honor it; broken clients get throttled.
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | Bad query |
| 401 | unauthorized | Missing or bad key |
| 403 | forbidden_scope | Key lacks scope |
| 404 | not_found | Resource missing or hidden |
| 429 | rate_limited | Bucket empty |
| 503 | rate_limit_unavailable | Limiter offline |
Compliance
Two enforcement points. Audit them yourself.
Delayed tails
Aircraft listed in the public delayed_tails registry are returned with the configured delay. Real-time access requires a separate licensing agreement.
Hidden owners
Owners flagged is_public=false are redacted to { owner_key, hidden: true }. Their signals and events are filtered out of every list endpoint.
Read the full compliance overview for takedown procedure and source attribution.
SDKs & MCP
Pick your tool.
TypeScript SDK
Generated from the live OpenAPI document. Same package name as the project so types track the v1 surface as it evolves.
npm install mountainheadMCP for AI agents
Hosted Streamable HTTP MCP server at /api/mcp. Point Claude Code, Claude Desktop, Cursor, Gemini CLI, Antigravity, or any MCP client at one endpoint and get 22 tools. Most clients need no API key — OAuth 2.1 PKCE means they discover everything from the URL and you approve once in a browser.
Ready to build?
Mint a key in your account and start hitting /api/v1/me in a minute.
Need higher limits, custom contracts, or enterprise support? Talk to us.