Racing

Score bets against the closing line (CLV)

Cost: 5 credits per request, up to 200 bets. Score a list of bets you struck against the closing line each race actually closed at, and get the record back as numbers: per bet the closing price (the named book's, or the market's best or median), the closing-line value in percent, whether it beat the close, the result and the flat-stake P&L; and across the list the average and median CLV, the beat-the-close rate, the win rate and the ROI.

Naming a race. Send the race_id you already hold from next-to-go, events, results or the archive; failing that, venue + meeting_date (AET) + race_number. Naming a runner. runner_ref (the ra:/grv: registry id on results and the archive) is exact; runner_number is the saddlecloth; runner_name is matched the way the feeds match names.

What you are measured against. A closing line is a book's last price within 300 s of the jump. Name a bookmaker and clv_pct is against that book's close (close_book); otherwise against the market reference — best (the highest close across books, the strictest test) or median. close_best and close_median come back on every bet either way, so you can re-cut the record yourself.

Coverage. The archive holds AU and NZ races from archive_floor onward; a bet before that, or on a race no book priced at the close, resolves with a reason and is left out of the averages rather than guessed. Results are settled only when result_status is final; won and pnl are null until then. Betfair exchange prices are withheld.

Plus and above. Free and paid tiers below Plus receive a 403 and are not charged; the 403 carries a sample: five example bets on one recent race, scored the way yours would be.

post/v1/racing/clv

Request

  • Base URL: https://api.puntersedge.online
  • URL: https://api.puntersedge.online/v1/racing/clv
  • Auth: API key in header X-API-Key

Headers

X-API-Keystring
X-RapidAPI-Proxy-Secretstring

Request body

referencestring

The market close used when a bet names no bookmaker, and reported as close_best / close_median on every bet regardless: best is the highest closing win price across books, median the median.

Example request

{
  "bets": [
    {
      "bookmaker": "sportsbet",
      "price": 4.2,
      "race_id": "au-flemington-2026-09-19-r5",
      "ref": "bet-1",
      "runner_name": "Example Horse",
      "stake": 50
    },
    {
      "meeting_date": "2026-09-19",
      "price": 6,
      "race_number": 7,
      "ref": "bet-2",
      "runner_number": 3,
      "venue": "Randwick"
    }
  ],
  "reference": "best"
}

Response

Successful Response

referencestring required
archive_floorstring date nullable

Earliest race day the archive holds; bets before it cannot resolve.

notesstring[]

Changes

No recorded changes to this operation across all 1 revision of this API.