Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Weight of Money

The odds tell you the price. This tells you where the money went.

For every football market we track how much money is actually matched on each selection — not a bookmaker's price, the real split of the book. Volume, share, and how both moved since the last capture.

15s / 60s
In-play / prematch refresh
22
Fixtures covered (48h)
68
Distinct markets
0 minutes
Since last capture

One request, the whole book

Every fixture returns its markets with the money split per selection. Share is the slice of that market's total; implied probability is what the attached price says it should be. The gap between them is the interesting part.

$ curl -H "Authorization: Token $BSD_TOKEN" \
    https://sports.bzzoiro.com/wom/api/events/

{
  "results": [{
    "id": 35898868,
    "home_team": "Jeju SK",
    "away_team": "FC Bayern München",
    "total_volume": 143388.0,
    "money": [
      {
        "market": "1X2_AWAY_FT",
        "volume": 135838.0,
        "share": 94.73,          // of the money on this market
        "price": 1.11,
        "implied_probability": 90.09
      },
      { "market": "1X2_HOME_FT", "share": 2.75, "price": 55.0 },
      { "market": "1X2_DRAW_FT", "share": 2.51, "price": 14.5 }
    ]
  }]
}

Six routes, that's the whole surface

RouteWhat it returns
/wom/api/coverage/What the dataset holds right now. Free with any token.
/wom/api/events/Fixtures with their latest money split. Filter by date, status, market.
/wom/api/events/<id>/Every market for one fixture.
/wom/api/events/<id>/history/Volume and share over time — the series behind a move.
/wom/api/movers/Selections where money share and implied probability disagree most.
/wom/api/markets/Market catalog and code format.

Event ids are BSD ids — the same ones the football API, the odds API and the WebSocket use. Join across all four without a mapping table.


As fast as the numbers actually change

We poll at the cadence the source itself updates, so you are never reading a number that had already moved before we fetched it.

WhatRefreshMarkets
In-play fixturesevery 15 secondsMatch odds, Over/Under 2.5, BTTS
Prematch fixturesevery 60 secondsPopular set (1X2, O/U 1.5–3.5, BTTS)
Long-tail marketshourlyCorners, cards, correct score, HT/FT, DNB

A row is stored only when volume or price actually moved, so captured_at is the real age of what you are reading — not the time we last ran. Polling, not push: for tick-level odds use the WebSocket.


What this is not

It is a description, not a prediction. A selection carrying 90% of the money is not a selection that wins 90% of the time. We publish the split and the divergence; we do not claim either one is an edge, and we have not back-tested it as a signal.
Coverage follows BSD. A fixture appears only when it resolves to a BSD event. Reserve sides, some women's leagues and smaller federations fall outside our football coverage and so fall outside this dataset. Check /wom/api/coverage/ before you build against it.
Capture cadence, not a live tick. Money is sampled on a schedule and a row is written only when it moved. Between captures the numbers are the last known ones — captured_at tells you exactly how old they are.

Weight of Money

$20/month · cancel any time · same token as your dashboard

Subscribe · $20/mo