> ## Documentation Index
> Fetch the complete documentation index at: https://docs.probsights.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Price spreads

> Cross-venue price disagreement for the same outcome.

Cross-venue **price spreads** for paired BTC windows (**Kalshi ↔ Polymarket**).
Returns a JSON **array** sorted by absolute `diff` descending.

Unlike `/arbitrage/current`, spreads compare the **same outcome side** across venues
(e.g. Kalshi YES ask vs Polymarket YES ask). This is **not** risk-free arbitrage.

For each paired window, the API emits up to two rows: one for `YES`, one for `NO`.
`diff` is `side1_price − side2_price` where `side1` is always Kalshi and `side2` is
Polymarket.

## Request

```
https://api.probsights.com/arbitrage/current/difference
```

### Query parameters

<ParamField query="minutes" type="integer" default="10000">
  Snapshot lookback window in minutes (maps to max staleness).
</ParamField>

<ParamField query="interval_code" type="string">
  `5m`, `15m`, `1h`, `24h`, or `1w`.
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Max spread rows returned (1–100).
</ParamField>

## Response

<ResponseField name="side" type="string">
  `YES` or `NO`.
</ResponseField>

<ResponseField name="side1" type="string">
  Always `Kalshi`.
</ResponseField>

<ResponseField name="side2" type="string">
  Always `Polymarket`.
</ResponseField>

<ResponseField name="side1_price" type="number">
  Kalshi ask for the side.
</ResponseField>

<ResponseField name="side2_price" type="number">
  Polymarket ask for the side.
</ResponseField>

<ResponseField name="diff" type="number">
  `side1_price − side2_price`.
</ResponseField>

## Examples

### 15-minute spreads

<CodeGroup>
  ```bash cURL theme={null}
  curl -H "X-API-Key: YOUR_API_KEY" \
    "https://api.probsights.com/arbitrage/current/difference?minutes=10&interval_code=15m&limit=20"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.probsights.com/arbitrage/current/difference",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"minutes": 10, "interval_code": "15m", "limit": 20},
  )
  spreads = response.json()
  ```
</CodeGroup>
