Developers/Skylit API (Beta)

Getting started for agentic traders

From zero to live REST calls and a connected MCP server in Claude, Claude Code or Cursor in about five minutes.

Beta. The API and MCP server come with paid Skylit memberships. See Plans and credits for what your plan includes.

One Skylit account gives your agent three data sets through one credit balance:

DataWhat it answersREST base URL
HeatseekerWhere are dealer gamma/vanna levels (king node, gatekeepers, walls)?https://api.skylit.ai
FlowseekerWhat options flow, sweeps and dark-pool prints are hitting a ticker?https://api.skylit.ai (or https://flow-api.skylit.ai)
AtlasOHLCV price bars and symbol searchhttps://atlas-api.skylit.ai
MCP serverAll of the above as tools for Claude, Cursor and other MCP clientshttps://mcp.skylit.ai/mcp

1. Sign in and open the Developer page

Sign in at app.skylit.ai and open Developer. Your API account is created the first time you open it (1 credit = $0.001).

API and MCP access comes with a paid Skylit membership:

PlanDataCreditsRequests per minuteKeys
Pro (also Protege, Quant and Lifetime Bootcamp)Every symbol and every API, Tempest and historical replay included100,000 every month120 per key (600 per account across 5 keys)5
Developer ($349/month, API and MCP only)Same as Pro100,000 every month120 per key (600 per account across 5 keys)5
InitiateThe Initiate plan's 63 index and ETF symbols, historical replay included; no Tempest5,000 to start, then pay as you go120 per key (600 per account across 5 keys)5
CommunityFlowseeker only5,000 to start, then pay as you go120 per key (600 per account across 5 keys)5

Community and up can buy credit packs on the Developer page ($50 buys 55,000 credits). Have an invite code? Redeem it on the Developer page (Have an invite code?). Details: Plans and credits.

Plans can change. GET /v1/account (free) and the X-RateLimit-Limit header always show the values that apply to you, so have your agent read them at startup.

2. Pick how your agent connects

Claude, Claude Code and Cursor can sign in with your Skylit account (OAuth). You don't copy a key: the client opens a Skylit consent page, you click Approve, and the connection appears on the Developer page as "Connected app".

Claude (desktop or claude.ai): Settings, then Connectors, then Add custom connector. Name it Skylit, URL https://mcp.skylit.ai/mcp, then click Connect and approve.

Claude Code:

Terminal
claude mcp add --transport http skylit https://mcp.skylit.ai/mcp

Then run /mcp inside Claude Code, pick skylit and choose Authenticate.

Cursor: add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), then click Connect or Login next to the server in Cursor Settings, MCP:

JSON
{
  "mcpServers": {
    "skylit": { "url": "https://mcp.skylit.ai/mcp" }
  }
}

3. Make your first REST calls

Every request sends Authorization: Bearer <key>.

Terminal
# Free: your balance and limits
curl -s https://api.skylit.ai/v1/account -H "Authorization: Bearer $SKYLIT_API_KEY"

# SPY dealer-positioning levels (king node, gatekeepers, walls)
curl -s "https://api.skylit.ai/v1/gex/levels?symbols=SPY" -H "Authorization: Bearer $SKYLIT_API_KEY"

# Latest scored options flow for SPY
curl -s "https://api.skylit.ai/v1/flow/SPY" -H "Authorization: Bearer $SKYLIT_API_KEY"

# SPY 1-minute bars (from/to are Unix seconds)
curl -s "https://atlas-api.skylit.ai/v1/history?symbol=SPY&resolution=1&from=1790602200&to=1790625600" \
  -H "Authorization: Bearer $SKYLIT_API_KEY"
Python
import os, requests

s = requests.Session()
s.headers["Authorization"] = f"Bearer {os.environ['SKYLIT_API_KEY']}"

levels = s.get("https://api.skylit.ai/v1/gex/levels", params={"symbols": "SPY,QQQ"})
levels.raise_for_status()
for sym in levels.json()["data"]["symbols"]:
    king = sym["kingNode"]  # null when no king node is classified
    print(sym["symbol"], "king", king["strike"] if king else None, "spot", sym["spot"])
print("credits left:", levels.headers.get("X-Credits-Remaining"))

It prints something like this (your numbers will differ):

Text
SPY king 761 spot 765.44
QQQ king 735 spot 736.93
credits left: 4998

GET /v1/account answers with your balance and the limits your agent should respect (abridged; values depend on your plan):

JSON
{
  "data": {
    "status": "active",
    "creditsBalance": 4998,
    "balanceUsd": 4.998,
    "limits": {
      "requestsPerMinute": 120,
      "symbolsPerHeatmapCall": 10,
      "symbolsPerStream": 10,
      "streamSymbolsConcurrent": 25,
      "historicalInFlight": 2,
      "activeKeys": 5,
      "streamMaxDurationMinutes": 60
    }
  }
}

Successful responses are {"data": ..., "meta": ...}; errors are {"error": {"code", "message"}}.

4. Try the MCP tools

Ask your agent something like:

Where are SPY's key gamma levels right now, and is today's options flow leaning bullish or bearish?

A good agent calls heat_levels and flow_feed (or underlying_stats), then answers. Useful first tools:

ToolUse it for
account_usageBalance and limits (free). Ask the agent to call it first.
heat_levelsKey dealer levels for several symbols in one call (comma-separated, e.g. SPY,QQQ)
heat_heatmapThe full per-strike gamma/vanna board
flow_feed, sweepsScored trades and multi-exchange sweeps for a ticker

Each tool's description states its credit cost.

See the full tool catalog and example prompts.

5. Watch your credits

  • Every chargeable response carries X-Credits-Remaining; MCP results carry creditsRemaining in meta.
  • Failed calls are free. Any 4xx or 5xx is refunded.
  • Streams (/v1/stream) charge 1 credit per symbol to open, then 1 credit per symbol per minute, including symbols that have no live board yet (outside market hours). The connected event states creditsPerMinute and maxDurationSeconds. A 10-symbol stream left open for an hour costs about 600 credits.
  • The Developer page's Usage tab shows spend by endpoint and by key.
  • Each endpoint's price is on its API Reference page (x-credits in the OpenAPI specs).

6. Stay inside your plan's limits

Your plan sets your request rate, number of keys, symbols per call, historical calls in flight and streams. GET /v1/account (or the account_usage tool) returns the exact values for your account, so have your agent read them at startup instead of hard-coding them.

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix seconds) for the key you used; the limit is shared across all Skylit APIs. When X-RateLimit-Remaining reaches 0 you get 429 rate_limited: wait until X-RateLimit-Reset, then retry. Back off with jitter rather than retrying in a tight loop.

If something goes wrong

You seeMeaningWhat to do
Developer page says "API access not enabled", or 403 API access not enabled for this accountYour account has no paid plan that includes the APIChoose a plan on app.skylit.ai (see Plans and credits), or redeem an invite code on the Developer page (Have an invite code?). Questions: the support chat on app.skylit.ai
401 Authorization field missingNo Authorization headerSend Authorization: Bearer <key>. X-API-Key and ?token= are not read
403 with a keyKey revoked, expired, or account suspendedCheck the key on the Developer page or create a new one
402 insufficient_creditsBalance is 0Buy a credit pack on the Developer page, or wait for your Monthly API Credits to reset on the 1st (ET)
402 daily_cap_reachedA daily credit cap set on your account was reachedWait until midnight ET (Retry-After)
402 monthly_cap_reachedYour account's monthly spend cap was reachedContact support to raise it
403 not_entitled on /v1/vol or a tempest_* toolTempest data isn't in your plan (Initiate, Community and invite codes don't include it)Skip Tempest, or upgrade to Pro or Developer
429 rate_limitedOver your plan's per-minute request limit on this keyWait for X-RateLimit-Reset, then retry
429 or 503 with Retry-AfterToo many concurrent historical calls or streamsWait Retry-After seconds
MCP client shows "needs login" or a 401OAuth sign-in expired or wasn't completedReconnect or re-authenticate the server in your client

Last updated

Was this page helpful?