Trades API

Fetch trade history for markets

Trades API

The Trades API provides methods to fetch historical trade data for prediction markets. Relays requests directly to Kalshi API.

Access

from dflow import DFlowClient
 
client = DFlowClient()
trades_api = client.trades

Methods

get_trades

Fetch trades with optional filtering.

def get_trades(
    ticker: str | None = None,
    min_ts: int | None = None,
    max_ts: int | None = None,
    limit: int | None = None,
    cursor: str | None = None,
) -> TradesResponse

Parameters

ParameterTypeDescription
tickerstr | NoneFilter by market ticker
min_tsint | NoneFilter trades after this Unix timestamp
max_tsint | NoneFilter trades before this Unix timestamp
limitint | NoneMaximum trades to return (1-1000, default 100)
cursorstr | NonePagination cursor (trade ID) to start from

Example

# Get recent trades for a market
response = client.trades.get_trades(
    ticker="BTCD-25DEC0313-T92749.99",
    limit=100,
)
 
for trade in response.trades:
    print(f"{trade.created_time}: {trade.taker_side} {trade.count} @ {trade.yes_price}")
 
# Filter by timestamp range
response = client.trades.get_trades(
    min_ts=1704067200,  # Jan 1, 2024
    max_ts=1704153600,  # Jan 2, 2024
)
 
# Paginate through results
next_page = client.trades.get_trades(cursor=response.cursor)

get_trades_by_mint

Get trades for a market by mint address.

def get_trades_by_mint(
    mint_address: str,
    min_ts: int | None = None,
    max_ts: int | None = None,
    limit: int | None = None,
    cursor: str | None = None,
) -> TradesResponse

Example

import time
 
response = client.trades.get_trades_by_mint("EPjFWdd5...", limit=50)
 
# Filter by timestamp
response = client.trades.get_trades_by_mint(
    "EPjFWdd5...",
    min_ts=int(time.time()) - 86400,  # Last 24 hours
)

Types

Trade

class Trade(BaseModel):
    trade_id: str
    ticker: str
    side: str
    yes_price: float
    no_price: float
    count: int
    taker_side: str
    created_time: str

TradesResponse

class TradesResponse(BaseModel):
    trades: list[Trade]
    cursor: str | None

On this page