Skip to main content
GET
/
api
/
v1
/
indices
/
{id}
/
prices
Get index price history
curl --request GET \
  --url https://v2.api.adj.news/api/v1/indices/{id}/prices \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "timestamp": "2023-11-07T05:31:56Z",
      "price": 123,
      "volume": 123,
      "ohlc": {
        "open": 123,
        "high": 123,
        "low": 123,
        "close": 123
      },
      "spread": 123,
      "sources": 123
    }
  ],
  "total": 123
}
Retrieve historical price data for a specific index.

Path Parameters

id
string
required
The unique index identifier (e.g., upfi, upfi_senate_kalshi).

Query Parameters

limit
integer
default:100
Maximum number of data points (1-1000).
start
datetime
Start time (ISO 8601).
end
datetime
End time (ISO 8601).
interval
string
default:"5min"
Time bucket: 1min, 5min, 1hour, 1day.

Response

{
  "data": [
    { "timestamp": "2026-02-08T00:00:00Z", "price": 117.91 },
    { "timestamp": "2026-02-07T00:00:00Z", "price": 115.42 }
  ],
  "total": 2
}
FieldTypeDescription
timestampdatetimeTime of the price point
pricenumberIndex value

UPFI Interpretation

UPFI ValueInterpretation
> 105Strong Republican
100-105Lean Republican
100Toss-up
95-100Lean Democrat
< 95Strong Democrat

Examples

# Daily history
curl "https://v2.api.adj.news/api/v1/indices/upfi/prices?interval=1day&limit=30" \
  -H "Authorization: Bearer YOUR_TOKEN"

# Time range
curl "https://v2.api.adj.news/api/v1/indices/upfi/prices?start=2026-02-01T00:00:00Z&end=2026-02-08T00:00:00Z" \
  -H "Authorization: Bearer YOUR_TOKEN"

Errors

StatusDescription
404Index not found
400Invalid interval

Authorizations

Authorization
string
header
required

Auth0 JWT Bearer token

Path Parameters

id
string
required

Index ID

Query Parameters

limit
integer
default:100
start
string<date-time>
end
string<date-time>
interval
enum<string>
default:5min
Available options:
1min,
5min,
1hour,
1day,
daily

Response

200 - application/json

Price history

data
object[]
total
integer