Skip to main content
GET
/
api
/
accounts
/
{accountId}
/
router
/
orders
/
{routerOrderId}
Get Router Order
curl --request GET \
  --url https://trade.predexon.com/api/accounts/{accountId}/router/orders/{routerOrderId} \
  --header 'x-api-key: <api-key>'
{
  "routerOrderId": "<string>",
  "predexonId": "<string>",
  "title": "<string>",
  "outcome": "<string>",
  "requestedAmount": "<string>",
  "requestedSize": "<string>",
  "limitPrice": "<string>",
  "createdAt": "<string>",
  "fills": [
    {
      "venue": "<string>",
      "orderId": "<string>",
      "size": "<string>",
      "price": "<string>",
      "amount": "<string>",
      "error": "<string>"
    }
  ],
  "summary": {
    "totalSize": "<string>",
    "totalAmount": "<string>",
    "avgPrice": "<string>",
    "venuesUsed": 123,
    "venuesFailed": 123
  },
  "decisionSnapshot": {
    "capturedAt": 123,
    "venues": [
      {
        "venue": "<string>",
        "bids": [
          {
            "price": 123,
            "size": 123
          }
        ],
        "asks": [
          {
            "price": 123,
            "size": 123
          }
        ],
        "bookUpdatedAt": 123,
        "stale": true
      }
    ]
  },
  "_routing": {
    "considered": [
      {
        "venue": "<string>",
        "avgPrice": "<string>",
        "topLevelPrice": "<string>",
        "droppedReason": "<string>",
        "feeBpsAtTop": 123
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.predexon.com/llms.txt

Use this file to discover all available pages before exploring further.

Open or partial legs are re-read from their venues on each call so the response reflects the latest fill state. The roll-up status is recomputed from the leg statuses. The response is the standard router-order envelope plus decisionSnapshot — the order-book snapshot at decision time, useful for “why did the router pick this split?” forensics. Add ?explain=true to also receive a _routing.considered[] array, derived from the persisted snapshot. The shape matches the POST response, but avgPrice and feeBpsAtTop are null on this path — neither is recoverable from a book snapshot alone. For deeper analysis, read decisionSnapshot.venues[] directly.
Market orders are not retrievable here — their result is returned inline on POST /router/orders and not persisted. This endpoint serves limit orders only.

Authorizations

x-api-key
string
header
required

Path Parameters

accountId
string
required
routerOrderId
string
required

Query Parameters

explain
boolean

Set to true to receive a _routing.considered[] audit array derived from the persisted decisionSnapshot. avgPrice and feeBpsAtTop are null on this path — neither is recoverable from a book snapshot alone. For richer audit, read decisionSnapshot.venues[] directly (always present on limit orders).

Response

Router order

Partner-facing router-order envelope. Same shape across POST /router/orders (market + limit), GET /router/orders (list rows), and GET /router/orders/{routerOrderId}. POST adds errorCode on 502. GET detail adds decisionSnapshot on limit orders.

routerOrderId
string

Stable handle for GET/cancel.

predexonId
string

Canonical outcome identifier.

title
string | null

Display title for the outcome (the market question).

outcome
string | null

Display label for the side bet on (e.g., Yes, Lakers).

side
enum<string>
Available options:
buy,
sell
type
enum<string>
Available options:
market,
limit
status
enum<string>

Roll-up across legs. partial whenever any leg filled or partial-filled while at least one leg is still open or another mix produced movement.

Available options:
open,
partial,
filled,
cancelled,
failed
errorCode
enum<string>

Present only on 400 from POST /router/orders when every dispatched leg failed; absent on success and GET responses. Per-leg failure reasons are on fills[].error.

Available options:
all_venues_failed
requestedAmount
string | null

USD notional the partner sent. Populated on market buys; null otherwise.

requestedSize
string | null

Share count the partner sent. Populated on market sells and all limit orders; null otherwise.

limitPrice
string | null

Limit price the partner set. null on market orders — for the executed price on a market order, read summary.avgPrice (weighted across legs) or fills[].price (per leg).

createdAt
string

ISO 8601 timestamp of order creation.

fills
object[]

Per-venue legs. The source of truth for per-leg status — status here can be open (limit resting), partial, filled, cancelled, or failed. A cancelled leg with size > 0 means partial-fill-then-cancel.

summary
object

Aggregate stats across fills[]. Embeds the partial/cancelled accounting logic so partners don't have to re-derive it.

decisionSnapshot
object

GET detail only, for limit orders. Snapshot of the order book at decision time so you can audit the routing choice. null for market orders and pre-rollout records.

_routing
object

Opt-in routing audit. Present only when the request included ?explain=true. Surfaces every venue the router considered, including dropped venues with their reason.