---
title: "Current cross-venue spreads"
method: GET
path: "/api/v1/spreads"
tags: ["Spreads"]
---

# Current cross-venue spreads

`GET /api/v1/spreads`

## Request

- Base URL: `https://arbitron.app`
- URL: `https://arbitron.app/api/v1/spreads`
- Auth: HTTP bearer

The spread between two venues' perpetuals on the same coin right now, one row per venue pair and symbol, from the engine's last print (seconds old). `spread_pct` is the better of the two entry directions and `direction` says which; both are given, with the bid and ask on each leg.

On the Demo plan the print arrives 15 minutes late, and the five widest spreads of every venue (on either leg) are withheld whatever the filter. `meta.withheld` is the number withheld from the whole snapshot, the same whatever the filter, and the cursor stops after 100 rows.

For how often a spread paid over a window, use `/spreads/backtest`.

## Query parameters

- `coin` string
- `exchange` string
- `exchange_match` string
- `exclude_exchange` string
- `min_spread_pct` number, double
- `max_spread_pct` number, double
- `direction` string
- `min_volume_usdt` number, double
- `min_strength` integer
- `max_age_seconds` integer
- `sort` string
- `limit` integer
- `cursor` string
- `fields` string

## Response `200`

OK

- ApiEnvelopeOfIReadOnlyListOfCurrentSpreadItem
  - `data` CurrentSpreadItem[], nullable, required
    - `symbol` string, required
    - `coin` string, required
    - `exchange_a` string, required
    - `exchange_b` string, required
    - `spread_pct` number, double, required
    - `direction` string, required
    - `long_a_short_b_pct` number, double, required
    - `short_a_long_b_pct` number, double, required
    - `bid_a` number, double, required
    - `ask_a` number, double, required
    - `bid_b` number, double, required
    - `ask_b` number, double, required
    - `volume_a_usdt` number, double, required
    - `volume_b_usdt` number, double, required
    - `funding_rate_a_pct` number, double, nullable, required
    - `funding_rate_b_pct` number, double, nullable, required
    - `funding_interval_hours_a` integer, nullable, required
    - `funding_interval_hours_b` integer, nullable, required
    - `next_funding_at_a` string, date-time, nullable, required
    - `next_funding_at_b` string, date-time, nullable, required
    - `strength` integer, required
    - `updated_at` string, date-time, required
  - `meta` ApiMeta, required
    - `as_of` string, date-time, required
    - `delayed_seconds` integer, required
    - `source` string, required
    - `url` string, required
    - `count` integer, nullable
    - `total` integer, nullable
    - `next_cursor` string, nullable
    - `withheld` integer, nullable

## Other responses

- `400`: Bad Request

---

[API](https://skmtc.dev/arbitron/apis/arbitron-api.md) · [All operations](https://skmtc.dev/arbitron/apis/arbitron-api/llms.txt) · [OpenAPI document](https://skmtc.dev/arbitron/apis/arbitron-api/revisions/dd08806fd48e?raw)
