Skip to main content
GET
/
api
/
accounts
/
{accountId}
/
router
/
quote
Quote
curl --request GET \
  --url https://trade.predexon.com/api/accounts/{accountId}/router/quote \
  --header 'x-api-key: <api-key>'
{
  "predexonId": "px-uvtpjis2k7bj",
  "title": "Atlanta Hawks",
  "outcome": "atl",
  "side": "buy",
  "requestedAmount": "10",
  "requestedSize": null,
  "venues": [
    {
      "venue": "polymarket",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.33",
      "estimatedFillPrice": "0.331200",
      "estimatedFillSize": "18.115000",
      "availableLiquidity": "482.500000",
      "feeBpsAtTop": 35
    },
    {
      "venue": "predict",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.34",
      "estimatedFillPrice": "0.342000",
      "estimatedFillSize": "11.820000",
      "availableLiquidity": "64.000000",
      "feeBpsAtTop": 30
    },
    {
      "venue": "opinion",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.35",
      "estimatedFillPrice": null,
      "estimatedFillSize": null,
      "availableLiquidity": "6.000000",
      "feeBpsAtTop": 20
    }
  ],
  "summary": {
    "estimatedAvgPrice": "0.335070",
    "estimatedTotalSize": "29.935000",
    "fillLikelihood": "high",
    "venueBreakdown": [
      {
        "venue": "polymarket",
        "size": "18.115000",
        "price": "0.331200"
      },
      {
        "venue": "predict",
        "size": "11.820000",
        "price": "0.342000"
      }
    ]
  }
}

Overview

Simulate filling a single logical order across every routed venue that lists the outcome identified by predexonId. The router expands the supplied canonical predexon_id to every routed venue listing for that outcome, walks merged fee-inclusive order books, and returns the projected fill price, per-venue breakdown, and fill likelihood. No order is placed. Quote uses the same routing engine as Place Market Order, so a quote taken immediately before an order is a reliable preview of what the order will do. See the Order Router concept page for an end-to-end walkthrough of how the router decides which venues to route to.

Path Parameters

ParamTypeDescription
accountIdstringTrading account ID. Must belong to the calling API key. See the Trading API accounts docs for how to create and fund one.

Query Parameters

ParamTypeRequiredDescription
predexonIdstringYesCanonical predexon_id for the outcome. The router expands it to every routed venue listing for that outcome.
sidestringYesbuy or sell.
amountnumberRequired on buyUSD/stablecoin notional to spend. Must be finite and > 0. Must not be set on sell.
sizenumberRequired on sellNumber of shares to sell. Must be finite and > 0. Must not be set on buy.

Response Fields

Top level

FieldTypeDescription
predexonIdstringEchoes the request predexonId.
titlestringHuman-readable outcome label.
outcomestringCanonical outcome code (e.g. "atl", "draw").
sidestringEchoes the request side.
requestedAmountstring?Echo of the request amount. Present on buy quotes; null on sell quotes.
requestedSizestring?Echo of the request size. Present on sell quotes; null on buy quotes.
venues[]arrayOne entry per actionable venue — venues the router could currently route to. Venues without a live streaming book are excluded from the array.
summaryobject?Aggregate projected fill. null when no venue could host any portion of the order.

Venue entry

FieldTypeDescription
venuestringpolymarket, predict, opinion, or limitless.
hasPositionbooleanSell quotes only — true when the account already holds a position on this venue that can be sold.
positionSizestring?Size of the existing position on this venue. null when hasPosition is false (or on buy quotes).
bestPricestringTop-of-book price on the relevant side.
estimatedFillPricestring?Projected volume-weighted average fill price on this venue. null when no fill is projected here.
estimatedFillSizestring?Projected shares filled on this venue. null when no fill is projected.
availableLiquiditystringSum of depth on the relevant side, expressed in shares.
feeBpsAtTopnumberEffective venue fee at top of book, in basis points. May be fractional (e.g. 24.6975). Price-aware — the same venue can return different fees at different price levels.

Summary

FieldTypeDescription
estimatedAvgPricestringProjected volume-weighted fill price across all venues.
estimatedTotalSizestringProjected total shares filled across all venues.
fillLikelihoodstringhigh (liquidity > 2× requested), medium (> 1× and ≤ 2×), or low (≤ 1×).
venueBreakdown[]arrayOne entry per venue expected to receive allocation.
venueBreakdown[].venuestring
venueBreakdown[].sizestringProjected shares on this venue.
venueBreakdown[].pricestringProjected price on this venue.

Errors

Every error response includes a machine-readable errorCode alongside the human-readable error string.
StatuserrorCodeWhen
400parse_errorMissing or invalid predexonId, side, amount, or size.
404predexon_not_routableNo routed venue carries the supplied predexonId.
503registry_unavailableRouting registry is temporarily unavailable. Retry with exponential back-off.

Example

GET /api/accounts/acc_8f2e/router/quote?predexonId=px-uvtpjis2k7bj&side=buy&amount=10
{
  "predexonId": "px-uvtpjis2k7bj",
  "title": "Atlanta Hawks",
  "outcome": "atl",
  "side": "buy",
  "requestedAmount": "10",
  "requestedSize": null,
  "venues": [
    {
      "venue": "polymarket",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.33",
      "estimatedFillPrice": "0.331200",
      "estimatedFillSize": "18.115000",
      "availableLiquidity": "482.500000",
      "feeBpsAtTop": 35
    },
    {
      "venue": "predict",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.34",
      "estimatedFillPrice": "0.342000",
      "estimatedFillSize": "11.820000",
      "availableLiquidity": "64.000000",
      "feeBpsAtTop": 30
    },
    {
      "venue": "opinion",
      "hasPosition": false,
      "positionSize": null,
      "bestPrice": "0.35",
      "estimatedFillPrice": null,
      "estimatedFillSize": null,
      "availableLiquidity": "6.000000",
      "feeBpsAtTop": 20
    }
  ],
  "summary": {
    "estimatedAvgPrice": "0.335070",
    "estimatedTotalSize": "29.935000",
    "fillLikelihood": "high",
    "venueBreakdown": [
      { "venue": "polymarket", "size": "18.115000", "price": "0.331200" },
      { "venue": "predict", "size": "11.820000", "price": "0.342000" }
    ]
  }
}
The router ranks venues by effective price — i.e. the quoted price adjusted for each venue’s fee. A venue with a lower nominal bestPrice but a higher feeBpsAtTop can lose to a nominally worse venue with a thinner fee. feeBpsAtTop is price-aware, so different levels of the same book can surface different basis-point values.
venues[] lists only venues the router can actionably route to right now. Venues without a streaming book (infrastructure dropouts) are excluded from the response. The number of entries is therefore the count of routable venues for this outcome, not the size of the cross-venue equivalence set.

Authorizations

x-api-key
string
header
required

Trading key provided by Predexon. The data key used by the Sports Discovery API on api.predexon.com is a separate credential.

Path Parameters

accountId
string
required

Account ID. Must belong to the calling API key.

Query Parameters

predexonId
string
required

Canonical predexon_id for the outcome. The router expands this to every routed venue listing for that canonical outcome.

side
enum<string>
required

Order side.

Available options:
buy,
sell
amount
number<double>

USD/stablecoin notional to spend. Required when side=buy. Must not be set when side=sell.

size
number<double>

Number of shares to sell. Required when side=sell. Must not be set when side=buy.

Response

Quote simulated successfully.

predexonId
string
required

Echoes the request predexonId.

title
string
required

Human-readable outcome label (e.g. "Atlanta Hawks").

outcome
string
required

Canonical outcome code (e.g. "atl", "draw").

side
enum<string>
required
Available options:
buy,
sell
requestedAmount
string | null
required

Echo of the amount query parameter (stringified number). Present on buy quotes; null on sell quotes.

requestedSize
string | null
required

Echo of the size query parameter (stringified number). Present on sell quotes; null on buy quotes.

venues
object[]
required

One entry per actionable venue — venues the router cannot currently route to (no book, or a disconnected feed) are excluded from the array entirely.

summary
object
required

Aggregate projected fill. null when no venue could host any portion of the order.