---
title: "Discover cross-exchange arbitrage opportunities"
method: GET
path: "/v0/arbitrage"
tags: ["Arbitrage"]
---

# Discover cross-exchange arbitrage opportunities

`GET /v0/arbitrage`

Bulk cross-exchange arbitrage discovery. Returns matched market pairs from the market_matches table, computing directional spread opportunities across venues.

## Query parameters

- `relations` string
- `minSpread` number
- `category` string
- `limit` integer
- `minConfidence` number
- `includePrices` boolean

## Response `200`

Arbitrage opportunities sorted by spread descending.

- object
  - `data` object[]
    - `marketA` UnifiedMarket
      - `marketId` string, required
      - `eventId` string, nullable
      - `title` string, required
      - `slug` string, required
      - `description` string, nullable
      - `url` string, nullable
      - `image` string, nullable
      - `category` string, nullable
      - `tags` string[], nullable
      - `volume` number, nullable
      - `volume24h` number
      - `liquidity` number
      - `openInterest` number, nullable
      - `resolutionDate` string, date-time, nullable
      - `tickSize` number, nullable
      - `status` string, nullable
      - `contractAddress` string, nullable
      - `outcomes` UnifiedOutcome[], required
        - `outcomeId` string, required
        - `marketId` string, required
        - `label` string, required
        - `price` number, nullable
        - `priceChange24h` number, nullable
        - `bestBid` number, nullable
        - `bestAsk` number, nullable
        - `metadata` object, nullable
    - `marketB` UnifiedMarket
      - `marketId` string, required
      - `eventId` string, nullable
      - `title` string, required
      - `slug` string, required
      - `description` string, nullable
      - `url` string, nullable
      - `image` string, nullable
      - `category` string, nullable
      - `tags` string[], nullable
      - `volume` number, nullable
      - `volume24h` number
      - `liquidity` number
      - `openInterest` number, nullable
      - `resolutionDate` string, date-time, nullable
      - `tickSize` number, nullable
      - `status` string, nullable
      - `contractAddress` string, nullable
      - `outcomes` UnifiedOutcome[], required
        - `outcomeId` string, required
        - `marketId` string, required
        - `label` string, required
        - `price` number, nullable
        - `priceChange24h` number, nullable
        - `bestBid` number, nullable
        - `bestAsk` number, nullable
        - `metadata` object, nullable
    - `spread` number
    - `buyVenue` string
    - `sellVenue` string
    - `buyPrice` number
    - `sellPrice` number
    - `relation` 'identity' | 'subset' | 'superset' | 'overlap' | 'disjoint'
    - `confidence` number
  - `meta` object
    - `count` integer
    - `limit` integer

## Other responses

- `400` — Invalid query parameters.

---

[API](https://skmtc.dev/pmxt-dev/apis/pmxt-hosted-router-api-2.md) · [All operations](https://skmtc.dev/pmxt-dev/apis/pmxt-hosted-router-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pmxt-dev/pmxt-hosted-router-api-2/revisions/d9d03b87d7eb/schema)
