Programmatic access to VolEdge data. Available on Pro and Premium plans.
Pass your API key in the Authorization header:
curl https://voledge.io/api/v1/scanner \ -H "Authorization: Bearer YOUR_API_KEY"
Returns IV rank data for optionable stocks.
| Param | Type | Description |
|---|---|---|
| minIVRank | number | Filter by minimum IV rank (0-100) |
| sector | string | Filter by sector |
| sort | string | Sort field: ivRank, currentIV, volume, change |
| order | string | asc or desc (default: desc) |
| limit | number | Max results (default: 50, max: 100) |
GET /api/v1/scanner?minIVRank=80&sort=ivRank&order=desc&limit=10
Returns unusual options flow and large orders.
| Param | Type | Description |
|---|---|---|
| symbol | string | Filter by ticker symbol |
| type | string | call or put |
| unusual | boolean | Only show unusual activity (true) |
| sentiment | string | bullish, bearish, or neutral |
| limit | number | Max results (default: 50, max: 100) |
Returns upcoming earnings with IV crush analysis.
| Param | Type | Description |
|---|---|---|
| days | number | Earnings within N days (default: 30) |
| symbol | string | Filter by ticker symbol |
{
"data": [
{
"symbol": "GME",
"name": "GameStop",
"currentIV": 145.2,
"ivRank": 92,
"ivPercentile": 95,
"historicalVol": 78.5,
"ivHvSpread": 66.7,
"price": 24.85,
"change": 5.2,
"volume": 485000,
"openInterest": 1250000,
"putCallRatio": 0.65,
"sector": "Consumer Discretionary"
}
],
"meta": { "total": 1, "limit": 50, "offset": 0 }
}{
"data": [
{
"id": "1",
"timestamp": "14:32:15",
"symbol": "NVDA",
"type": "call",
"strike": 900,
"expiry": "Mar 21",
"premium": 2450000,
"volume": 5200,
"openInterest": 12500,
"side": "buy",
"sentiment": "bullish",
"unusual": true
}
],
"meta": { "total": 1, "limit": 50, "offset": 0 }
}{
"data": [
{
"symbol": "NVDA",
"name": "NVIDIA",
"earningsDate": "2026-02-26",
"daysUntil": 4,
"currentIV": 55.8,
"avgPreEarningsIV": 62.5,
"avgPostEarningsIV": 38.2,
"avgIVCrush": 38.9,
"estimatedMove": 8.5,
"historicalMoves": [16.4, -7.6, 24.4, -2.5]
}
],
"meta": { "total": 1 }
}Returns the authenticated user's watchlist with current market data.
{
"items": [
{
"symbol": "NVDA",
"name": "NVIDIA",
"ivRank": 65,
"currentIV": 55.8,
"price": 875.20,
"change": 2.1,
"alertThreshold": 80
}
]
}Adds a symbol to the authenticated user's watchlist.
| Field | Type | Description |
|---|---|---|
| symbol | string | Ticker symbol (required) |
| alertThreshold | number | IV rank alert threshold (default: 80) |
// Request
POST /api/v1/watchlist
{ "symbol": "AAPL", "alertThreshold": 75 }
// Response (201)
{
"item": {
"symbol": "AAPL",
"name": "Apple",
"ivRank": 35,
"currentIV": 22.5,
"price": 192.50,
"change": -0.3,
"alertThreshold": 75
}
}Removes a symbol from the authenticated user's watchlist.
| Param | Type | Description |
|---|---|---|
| symbol | string | Ticker symbol to remove (required) |
DELETE /api/v1/watchlist?symbol=AAPL
// Response (200)
{ "success": true }All endpoints return errors in a consistent format.
{ "error": "Description of the error" }| Code | Meaning | Example |
|---|---|---|
| 400 | Bad Request | Missing required field |
| 401 | Unauthorized | Invalid or missing API key |
| 403 | Forbidden | Plan limit reached (e.g. max watchlist items) |
| 409 | Conflict | Symbol already in watchlist |
| 429 | Too Many Requests | API call limit exceeded |
| 500 | Internal Server Error | Unexpected server error |
| Plan | Rate Limit |
|---|---|
| Free | 100 requests/min |
| Pro | 1,000 requests/min |
| Premium | 5,000 requests/min |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.