Skip to content
API reference / Horse racing
GET/horse-racing/runners

List horse racing runners

Returns a paginated list of runners across races, ordered by (race_id, id) so pages stay stable. Odds are only included with odds=true.

Horse racing plan featurePay per call without a key: $0.002 in USDC

Parameters

  • race_idstring · query

    Comma-separated race IDs (max 100)

  • horse_idinteger · query

    Filter by horse ID

  • jockeystring · query

    Filter by jockey name (substring)

  • trainerstring · query

    Filter by trainer name (substring)

  • meeting_idinteger · query

    Filter by meeting (racecourse) ID

  • datestring · query

    Filter by UTC race date (YYYY-MM-DD)

  • regionstring · query

    Filter by region (usa, uk, australia, hk, singapore, dubai, sa, france)

  • futurestring · query

    Only runners in races dated today (UTC) or later, including today's finished races (true)

  • updated_sincestring · query

    Only runners whose odds, status or result changed after this RFC 3339 timestamp. Removed runners are signalled by their race's updated_at.

  • oddsstring · query

    Include every bookmaker's odds (true)

  • formstring · query

    Include recent_form (default true; false omits it)

  • bookmaker_idstring · query

    Comma-separated bookmaker IDs to keep in odds (max 100)

  • limitinteger · query

    Maximum results (1-1000)

    Default: 50
  • offsetinteger · query

    Results to skip

    Default: 0

Response

JSON with success, the result in data, and where the endpoint pages its results meta.

  • dataarray of object
  • agestring
  • distancestring
  • genderstring
  • horse_namestring
  • idinteger

    ID is the the data provider horse id.

  • jockeyobject
  • idinteger
  • namestring
  • morning_lineobject
  • decimalnumber
  • fractionalstring
  • numberstring

    Number is the saddle-cloth number; outcome codes never appear here.

  • oddsobject
  • bestobject

    Best is the highest fixed decimal price among Bookmakers; null when none is fixed.

  • bookmakersarray of object
  • updated_atstring

    UpdatedAt is when our sync first saw these prices (UTC, RFC 3339). the data provider publishes no price timestamp.

  • race_idinteger
  • ratingstring
  • recent_formobject
  • resultobject
  • dead_heatboolean

    DeadHeat is true when the runner shares its position with another.

  • distancestring
  • finish_codestring

    FinishCode is set when the runner did not finish: PU (pulled up), F (fell), U/UR (unseated), B/BD (brought down), RR/RO (refused/ran out), S (slipped), and other upstream codes.

  • positioninteger

    Position is null when the runner did not finish.

  • spstring
  • sp_decimalnumber
  • timestring
  • stallstring
  • statusstring

    Status is "runner", "non_runner" (withdrawn) or "did_not_finish".

  • trainerobject
  • idinteger
  • namestring
  • updated_atstring

    UpdatedAt is when anything about this runner last changed (UTC, RFC 3339).

  • weightstring
  • weight_lbsstring
  • errorobject
  • codestring
  • messagestring
  • metaobject
  • attributionstring

    Attribution a data source's licence asks for (Cricsheet's history).

  • limitinteger
  • offsetinteger
  • totalinteger
  • successboolean

Errors

StatusCodeWhen
400INVALID_PARAMA parameter is missing or wrong, and the message names it. Fix the request; do not retry it.
401UNAUTHORIZEDThe key is missing, mistyped or was rotated.
402x402 offersNo key and no valid payment: the body lists what to pay. Only a 200 answer is charged.
403FORBIDDENThe sport or feature is not in your plan (FEATURE_NOT_IN_PLAN for Insights and other plan features).
429RATE_LIMIT_EXCEEDEDToo many requests (QUOTA_EXCEEDED for the daily limit). Wait for Retry-After.
500INTERNAL_ERROROur side. Try again after a few seconds and check the status page.

All errors have the shape described in Errors and limits.

Generated from the OpenAPI file, version 1.0. See it as JSON

Was this page helpful?