Everything the board knows, programmatic. Live sector ranks, versioned basket rosters, and the full daily rotation history back to July 21, 2026. Built for algos, backtests, and custom dashboards.
Send your key in the x-api-key header on every request. Keys are personal; do not share or embed them client-side.
curl -H "x-api-key: SPK-YOURKEYHERE" \ https://sector-pulse.app/api/v1/sectors
10 requests per minute per key. That covers a full three-endpoint scan every 15 seconds of the trading day. Responses beyond the limit return 429; back off and retry.
The live board. All 30 baskets with session-aware aggregates, three rank bases per sector: rank (session-aware, re-bases at 4pm ET), closeRank (regular-session basis, stable through after-hours), and prevCloseRank (yesterday, for deltas).
GET /api/v1/sectors
{
"asOf": "2026-08-26T15:40:02.113Z",
"basis": "live",
"sectors": [
{
"id": "nuclear-uranium",
"label": "Nuclear & Uranium",
"pct": 2.96,
"median": 2.1,
"breadth": { "up": 7, "down": 1, "total": 8 },
"rank": 1,
"closeRank": 1,
"prevCloseRank": 9,
"green": true,
"session": "regular"
}
]
}Versioned basket membership. Rosters are immutable per version: any membership change bumps the version, so point-in-time joins against history stay honest. Includes the share-class alias map (GOOG resolves to GOOGL, and so on).
GET /api/v1/roster → current roster (version, baskets, aliases) GET /api/v1/roster?version=2 → that exact historical roster, immutable
Daily per-sector history back to 2026-07-21 (July 21 through 30 is close-ranks-only; the response marks its basis honestly). Intraday 5-minute rank snapshots from 2026-08-19.
GET /api/v1/history?date=2026-08-21 → that day's sector table GET /api/v1/history?date=2026-08-21&intraday=1 → plus 5-min intraday rows
The same three endpoints as tools over the Model Context Protocol, Streamable HTTP, at /api/mcp. get_sectors (the live board) works without a key, 10 requests a minute per IP. get_roster and get_history need your key, sent as the same x-api-key header. Usage and rate limits are shared with the REST endpoints.
{
"mcpServers": {
"sector-pulse": {
"url": "https://sector-pulse.app/api/mcp",
"headers": { "x-api-key": "SPK-YOURKEYHERE" }
}
}
}Clients that only speak stdio can bridge with npx -y mcp-remote https://sector-pulse.app/api/mcp --header "x-api-key: SPK-YOURKEYHERE". Machine-readable descriptions: openapi.json and llms.txt.
$39/month, Sector Pulse Pro membership included, 10 founding spots, price locked for as long as you stay. Your key arrives by email within a minute of checkout. Current founding Pro members add the API for $27/month on top of their existing plan.
Claim a founding API spot ($39/mo, Pro included)
Add the API to your founding Pro membership ($27/mo), verified against your Pro key.
Every tier side by side on the pricing page.
Prepaid call packs for developers and agents, API only: $10 for 2,000 calls, $25 for 6,000. One call is one credit on every REST endpoint and MCP tool; credits never expire. You get one email when 10% is left, and calls past zero return 402 with a top-up link until the next pack. Buy a pack on the pricing page (the key arrives by email within a minute) or top up an existing key.
Founding members steer it. First up: multi-day aggregation parameters on the history endpoint. Request anything by replying to any Sector Pulse email or in the founding Discord.
The API serves Sector Pulse's own derived analytics: basket ranks, aggregates, and rotation history computed by us. It is an educational tool, not financial advice, and nothing served here is a recommendation to buy or sell any security. Data may be delayed or incomplete. Keys are for your own applications; reselling or redistributing the feed itself is not permitted. © 2026 Sector Pulse, a product of Apex Infra LLC.
Anything broken or unclear: support@apexinfrallc.com, answered same day.