4,637 markets open now

Sports market data, tick by tick.

Exchange ladders, bookmaker lines and fancy markets — normalised into one catalog, watched by a live trading desk, and published as one stream of markets, state and results.

Market state · last hour
17:45:20 UTC
  1. 17:44:38Soccer · Betis v Osasuna / Match Oddssuspendedopen
  2. 17:44:37Soccer · Betis v Osasuna / Over/Under 4.5 Goalssuspendedopen
  3. 17:44:37Cricket · India Legends v Bangladesh Champions / Bookmaker 1.0%suspendedopen
  4. 17:44:37Cricket · India Legends v Bangladesh Champions / Bookmaker 0%suspendedopen
  5. 17:44:35Soccer · Betis v Osasuna / Both teams to Score?opensuspended
  6. 17:44:35Soccer · Betis v Osasuna / Over/Under 4.5 Goalsopensuspended
  7. 17:44:35Soccer · Betis v Osasuna / Match Oddsopensuspended
  8. 17:44:35Soccer · Betis v Osasuna / Over/Under 3.5 Goalsopensuspended
  9. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Over/Under 6.5 Goalssuspendedopen
  10. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Over/Under 4.5 Goalssuspendedopen
  11. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Both teams to Score?suspendedopen
  12. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Over/Under 5.5 Goalssuspendedopen
  13. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Over/Under 2.5 Goalssuspendedopen
  14. 17:44:32Soccer · Univ Catolica (Ecu) v Macara / Over/Under 7.5 Goalssuspendedopen
Open markets
4,637
open or suspended
In-play markets
1,053
trading live
Live events
59
in play now
Next 24 hours
325
events starting
Sports
5
101 competitions
State changes
4,758
in the last hour

What's in the feed

Four kinds of market, one shape.

Whatever the source, every market lands in the same tree — sport, competition, event, market, runner — with one canonical state. Counts are live.

Exchange ladders

3,976open

Betfair exchange markets on the live stream: back and lay depth, last traded price and traded volume for every runner, pre-match and in-play.

  • Match odds
  • Racing win
  • In-play

Bookmaker lines

14open

Fixed-odds bookmaker markets from the ICE feed, rated per 100, with per-runner suspension and ball-running freezes as they happen.

  • Per-100 rates
  • Runner status

Fancy & session lines

647open

Session, over and player run lines as Yes / No ladders — Khado bands, odd / even and last-digit markets included.

  • Sessions
  • Khado
  • Last digit

Desk-made markets

0open

Markets our traders author and price themselves where no feed has them: ball-by-ball overs, specials and manual books.

  • Ball-by-ball
  • Specials

How it moves

From raw feed to clean stream.

Feeds disagree, stall and arrive out of order. Tickline sits in between so what comes out the other side is consistent.

  1. 01

    Ingest

    The Betfair exchange stream and REST catalogue, and ICE Exchange's bookmaker and fancy feeds, polled and streamed continuously.

  2. 02

    Normalise

    One catalog tree with a single state per market. Writers are serialised by source revision, so a late update never overwrites a newer one.

  3. 03

    Trade

    A human desk holds prices, freezes runners, authors missing markets and declares results — every action code-confirmed and audited.

  4. 04

    Publish

    Each change is written with its event in the same transaction, then fanned out live over WebSocket. Nothing is published out of band.

Coverage, live

What's trading right now.

Every sport with an open market, and which feeds are carrying it. Refreshed every ten minutes.

SportLiveOpen markets
Soccer383,085
Cricket10681
Tennis10609
Greyhound Racing0136
Horse Racing1126

Market lifecycle

One state machine. No surprises.

Every market moves through the same states, enforced in one place. A closed market never reopens, and every transition is recorded with when and why.

  1. 1unpublishedbuilt, not yet visible
  2. 2opentrading
  3. 3suspendedpaused — reopens to open
  4. 4closedresult recorded
  5. 5settledfinal

Off the main path

voidedwith a stated reasonreviewheld for a human

Results carry the winners — dead heats included — any removed runners with their adjustment factors, and a void reason when there is one. A result is corrected by rollback, never by overwriting it.

Example · state change event
{
  "event_type": "market.suspended",
  "payload": {
    "market_id": 1452208,
    "market_type": "fancy",
    "event_id": 34871102,
    "category_id": 4,
    "status": "suspended",
    "result": null,
    "void_reason": null,
    "result_revision": 0,
    "settle_time": null,
    "occurred_at": "2026-10-10T14:02:31.418Z"
  }
}

The shape every transition is written in. Values are illustrative.

Client access

The feed is opening to a first set of trading teams.

Tell us the sports, markets and delivery you need, and we will come back with what we can carry for you today.

Request access hello@tickline.xyz