Skip to main content

runnerPairs

Paginated, pair-level view of a runner's data-download universe — every unique (exchange, tradingMode, pair) tuple, with per-pair status roll-up and timeframes-ready / timeframes-total counters. Replaces the 'fetch every ref then filter on the client' pattern that the drawer pickers used to hit; the backend clamps keep the ref-level runnerDataTargets query from returning more than 50 rows, which silently hid most of a 40k-ref runner's catalog.

Keyset pagination: clients pass the previous page's endCursor as after to fetch the next page. Cursors are opaque — do not attempt to parse or synthesise them client-side. The canonical order is (featured DESC, statusTier ASC, pair ASC); status tiers are READY < RUNNING < PENDING < FAILED.

  • search is case-insensitive substring match on the pair symbol.
  • exchange / tradingMode narrow the result to one exchange or mode (used by the drawer to scope the picker to the selected exchange).
  • first caps the page size server-side.
runnerPairs(
runnerID: ID!
exchange: String
tradingMode: MarketDataTradingMode
search: String
after: String
first: Int = 100
): RunnerPairsResult!

Arguments

runnerPairs.runnerID ● ID! non-null scalar

runnerPairs.exchange ● String scalar

runnerPairs.tradingMode ● MarketDataTradingMode enum

runnerPairs.after ● String scalar

runnerPairs.first ● Int scalar

Type

RunnerPairsResult object

Paged result of runnerPairs. Uses keyset pagination: pass pageInfo.endCursor back as after on the next call to fetch the following page.