owlsinsight-com Betting splits API

The Betting splits API from owlsinsight-com — 1 operation(s) for betting splits.

Operations 1

GET /api/v1/{sport}/splits Returns betting splits for a sport: handle (money) percent and ticket (bet)… #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/owlsinsight-com:owlsinsight-com-betting-splits-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

owlsinsight-com-betting-splits-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Generated from the Owls Insight API manifest and the owls-insight-ts SDK types. Schemas are deliberately lenient: every field is optional, enums are open (x-extensible-enum), and unknown fields may appear. Decode accordingly.'
  title: Owls Insight Betting splits API
  version: 0.78.0
  x-owls-manifest-commit: c93b0756
servers:
- url: https://api.owlsinsight.com
security:
- bearerAuth: []
tags:
- name: Betting splits
paths:
  /api/v1/{sport}/splits:
    get:
      description: 'Returns betting splits for a sport: handle (money) percent and ticket (bet) percent on each side of the spread, the total and the moneyline of each game, per book, from DraftKings, BetMGM (tickets only) and Circa Sports.


        event_id is the eventId /api/v1/{sport}/odds gives the same game ({sport}:{Away}@{Home}-{YYYYMMDD}), and home_team and away_team are the /odds team names, so splits join to odds on event_id. A game not on /odds gets an id built the same way from its scheduled start. Both games of a doubleheader share one event_id, as on /odds.


        Each entry in splits carries as_of, when that book''s figures were read. The books are read on different schedules, so two books on one game can show different times.


        DraftKings figures run until kickoff. After kickoff the last pre-game DraftKings figures stay on the board for up to 4 hours, with the as_of of that last read.


        A market a book has not published for a game is absent from that game rather than reported as zero.


        meta.books lists the books on the board. meta.as_of is the oldest of their latest reads; a split kept after kickoff carries its own, older as_of. meta.source is a fixed value; read meta.books for the books.


        meta.status is "ok" when every book has a recent read, "partial" when one does not (data may then be a subset) and "stale" when no book has one and the last full board, at most 12 hours old, is served instead; meta.age_seconds is then present. meta.partial_reason says which: "book_unavailable" (that book''s figures could not be read; it is absent from meta.books), "upstream_limited" (the Circa figures were withheld) or "upstream_paused" (no book could be read and no board from the last 12 hours is available).


        BetMGM publishes ticket percentages only, so its entries (book betmgm) carry the bets fields and no handle fields; a percentage absent from any book is not zero.


        DraftKings lists splits for only about 50 games of a sport per day, so on a busy slate, such as a full college football Saturday, many games (mostly smaller-conference ones) have no DraftKings split.'
      operationId: getSplits
      parameters:
      - in: path
        name: sport
        required: true
        schema:
          type: string
          x-extensible-enum:
          - mlb
          - nba
          - ncaab
          - ncaaf
          - nfl
          - nhl
          - wnba
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitsResponse'
          description: OK
      summary: 'Returns betting splits for a sport: handle (money) percent and ticket (bet)…'
      tags:
      - Betting splits
      x-owls-access: Rookie and above
      x-owls-sdk-method: getSplits
components:
  schemas:
    SplitsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/SplitsGame'
          type: array
        meta:
          properties:
            age_seconds:
              description: 'Only when `status` is ''stale'': how old the served board is, in seconds.'
              format: double
              type: number
            as_of:
              description: 'ISO time of the OLDEST of the books'' latest reads behind this board, so it never

                overstates freshness. Each split also carries its own {@link SplitsBookEntry.as_of};

                a DraftKings split kept after kickoff has an older one than this.

                Since API v2.362.0.'
              type: string
            books:
              description: 'The books on this board: ''draftkings'', ''betmgm'' and, while it is offered, ''circa''.

                Can be `[''draftkings'']` alone. (Each split''s own `book` key is ''dk'', ''betmgm'' or

                ''circa''.) Read the book set from here, never from a fixed list: books are added.'
              items:
                type: string
              type: array
            partial_reason:
              description: 'Only when `status` is ''partial'': ''upstream_limited'' = the Circa figures were withheld;

                ''book_unavailable'' = one book has no recent read (that book is missing from `books`);

                ''upstream_paused'' = no board at all is available: no book could be read and no board

                from the last 12 hours exists (`data` is empty).'
              type: string
              x-extensible-enum:
              - book_unavailable
              - upstream_limited
              - upstream_paused
            source:
              description: 'A fixed legacy value, ''circa_dk'', whatever books are on the board. Do not read

                the book set from it: use `books`.'
              type: string
            status:
              description: '''ok'' = every book on offer has a recent read. ''partial'' = one does not (see

                `partial_reason`), so `data` may be a subset. ''stale'' = no book has a recent read,

                and the last full board (at most 12 hours old, see `as_of` / `age_seconds`) is

                served instead.

                Absent on API versions before v2.346.0; ''stale'' since v2.362.0.'
              type: string
              x-extensible-enum:
              - ok
              - partial
              - stale
            total_games:
              description: 'Number of games in `data`. Present on every response since API v2.346.0 (earlier: only on cache misses).'
              format: double
              type: number
          type: object
          x-owls-required:
          - source
          - books
        sport:
          type: string
      type: object
      x-owls-required:
      - sport
      - data
      - meta
    SplitsBookEntry:
      description: 'One book''s figures for a game. A market the book has not published for the game is

        absent, not zero, and so is any percentage a book does not publish: BetMGM publishes

        ticket percentages only, so a `betmgm` entry carries the `*_bets_pct` fields and no

        `*_handle_pct` fields. Treat every field below `book`/`title` as possibly absent.'
      properties:
        as_of:
          description: 'ISO 8601 time this book''s figures were read. The books are read on different

            schedules, so two books on one game can show different times. DraftKings figures

            run until kickoff; the last pre-game DraftKings figures stay on the board for up to

            4 hours after kickoff, with the `as_of` of that last read.

            Absent on responses from before 2026-09-27.'
          type: string
        book:
          description: 'Book key: ''dk'' (DraftKings), ''betmgm'' (BetMGM, tickets only, since 2026-09-29) or

            ''circa'' (Circa Sports). Other keys may appear as books are added.'
          type: string
        moneyline:
          properties:
            away_bets_pct:
              format: double
              type: number
            away_handle_pct:
              format: double
              type: number
            away_price:
              format: double
              type: number
            home_bets_pct:
              format: double
              type: number
            home_handle_pct:
              format: double
              type: number
            home_price:
              format: double
              type: number
          type: object
        spread:
          properties:
            away_bets_pct:
              format: double
              type: number
            away_handle_pct:
              format: double
              type: number
            away_line:
              format: double
              type: number
            home_bets_pct:
              format: double
              type: number
            home_handle_pct:
              format: double
              type: number
            home_line:
              format: double
              type: number
          type: object
        title:
          description: 'Display name: ''DraftKings'', ''BetMGM'' or ''Circa Sports''.'
          type: string
        total:
          properties:
            line:
              format: double
              type: number
            over_bets_pct:
              format: double
              type: number
            over_handle_pct:
              format: double
              type: number
            under_bets_pct:
              format: double
              type: number
            under_handle_pct:
              format: double
              type: number
          type: object
      type: object
      x-owls-required:
      - book
      - title
    SplitsGame:
      properties:
        away_team:
          description: The /odds team name (same string as {@link OddsEvent.away_team}).
          type: string
        event_id:
          description: 'Our event id: the {@link OddsEvent.eventId} that `/api/v1/{sport}/odds` gives the

            same game, `{sport}:{Away}@{Home}-{YYYYMMDD}` (e.g.

            "nfl:Carolina Panthers@Cleveland Browns-20260927"), so splits join to odds on it.

            The date is the game''s UTC start date, except MLB games starting from

            2026-10-11T10:00Z, which carry the US Eastern date (as on /odds). A game not on

            /odds gets an id built the same way from its scheduled start. Both games of a

            doubleheader share one `event_id`, as on /odds.


            Before 2026-09-27 this was an upstream game code (e.g. "20260622MLB00030") that did

            not match /odds.'
          type: string
        home_team:
          description: The /odds team name (same string as {@link OddsEvent.home_team}).
          type: string
        splits:
          items:
            $ref: '#/components/schemas/SplitsBookEntry'
          type: array
      type: object
      x-owls-required:
      - event_id
      - home_team
      - away_team
      - splits
  securitySchemes:
    bearerAuth:
      description: Your Owls Insight API key.
      scheme: bearer
      type: http
x-owls-v2-books:
- book: 4casters
  sports:
  - cfl
  - esports
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: 4casters-v2-update
- book: 888sport
  sports:
  - mlb
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: null
- book: ballybet
  sports:
  - aussie-rules
  - boxing
  - cricket
  - cycling
  - darts
  - formula1
  - golf
  - handball
  - mlb
  - mma
  - motorsport
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - rugby-league
  - rugby-union
  - snooker
  - soccer
  - specials
  - surfing
  - table-tennis
  - tennis
  - wnba
  wsEvent: ballybet-v2-update
- book: bet105
  sports:
  - alpine-skiing
  - archery
  - athletics
  - aussie-rules
  - badminton
  - bandy
  - baseball
  - basketball
  - basketball-3x3
  - biathlon
  - bowls
  - boxing
  - cfl
  - chess
  - cricket
  - curling
  - cycling
  - darts
  - esports
  - fencing
  - field-hockey
  - floorball
  - football
  - formula1
  - futsal
  - gaelic-sports
  - golf
  - greyhounds
  - handball
  - hockey
  - horse-racing
  - hurling
  - judo
  - kabaddi
  - kbo
  - lacrosse
  - mlb
  - mma
  - motorbikes
  - motorsport
  - nascar
  - nba
  - ncaab
  - ncaaf
  - netball
  - nfl
  - nhl
  - npb
  - olympics
  - padel
  - pool
  - rugby-league
  - rugby-union
  - sailing
  - ski-jumping
  - snooker
  - soccer
  - softball
  - speedway
  - squash
  - sumo
  - supercars
  - surfing
  - table-tennis
  - taekwondo
  - tennis
  - triathlon
  - trotting
  - ultimate
  - volleyball
  - water-polo
  - wnba
  wsEvent: bet105-v2-update
- book: bet365
  sports:
  - mlb
  - nba
  - nfl
  - nhl
  - soccer
  wsEvent: bet365-v2-update
- book: betonline
  sports:
  - mlb
  - nba
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  wsEvent: betonline-realtime
- book: betrivers
  sports:
  - aussie-rules
  - boxing
  - cricket
  - cycling
  - darts
  - formula1
  - golf
  - handball
  - mlb
  - mma
  - motorsport
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - rugby-league
  - rugby-union
  - snooker
  - soccer
  - specials
  - surfing
  - table-tennis
  - tennis
  - wnba
  wsEvent: betrivers-v2-update
- book: betus
  sports:
  - alpine-skiing
  - archery
  - athletics
  - aussie-rules
  - badminton
  - bandy
  - baseball
  - basketball
  - basketball-3x3
  - biathlon
  - bowls
  - boxing
  - cfl
  - chess
  - cricket
  - curling
  - cycling
  - darts
  - esports
  - fencing
  - field-hockey
  - floorball
  - football
  - formula1
  - futsal
  - gaelic-sports
  - golf
  - greyhounds
  - handball
  - hockey
  - horse-racing
  - hurling
  - judo
  - kabaddi
  - kbo
  - lacrosse
  - mlb
  - mma
  - motorbikes
  - motorsport
  - nascar
  - nba
  - ncaab
  - ncaaf
  - netball
  - nfl
  - nhl
  - npb
  - olympics
  - padel
  - pool
  - rugby-league
  - rugby-union
  - sailing
  - ski-jumping
  - snooker
  - soccer
  - softball
  - speedway
  - squash
  - sumo
  - supercars
  - surfing
  - table-tennis
  - taekwondo
  - tennis
  - triathlon
  - trotting
  - ultimate
  - volleyball
  - water-polo
  - wnba
  wsEvent: betus-v2-update
- book: bookmaker
  sports:
  - alternative-sports
  - aussie-rules
  - baseball
  - basketball
  - boxing
  - cricket
  - darts
  - e-gaming
  - entertainment
  - esports
  - football
  - futsal
  - futures
  - golf
  - ice-hockey
  - mma
  - motorsport
  - politics
  - rugby
  - soccer
  - surfing
  - table-tennis
  - tennis
  wsEvent: null
- book: bovada
  sports:
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  wsEvent: null
- book: draftkings
  sports:
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - wnba
  wsEvent: draftkings-v2-update
- book: fanaticsmarkets
  sports:
  - boxing
  - cs2
  - dota2
  - golf
  - lol
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - valorant
  - wnba
  wsEvent: fanaticsmarkets-v2-update
- book: fanduel
  sports:
  - mlb
  - mma
  - nba
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: fanduel-v2-update
- book: hardrock
  sports:
  - AMERICAN_FOOTBALL
  - AUSSIE_RULES
  - BASEBALL
  - BASKETBALL
  - BOXING
  - CRICKET
  - DARTS
  - HANDBALL
  - ICE_HOCKEY
  - MMA
  - RUGBY
  - SNOOKER
  - SOCCER
  - TABLE_TENNIS
  - TENNIS
  - VOLLEYBALL
  wsEvent: null
- book: kalshi
  sports:
  - cs2
  - dota2
  - lol
  - mlb
  - mma
  - nba
  - ncaaf
  - nfl
  - nhl
  - overwatch
  - pubg
  - rainbow6
  - rocketleague
  - soccer
  - tennis
  - valorant
  - wnba
  wsEvent: kalshi-v2-update
- book: lowvig
  sports:
  - boxing
  - cricket
  - darts
  - golf
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - table-tennis
  - tennis
  - wnba
  wsEvent: lowvig-v2-update
- book: mybookie
  sports:
  - mlb
  - nba
  wsEvent: mybookie-v2-update
- book: novig
  sports:
  - mlb
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  wsEvent: null
- book: pinnacle
  sports:
  - esports
  - handball
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - wnba
  wsEvent: pinnacle-v2-update
- book: polymarket
  sports:
  - cs2
  - dota2
  - lol
  - mlb
  - mma
  - nba
  - ncaaf
  - nfl
  - nhl
  - overwatch
  - pubg
  - rainbow6
  - rocketleague
  - soccer
  - tennis
  - valorant
  - wnba
  wsEvent: polymarket-v2-update
- book: propbuilder
  sports:
  - mlb
  - nba
  - ncaaf
  - nfl
  - nhl
  - wnba
  wsEvent: propbuilder-v2-update
- book: stake
  sports:
  - baseball
  - basketball
  - cs2
  - ice-hockey
  - mma
  - soccer
  - table-tennis
  - tennis
  wsEvent: null
- book: thescore
  sports:
  - mlb
  - nba
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  wsEvent: null
- book: thunderpick
  sports:
  - american-football
  - baseball
  - basketball
  - cs2
  - dota2
  - lol
  - soccer
  - tennis
  - valorant
  wsEvent: thunderpick-v2-update
- book: tippmixpro
  sports:
  - boxing
  - cs2
  - dota2
  - lol
  - mlb
  - mma
  - nba
  - ncaab
  - ncaaf
  - nfl
  - nhl
  - soccer
  - tennis
  - valorant
  wsEvent: tippmixpro-v2-update
- book: underdog
  sports:
  - cs2
  - kbo
  - lol
  - mlb
  - mma
  - nba
  - ncaaf
  - nfl
  - nhl
  - npb
  - pga
  - soccer
  - tennis
  - valorant
  - wnba
  wsEvent: null
- book: versus
  sports:
  - afl
  - badminton
  - basketball
  - boxing
  - cricket
  - darts
  - esports
  - golf
  - handball
  - mlb
  - mma
  - nfl
  - nhl
  - padel
  - soccer
  - table-tennis
  - tennis
  - volleyball
  wsEvent: versus-v2-update