Every API here is available over the APIs.io API and to AI agents over MCP.
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 API
version: 0.78.0
x-owls-manifest-commit: c93b0756
servers:
- url: https://api.owlsinsight.com
security:
- bearerAuth: []
tags:
- name: Owls Insight API
paths: {}
webhooks:
ev.found:
post:
description: '`ev.found` data: a price on the EV board became tradeable at or above your `min_ev`.'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEvFoundEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: ev.found
tags:
- Owls Insight API
game.final:
post:
description: '`game.started` and `game.final` data.'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookGameFinalEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: game.final
tags:
- Owls Insight API
game.started:
post:
description: '`game.started` and `game.final` data.'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookGameStartedEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: game.started
tags:
- Owls Insight API
line.moved:
post:
description: '`line.moved` data: Pinnacle''s main moneyline, spread or total for a game that has not
started moved by at least your step since the last `line.moved` you were sent for that
market, so small moves add up.'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookLineMovedEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: line.moved
tags:
- Owls Insight API
props.graded:
post:
description: '`props.graded` data: the first player prop results of a game are confirmed (`complete: false`), or all of them are (`complete: true`).'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookPropsGradedEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: props.graded
tags:
- Owls Insight API
webhook.test:
post:
description: '`webhook.test` data.'
parameters:
- description: t=<unix seconds>,v1=<hex HMAC-SHA256 of t, a period and the raw body, keyed with the whole signing secret as UTF-8>. During a secret rotation a second v1 is added; accept a match with either. Reject a t more than 5 minutes from your clock.
in: header
name: Owls-Signature
required: true
schema:
type: string
- description: 'The event id (evt_...), identical on every retry: dedupe on it.'
in: header
name: Owls-Webhook-Id
required: true
schema:
type: string
- description: The event type.
in: header
name: Owls-Event-Type
required: true
schema:
type: string
- description: 1 for the first attempt, then 2, 3 and so on.
in: header
name: Owls-Delivery-Attempt
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTestEvent'
required: true
responses:
2XX:
description: 'Any 2xx within 10 seconds acknowledges the delivery. 410 Gone disables the endpoint. Anything else, a redirect included, is a failure: line.moved and ev.found are retried after about 5, 20 and 60 seconds, the other types up to 8 times over about a day, and nothing is sent after the event''s expires_at.'
security: []
summary: webhook.test
tags:
- Owls Insight API
components:
schemas:
WebhookLineMovedData:
description: '`line.moved` data: Pinnacle''s main moneyline, spread or total for a game that has not
started moved by at least your step since the last `line.moved` you were sent for that
market, so small moves add up.'
properties:
away_team:
description: Empty when unknown.
type: string
book:
type: string
x-extensible-enum:
- pinnacle
commence_time:
description: The scheduled start (ISO 8601); empty when unknown.
type: string
current:
$ref: '#/components/schemas/WebhookLineSides'
description: The market now.
event_id:
description: Our stable id of the game (`{sport}:{away}@{home}-{date}`), the `eventId` the odds board and the history endpoints use. Empty when unknown.
type: string
home_team:
description: Empty when unknown.
type: string
league:
type:
- string
- 'null'
market:
$ref: '#/components/schemas/WebhookLineMarket'
max_probability_change_pp:
description: The largest change of a side's implied probability from `previous`, in percentage points.
format: double
type: number
point_change:
description: The change of the line (the home spread, or the total) from `previous`; 0 on a moneyline.
format: double
type: number
previous:
$ref: '#/components/schemas/WebhookLineSides'
description: The market as of the last `line.moved` sent for it (or as first seen).
reason:
description: '`price`: a side''s implied probability moved by at least `price_step_pp` at the same line. `point`: the line moved by at least `point_step`.'
type: string
x-extensible-enum:
- point
- price
source_event_id:
description: The book's own id for the event.
type: string
sport:
type: string
thresholds:
$ref: '#/components/schemas/WebhookLineMovedThresholds'
type: object
x-owls-required:
- sport
- league
- event_id
- source_event_id
- home_team
- away_team
- commence_time
- book
- market
- reason
- previous
- current
- max_probability_change_pp
- point_change
- thresholds
WebhookLineMovedEvent:
description: A `line.moved` delivery.
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookLineMovedData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- line.moved
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookEvKind:
description: '`ev.found` price kinds: `book` (a sportsbook) or `venue` (an exchange or prediction market).'
type: string
x-extensible-enum:
- book
- venue
WebhookEvSignal:
description: The price behind an `ev.found` event, scored like the EV endpoint scores it.
properties:
ev:
description: 'The EV in dollars: per $1 staked at a sportsbook, per contract at a venue. Null when it is not scored.'
format: double
type:
- number
- 'null'
ev_percent:
description: The EV in percent of the amount at risk, rounded to 2 decimals.
format: double
type: number
fair_low:
description: The conservative fair (the fair less 1 percentage point) the EV is scored against, or null.
format: double
type:
- number
- 'null'
fair_probability:
description: The fair probability of this side, or null.
format: double
type:
- number
- 'null'
fee:
description: A venue's taker fee per contract, in dollars; 0 for a sportsbook.
format: double
type: number
implied_probability:
description: The implied probability of `price`.
format: double
type: number
kind:
$ref: '#/components/schemas/WebhookEvKind'
link:
description: The venue's page for the market, or null.
type:
- string
- 'null'
price:
description: American odds of the price you pay (a venue's ask).
format: double
type: number
quote_age_ms:
description: The price's age in milliseconds when the EV board was built, or null.
format: double
type:
- number
- 'null'
route:
description: 'A venue''s route: `yes`, or `no:<CODE>` (buy NO on the opponent''s market); null for a sportsbook.'
type:
- string
- 'null'
side:
type: string
x-extensible-enum:
- away
- draw
- home
size:
description: Dollars available at `price`, or null when unknown.
format: double
type:
- number
- 'null'
team:
type: string
venue:
description: The sportsbook or venue key.
type: string
type: object
x-owls-required:
- kind
- venue
- side
- team
- price
- implied_probability
- fair_probability
- fair_low
- ev_percent
- ev
- fee
- route
- size
- link
- quote_age_ms
WebhookEvFoundData:
description: '`ev.found` data: a price on the EV board became tradeable at or above your `min_ev`.'
properties:
away_team:
type: string
board_age_ms:
description: The EV board's age in milliseconds when the event was made, or null.
format: double
type:
- number
- 'null'
commence_time:
description: The scheduled start (ISO 8601).
type: string
event_id:
description: Our stable id of the game (`{sport}:{away}@{home}-{date}`), the `eventId` the odds board and the history endpoints use; empty when unknown.
type: string
home_team:
type: string
league:
type:
- string
- 'null'
min_ev:
description: The endpoint's `min_ev` the price reached.
format: double
type: number
odds_event_id:
description: 'The game''s `id` on the odds board: what the EV endpoint returns as `eventId`.'
type: string
signal:
$ref: '#/components/schemas/WebhookEvSignal'
sport:
type: string
type: object
x-owls-required:
- sport
- league
- event_id
- odds_event_id
- home_team
- away_team
- commence_time
- min_ev
- signal
- board_age_ms
WebhookGameStatus:
description: A game's status as the live scores show it.
properties:
detail:
description: Its detail text, such as the clock or the result.
type: string
state:
description: The scores feed's state, such as `in` or `post`.
type: string
type: object
x-owls-required:
- state
- detail
WebhookTestEvent:
description: A `webhook.test` delivery (sent on request, by the test call).
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookTestData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- webhook.test
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookPropsGradedData:
description: '`props.graded` data: the first player prop results of a game are confirmed (`complete: false`), or all of them are (`complete: true`).'
properties:
complete:
description: True when every result of the game is confirmed.
type: boolean
confirmed_count:
format: double
type: number
event_id:
type: string
game_date:
description: The game's date (YYYY-MM-DD), or null.
type:
- string
- 'null'
pending_count:
format: double
type: number
results_path:
description: The path of the graded results (a GET with your key, Rookie and above), such as `/api/v1/mlb/props/results?game_id=...`.
type: string
sport:
type: string
type: object
x-owls-required:
- sport
- event_id
- game_date
- complete
- confirmed_count
- pending_count
- results_path
WebhookGameStartedEvent:
description: A `game.started` delivery.
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookGameData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- game.started
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookLineSide:
description: One side of a `line.moved` market.
properties:
point:
description: 'The line: this side''s spread, or the total. Absent on a moneyline.'
format: double
type: number
price:
description: American odds.
format: double
type: number
type: object
x-owls-required:
- price
WebhookTestData:
description: '`webhook.test` data.'
properties:
message:
type: string
type: object
x-owls-required:
- message
WebhookLineMarket:
description: The markets `line.moved` watches.
type: string
x-extensible-enum:
- moneyline
- spread
- total
WebhookLineMovedThresholds:
description: The endpoint's `line.moved` steps the move cleared.
properties:
point_step:
format: double
type: number
price_step_pp:
format: double
type: number
type: object
x-owls-required:
- price_step_pp
- point_step
WebhookPropsGradedEvent:
description: A `props.graded` delivery.
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookPropsGradedData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- props.graded
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookGameFinalEvent:
description: A `game.final` delivery.
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookGameData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- game.final
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookLineSides:
description: 'The sides of a `line.moved` market: `home`, `away` and, on a three-way market, `draw`
(moneyline); `home` and `away` (spread); `over` and `under` (total).'
properties:
away:
$ref: '#/components/schemas/WebhookLineSide'
draw:
$ref: '#/components/schemas/WebhookLineSide'
home:
$ref: '#/components/schemas/WebhookLineSide'
over:
$ref: '#/components/schemas/WebhookLineSide'
under:
$ref: '#/components/schemas/WebhookLineSide'
type: object
WebhookGameScore:
description: A game's score. For tennis, sets won.
properties:
away:
format: double
type: number
home:
format: double
type: number
type: object
x-owls-required:
- home
- away
WebhookEvFoundEvent:
description: An `ev.found` delivery.
properties:
api_version:
description: The payload version.
type: string
created:
description: When the event was created (ISO 8601).
type: string
data:
$ref: '#/components/schemas/WebhookEvFoundData'
endpoint_id:
description: The endpoint it was sent to, `whk_...`.
type: string
expires_at:
description: No delivery is attempted after this (ISO 8601).
type: string
id:
description: 'The event id, `evt_...`: identical on every retry and in the `Owls-Webhook-Id` header. Dedupe on it.'
type: string
occurred_at:
description: When what it reports happened, as far as is known (ISO 8601).
type: string
type:
description: The event type; a type added later arrives as a string this version does not list.
type: string
x-extensible-enum:
- ev.found
type: object
x-owls-required:
- type
- data
- id
- api_version
- created
- occurred_at
- expires_at
- endpoint_id
WebhookGameData:
description: '`game.started` and `game.final` data.'
properties:
away_team:
type: string
event_id:
description: The game's id in the live scores.
type: string
home_team:
type: string
league:
type:
- string
- 'null'
score:
anyOf:
- $ref: '#/components/schemas/WebhookGameScore'
- type: 'null'
description: Null when the scores show none.
sport:
type: string
start_time:
description: The start time (ISO 8601), or null.
type:
- string
- 'null'
status:
$ref: '#/components/schemas/WebhookGameStatus'
type: object
x-owls-required:
- sport
- event_id
- league
- home_team
- away_team
- start_time
- status
- score
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
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://artifacts.apis.io/owlsinsight-com/openapi/owlsinsight-com-owls-insight-api-api-openapi.yml