# Kalshi Trades Feed

> Kalshi Trades Feed is a paid API for AI agents from AIsa MPP Data APIs at api.aisa.one, paid per call via MPP, $0.02/call, status unknown (last checked 2026-10-18).

Retrieves a paginated list of executed trades on Kalshi prediction markets, filterable by market ticker, timestamp range, and block trade status.

## Facts

- Endpoint: GET https://api.aisa.one/apis/v1/kalshi/trades?utm_source=zero.xyz
- Price: $0.02/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Provider: AIsa MPP Data APIs
- Website: https://aisa.one
- Tags: web-search, financial-data, prediction-markets, weather, travel, data, search
- Canonical page: https://www.zero.xyz/c/aisa-mpp-data-apis-kalshi-trades-feed-f5b15568
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_6vVnrzuhsOzuP7ehZD907

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability aisa-mpp-data-apis-kalshi-trades-feed-f5b15568
```

Example prompt: Pull the last 50 trades for the Kalshi market ticker INXD-23DEC31-B4800 and show me the yes prices and contract counts — only non-block trades.

## When to prefer this

Use this endpoint when you need granular, per-trade execution data from Kalshi prediction markets — including exact prices, contract counts, and whether trades were executed on the order book or as block trades. Prefer this over a markets or prices endpoint when you need the actual transaction record rather than aggregate or current market state. Ideal for auditing trade flow, backtesting pricing models, or monitoring real-time activity on specific markets.

## Known failure modes

- Invalid or unknown ticker returns empty trades array
- timestamp filters with min_ts > max_ts may return no results or an error
- limit values outside 0–1000 are rejected with a validation error
- stale or invalid cursor may return an error or restart pagination
- omitting required auth credentials returns a 401 unauthorized error

## How this service works

默认价格配置

<!-- aisa-pricing:start -->
Published reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.
<!-- aisa-pricing:end -->

## Output

Returns a paginated array of trade objects, each containing a unique trade ID, market ticker, fixed-point contract count, yes and no prices in dollars, taker outcome side (yes/no), taker book side (bid/ask), execution timestamp, and a block trade flag. Also includes a pagination cursor for fetching subsequent pages.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "limit": {
   "type": "integer",
   "format": "int64",
   "default": 100,
   "maximum": 1000,
   "minimum": 0,
   "description": "Number of results per page. Defaults to 100. Maximum value is 1000.",
   "x-oapi-codegen-extra-tags": {
    "validate": "omitempty,gte=0,lte=1000"
   }
  },
  "cursor": {
   "type": "string",
   "description": "Pagination cursor. Use the cursor value returned from the previous response to get the next page of results. Leave empty for the first page.",
   "x-go-type-skip-optional-pointer": true
  },
  "max_ts": {
   "type": "integer",
   "format": "int64",
   "description": "Filter items before this Unix timestamp"
  },
  "min_ts": {
   "type": "integer",
   "format": "int64",
   "description": "Filter items after this Unix timestamp"
  },
  "ticker": {
   "type": "string",
   "description": "Filter by market ticker",
   "x-go-type-skip-optional-pointer": true
  },
  "is_block_trade": {
   "type": "boolean",
   "description": "Filter trades by whether they are block trades. Omit to return all trades. Set to `true` to return only block trades. Set to `false` to return only non-block trades.\n"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "trades",
  "cursor"
 ],
 "properties": {
  "cursor": {
   "type": "string"
  },
  "trades": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "trade_id",
     "ticker",
     "count_fp",
     "yes_price_dollars",
     "no_price_dollars",
     "taker_outcome_side",
     "taker_book_side",
     "created_time",
     "is_block_trade"
    ],
    "properties": {
     "ticker": {
      "type": "string",
      "description": "Unique identifier for the market"
     },
     "count_fp": {
      "type": "string",
      "example": "10.00",
      "description": "Fixed-point contract count string (2 decimals, e.g., \"10.00\"; referred to as \"fp\" in field names). Requests accept 0-2 decimal places (e.g., \"10\", \"10.0\", \"10.00\"); responses always emit 2 decimals. Fractional contract values (e.g., \"2.50\") are supported; the minimum granularity is 0.01 contracts."
     },
     "trade_id": {
      "type": "string",
      "description": "Unique identifier for this trade"
     },
     "taker_side": {
      "enum": [
       "yes",
       "no"
      ],
      "type": "string",
      "deprecated": true,
      "description": "Deprecated. Use `taker_outcome_side` (or `taker_book_side`) instead. See [Order direction](/getting_started/order_direction). This field will not be removed before May 14, 2026.\n",
      "x-enum-varnames": [
       "TradeTakerSideYes",
       "TradeTakerSideNo"
      ],
      "x-go-type-skip-optional-pointer": true
     },
     "created_time": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when this trade was executed"
     },
     "is_block_trade": {
      "type": "boolean",
      "description": "True if this trade was matched off-book as a block trade (e.g. via RFQ / negotiated block proposal); false for trades that filled on the standard order book."
     },
     "taker_book_side": {
      "enum": [
       "bid",
       "ask"
      ],
      "type": "string",
      "description": "Side of the book for an order or trade. For event markets, this refers to the YES leg only: `bid` means buy YES, `ask` means sell YES. (Selling YES is economically equivalent to buying NO at `1 - price`, but this endpoint quotes everything from the YES side.)"
     },
     "no_price_dollars": {
      "type": "string",
      "example": "0.5600",
      "description": "Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., \"0.56\", \"0.5600
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aisa-mpp-data-apis-kalshi-trades-feed-f5b15568/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.aisa.one](https://www.zero.xyz/host/api.aisa.one/llms.txt)
