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.
One Skylit account gives your agent three data sets through one credit balance:
| Data | What it answers | REST base URL |
|---|---|---|
| Heatseeker | Where are dealer gamma/vanna levels (king node, gatekeepers, walls)? | https://api.skylit.ai |
| Flowseeker | What options flow, sweeps and dark-pool prints are hitting a ticker? | https://api.skylit.ai (or https://flow-api.skylit.ai) |
| Atlas | OHLCV price bars and symbol search | https://atlas-api.skylit.ai |
| MCP server | All of the above as tools for Claude, Cursor and other MCP clients | https://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).
How you get access depends on your membership:
| Membership | API access | Starting credits | Requests per minute | Keys | Streams | Tempest (/v1/vol) |
|---|---|---|---|---|---|---|
| Pro, Protégé, Quant | Included, nothing to do | 5,000, plus 25,000 included each month | 120 per key | 5 | 2 open, up to 10 symbols each | Included |
| Invite code (any membership) | Redeem the code on the Developer page | 5,000 | 60 per key | 2 | 1 open, up to 5 symbols | Not included |
| Other memberships | Not included: upgrade to Pro, or use an invite code |
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:
claude mcp add --transport http skylit https://mcp.skylit.ai/mcpThen 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:
{
"mcpServers": {
"skylit": { "url": "https://mcp.skylit.ai/mcp" }
}
}On the Developer page, open API keys and click Create key. The full key is shown once: copy it into your secret store or environment.
export SKYLIT_API_KEY="paste-your-key-here"The same key works for REST and for MCP clients that let you set a header:
# Claude Code, headless (no browser sign-in)
claude mcp add --transport http skylit https://mcp.skylit.ai/mcp \
--header "Authorization: Bearer $SKYLIT_API_KEY"{
"mcpServers": {
"skylit": {
"url": "https://mcp.skylit.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Your plan sets how many active keys you can have. Use one key per bot so you can rotate or revoke one without stopping the others.
3. Make your first REST calls
Every request sends Authorization: Bearer <key>.
# 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"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):
SPY king 761 spot 765.44
QQQ king 735 spot 736.93
credits left: 4998GET /v1/account answers with your balance and the limits your agent should
respect (abridged; values depend on your plan):
{
"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:
| Tool | Use it for |
|---|---|
account_usage | Balance and limits (free). Ask the agent to call it first. |
heat_levels | Key dealer levels for several symbols in one call (comma-separated, e.g. SPY,QQQ) |
heat_heatmap | The full per-strike gamma/vanna board |
flow_feed, sweeps | Scored 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 carrycreditsRemaininginmeta. - Failed calls are free. Any
4xxor5xxis 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). Theconnectedevent statescreditsPerMinuteandmaxDurationSeconds. 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-creditsin 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 see | Meaning | What to do |
|---|---|---|
Developer page says "API access not enabled", or 403 API access not enabled for this account | Your membership doesn't include the API | Redeem an invite code on the Developer page, or upgrade to Pro, Protégé or Quant. Questions: the support chat on app.skylit.ai |
401 Authorization field missing | No Authorization header | Send Authorization: Bearer <key>. X-API-Key and ?token= are not read |
403 with a key | Key revoked, expired, or account suspended | Check the key on the Developer page or create a new one |
402 insufficient_credits | Balance is 0 | Add credits, or contact support from the chat on app.skylit.ai |
402 monthly_cap_reached | Your account's monthly spend cap was reached | Contact support to raise it |
403 not_entitled on /v1/vol or a tempest_* tool | Tempest data isn't in your plan (it comes with Pro, Protégé and Quant) | Skip Tempest, or upgrade |
429 rate_limited | Over your plan's per-minute request limit on this key | Wait for X-RateLimit-Reset, then retry |
429 or 503 with Retry-After | Too many concurrent historical calls or streams | Wait Retry-After seconds |
MCP client shows "needs login" or a 401 | OAuth sign-in expired or wasn't completed | Reconnect or re-authenticate the server in your client |
Last updated