SportStatsAPI · Schema

handlers.HorseRacingBriefingResponse

Sports DataWidgetsWordPressInsightsArtificial IntelligenceMCP

Properties

Name Type Description
after_race boolean
as_of string
distance string
facts array
favourites array joint favourites share the price
field_size integer
going string
history_from string HistoryFrom: form and strike rates only count our results since this day.
non_runners integer
race object
race_class string
result object
runners array
sport string
View JSON Schema on GitHub

JSON Schema

sportstatsapi-handlers-horse-racing-briefing-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/sportstatsapi/json-schema/sportstatsapi-handlers-horse-racing-briefing-response-schema.json",
  "title": "handlers.HorseRacingBriefingResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/sportstatsapi-horse-racing-api-openapi.yml#/components/schemas/handlers.HorseRacingBriefingResponse",
  "properties": {
    "after_race": {
      "type": "boolean"
    },
    "as_of": {
      "type": "string"
    },
    "distance": {
      "type": "string"
    },
    "facts": {
      "items": {
        "$ref": "#/$defs/insights.Fact"
      },
      "type": "array"
    },
    "favourites": {
      "description": "joint favourites share the price",
      "items": {
        "$ref": "#/$defs/insights.RaceFavourite"
      },
      "type": "array"
    },
    "field_size": {
      "type": "integer"
    },
    "going": {
      "type": "string"
    },
    "history_from": {
      "description": "HistoryFrom: form and strike rates only count our results since this day.",
      "type": "string"
    },
    "non_runners": {
      "type": "integer"
    },
    "race": {
      "$ref": "#/$defs/dto.HorseRacingRaceResponse"
    },
    "race_class": {
      "type": "string"
    },
    "result": {
      "$ref": "#/$defs/insights.RaceOutcome"
    },
    "runners": {
      "items": {
        "$ref": "#/$defs/insights.RunnerBriefing"
      },
      "type": "array"
    },
    "sport": {
      "type": "string"
    }
  },
  "type": "object",
  "$defs": {
    "database.HorseRacingPedigree": {
      "properties": {
        "dam": {
          "type": "string"
        },
        "sire": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "database.HorseRacingRaceType": {
      "properties": {
        "class": {
          "description": "Class: the class number in the name (South Africa: \"Class 4\").",
          "type": "integer"
        },
        "code": {
          "description": "Code: flat or jumps (\"\" when the name does not say; USA races are flat).",
          "enum": [
            "flat",
            "jumps"
          ],
          "type": "string"
        },
        "grade": {
          "description": "Grade: \"Group 1\"..\"Group 3\", \"Grade 1\"..\"Grade 3\" or \"Listed\", when\nthe name says it.",
          "type": "string"
        },
        "kind": {
          "description": "Kind: the race's conditions.",
          "enum": [
            "handicap",
            "maiden",
            "novice",
            "claiming",
            "maiden_claiming",
            "selling",
            "allowance",
            "optional_claiming",
            "starter",
            "maiden_special_weight",
            "stakes",
            "conditions",
            "classified",
            "rated",
            "trial",
            "flat_race"
          ],
          "type": "string"
        },
        "label": {
          "description": "Label: a short neutral description (\"Novices' handicap chase\").",
          "type": "string"
        },
        "novice": {
          "type": "boolean"
        },
        "obstacle": {
          "description": "Obstacle: hurdle, chase, nh_flat (bumper) or cross_country (jumps only).",
          "enum": [
            "hurdle",
            "chase",
            "nh_flat",
            "cross_country"
          ],
          "type": "string"
        },
        "rating_band": {
          "description": "RatingBand: a merit-rated handicap's top rating (\"MR 78\", \"Fm 78\").",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingEachWay": {
      "properties": {
        "fraction": {
          "type": "string"
        },
        "places": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingJockeyInfo": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingMeetingInfo": {
      "properties": {
        "date": {
          "description": "Date is the local card date (YYYY-MM-DD). It can precede the UTC\nrace_date when a card runs past midnight UTC.",
          "type": "string"
        },
        "going": {
          "type": "string"
        },
        "id": {
          "description": "ID is the data provider's racecourse id. It is reused every day the course\nraces, so a meeting is identified by (id, date).",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "region": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingMorningLine": {
      "properties": {
        "decimal": {
          "type": "number"
        },
        "fractional": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingPayouts": {
      "properties": {
        "place": {
          "type": "string"
        },
        "show": {
          "type": "string"
        },
        "win": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingQuote": {
      "properties": {
        "bookmaker_id": {
          "description": "BookmakerID is our stable registry id (see GET /horse-racing/bookmakers).",
          "type": "integer"
        },
        "decimal": {
          "description": "Decimal odds; null unless price_type is \"fixed\".",
          "type": "number"
        },
        "each_way": {
          "$ref": "#/$defs/dto.HorseRacingEachWay"
        },
        "fractional": {
          "description": "Fractional odds as displayed by UK bookmakers; null when unknown.",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "price_type": {
          "description": "PriceType is \"fixed\" (a price), \"sp\" (starting price only) or \"none\"\n(not priced yet).",
          "enum": [
            "fixed",
            "sp",
            "none"
          ],
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRaceResponse": {
      "properties": {
        "distance": {
          "type": "string"
        },
        "each_way": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingEachWay"
            }
          ],
          "description": "EachWay is the most common each-way terms across bookmakers; individual\nbookmakers may offer different terms (see each quote's each_way)."
        },
        "id": {
          "type": "integer"
        },
        "meeting": {
          "$ref": "#/$defs/dto.HorseRacingMeetingInfo"
        },
        "purse": {
          "type": "string"
        },
        "race_class": {
          "type": "string"
        },
        "race_date": {
          "description": "RaceDate and StartTime are UTC.",
          "type": "string"
        },
        "race_name": {
          "type": "string"
        },
        "race_type": {
          "allOf": [
            {
              "$ref": "#/$defs/database.HorseRacingRaceType"
            }
          ],
          "description": "RaceType is what the race name says: flat or jumps, the conditions\n(handicap, maiden, claiming...), hurdle or chase, a pattern grade\nwhere named. Omitted when the name says nothing."
        },
        "results_final": {
          "description": "ResultsFinal is true once every declared runner is accounted for as a\nfinisher, a non-finisher or a non-runner.",
          "type": "boolean"
        },
        "runners": {
          "items": {
            "$ref": "#/$defs/dto.HorseRacingRunnerResponse"
          },
          "type": "array"
        },
        "runners_count": {
          "type": "integer"
        },
        "sport": {
          "type": "string"
        },
        "start_time": {
          "type": "string"
        },
        "start_utc": {
          "description": "StartUTC is the scheduled off-time in ISO 8601 UTC.",
          "type": "string"
        },
        "status": {
          "description": "Status: NS (not started), live (off within the last 30 minutes, no\nresults yet), result_pending (off more than 30 minutes ago, no results\nyet), FT (results published), unlisted (gone from the source's day\ncard after its off without a result: possibly called off, not\nconfirmed; it can still become FT).",
          "enum": [
            "NS",
            "live",
            "result_pending",
            "FT",
            "unlisted"
          ],
          "type": "string"
        },
        "surface": {
          "type": "string"
        },
        "updated_at": {
          "description": "UpdatedAt is when the race or any of its runners last changed (UTC, RFC 3339).",
          "type": "string"
        },
        "wagers": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRecord": {
      "properties": {
        "name": {
          "description": "Name is the jockey or trainer the record is with (connections only).",
          "type": "string"
        },
        "places": {
          "type": "integer"
        },
        "runs": {
          "type": "integer"
        },
        "wins": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRunnerOdds": {
      "properties": {
        "best": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingQuote"
            }
          ],
          "description": "Best is the highest fixed decimal price among Bookmakers; null when none is fixed."
        },
        "bookmakers": {
          "items": {
            "$ref": "#/$defs/dto.HorseRacingQuote"
          },
          "type": "array"
        },
        "updated_at": {
          "description": "UpdatedAt is when our sync first saw these prices (UTC, RFC 3339).\nThe data provider publishes no price timestamp.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRunnerRecords": {
      "properties": {
        "badges": {
          "description": "Badges: C won at this course, D won at this distance, CD won at this\ncourse and distance (the race-card letters).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "course": {
          "$ref": "#/$defs/dto.HorseRacingRecord"
        },
        "course_distance": {
          "$ref": "#/$defs/dto.HorseRacingRecord"
        },
        "distance": {
          "$ref": "#/$defs/dto.HorseRacingRecord"
        },
        "going": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingRecord"
            }
          ],
          "description": "Going is the record on similar going."
        },
        "jockey": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingRecord"
            }
          ],
          "description": "Jockey and Trainer are the horse's record with them."
        },
        "surface": {
          "$ref": "#/$defs/dto.HorseRacingRecord"
        },
        "trainer": {
          "$ref": "#/$defs/dto.HorseRacingRecord"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRunnerResponse": {
      "properties": {
        "age": {
          "type": "string"
        },
        "distance": {
          "type": "string"
        },
        "gender": {
          "type": "string"
        },
        "horse_name": {
          "type": "string"
        },
        "id": {
          "description": "ID is the data provider's horse id.",
          "type": "integer"
        },
        "jockey": {
          "$ref": "#/$defs/dto.HorseRacingJockeyInfo"
        },
        "morning_line": {
          "$ref": "#/$defs/dto.HorseRacingMorningLine"
        },
        "number": {
          "description": "Number is the saddle-cloth number; outcome codes never appear here.",
          "type": "string"
        },
        "odds": {
          "$ref": "#/$defs/dto.HorseRacingRunnerOdds"
        },
        "pedigree": {
          "allOf": [
            {
              "$ref": "#/$defs/database.HorseRacingPedigree"
            }
          ],
          "description": "Pedigree is the horse's sire and dam where the source names them\n(Hong Kong: every runner of the race card, the winner of a result)."
        },
        "race_id": {
          "type": "integer"
        },
        "rating": {
          "type": "string"
        },
        "recent_form": {
          "type": "object"
        },
        "records": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingRunnerRecords"
            }
          ],
          "description": "Records are the horse's course, distance, going and jockey/trainer\nrecords read from recent_form (UK and Irish cards), with C/D/CD badges."
        },
        "result": {
          "$ref": "#/$defs/dto.HorseRacingRunnerResult"
        },
        "stall": {
          "type": "string"
        },
        "status": {
          "description": "Status is \"runner\", \"non_runner\" (withdrawn) or \"did_not_finish\".",
          "enum": [
            "runner",
            "non_runner",
            "did_not_finish"
          ],
          "type": "string"
        },
        "trainer": {
          "$ref": "#/$defs/dto.HorseRacingTrainerInfo"
        },
        "updated_at": {
          "description": "UpdatedAt is when anything about this runner last changed (UTC, RFC 3339).",
          "type": "string"
        },
        "weight": {
          "type": "string"
        },
        "weight_lbs": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingRunnerResult": {
      "properties": {
        "dead_heat": {
          "description": "DeadHeat is true when the runner shares its position with another.",
          "type": "boolean"
        },
        "distance": {
          "type": "string"
        },
        "finish_code": {
          "description": "FinishCode is set when the runner did not finish: PU (pulled up),\nF (fell), U/UR (unseated), B/BD (brought down), RR/RO (refused/ran out),\nS (slipped), and other upstream codes.",
          "type": "string"
        },
        "payouts": {
          "allOf": [
            {
              "$ref": "#/$defs/dto.HorseRacingPayouts"
            }
          ],
          "description": "Payouts are the USA pari-mutuel payouts per $2 stake, only for the\npools the runner paid in (win: 1st, place: 1st-2nd, show: 1st-3rd)."
        },
        "position": {
          "description": "Position is null when the runner did not finish.",
          "type": "integer"
        },
        "sp": {
          "type": "string"
        },
        "sp_decimal": {
          "type": "number"
        },
        "time": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "dto.HorseRacingTrainerInfo": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "insights.Fact": {
      "properties": {
        "based_on": {
          "description": "match ids; left out for codes-only keys",
          "items": {
            "type": "integer"
          },
          "type": "array"
        },
        "based_on_codes": {
          "description": "BasedOnCodes: the based_on matches' codes, written by the API's\ncode middleware (middleware.CodeOutput), never set here.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "history_from": {
          "type": "string"
        },
        "importance": {
          "type": "integer"
        },
        "incomplete": {
          "description": "a match without a result cuts it: no sentence",
          "type": "boolean"
        },
        "opponent": {
          "$ref": "#/$defs/insights.TeamRef"
        },
        "player_id": {
          "type": "integer"
        },
        "since": {
          "type": "string"
        },
        "team": {
          "$ref": "#/$defs/insights.TeamRef"
        },
        "team_id": {
          "description": "Flat fields for consumers that do not read values: the team's and\nplayer's id, the fact's main number, the day a run or \"first since\"\nreaches back to, and the start of our data (no claim reaches further).",
          "type": "integer"
        },
        "text": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "value": {
          "type": "integer"
        },
        "values": {
          "additionalProperties": {},
          "type": "object"
        }
      },
      "type": "object"
    },
    "insights.RaceFavourite": {
      "properties": {
        "decimal": {
          "type": "number"
        },
        "horse": {
          "type": "string"
        },
        "horse_id": {
          "type": "integer"
        },
        "source": {
          "description": "sp, best_price or morning_line",
          "type": "string"
        }
      },
      "type": "object"
    },
    "insights.RaceOutcome": {
      "properties": {
        "favourite_won": {
          "description": "FavouriteWon is null without a favourite.",
          "type": "boolean"
        },
        "winners": {
          "items": {
            "$ref": "#/$defs/insights.RaceWinner"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "insights.RacePerson": {
      "properties": {
        "heat": {
          "enum": [
            "hot",
            "cold"
          ],
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "last_30_days": {
          "$ref": "#/$defs/insights.Record30"
        },
        "last_365_days": {
          "allOf": [
            {
              "$ref": "#/$defs/insights.Record30"
            }
          ],
          "description": "A trainer's 365 days before race day, and its heat (TrainerHeat)."
        },
        "name": {
          "type": "string"
        },
        "strike_rate": {
          "description": "wins per run in %, from StrikeRateMin runs",
          "type": "number"
        }
      },
      "type": "object"
    },
    "insights.RaceRun": {
      "properties": {
        "course": {
          "type": "string"
        },
        "date": {
          "description": "YYYY-MM-DD (UTC race date)",
          "type": "string"
        },
        "distance": {
          "type": "string"
        },
        "field_size": {
          "type": "integer"
        },
        "finish_code": {
          "type": "string"
        },
        "going": {
          "type": "string"
        },
        "position": {
          "description": "0: no position (did not finish)",
          "type": "integer"
        },
        "race_id": {
          "type": "integer"
        },
        "sp": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "insights.RaceWinner": {
      "properties": {
        "horse": {
          "type": "string"
        },
        "horse_id": {
          "type": "integer"
        },
        "sp": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "insights.Record30": {
      "properties": {
        "runs": {
          "type": "integer"
        },
        "top_three": {
          "type": "integer"
        },
        "wins": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "insights.RunnerBriefing": {
      "properties": {
        "class_move": {
          "description": "ClassMove: up or down in class against its last run, where the race\nnames tell (USA race kinds and purses, pattern grades, class numbers).",
          "enum": [
            "up",
            "down"
          ],
          "type": "string"
        },
        "days_since_last_run": {
          "description": "DaysSince: days since its last run in our results.",
          "type": "integer"
        },
        "firsts": {
          "description": "Firsts: its first handicap, first run over fences (chase) or hurdles,\nonly when our results hold its whole career (UK and Irish cards).",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "form": {
          "description": "our results, oldest left, latest right: 1-9, 0 = 10th or worse, a letter = did not finish; \"-\" between seasons, \"/\" after a season or more off",
          "type": "string"
        },
        "horse": {
          "type": "string"
        },
        "horse_id": {
          "type": "integer"
        },
        "jockey": {
          "$ref": "#/$defs/insights.RacePerson"
        },
        "jockey_with_trainer_365_days": {
          "allOf": [
            {
              "$ref": "#/$defs/insights.Record30"
            }
          ],
          "description": "JockeyWithTrainer: this jockey's rides for this trainer in the 365\ndays before race day, from JockeyTrainerMin rides."
        },
        "last_run": {
          "$ref": "#/$defs/insights.RaceRun"
        },
        "non_runner": {
          "type": "boolean"
        },
        "number": {
          "type": "string"
        },
        "runs_in_our_data": {
          "type": "integer"
        },
        "trainer": {
          "$ref": "#/$defs/insights.RacePerson"
        }
      },
      "type": "object"
    },
    "insights.TeamRef": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/sportstatsapi-handlers-horse-racing-briefing-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.