The Rundown V1 Lines API
Moneyline, spread, total, best-line endpoints (V1 legacy)
Documentation
Documentation
https://docs.therundown.io/introduction
Authentication
https://docs.therundown.io/authentication
Moneyline, spread, total, best-line endpoints (V1 legacy)
openapi: 3.0.3
info:
title: TheRundown Sports V1 Delta V1 Lines API
version: 2.0.0
description: 'Real-time and historical sports betting data, odds, lines, and statistics across major North American and international sports leagues.
## Authentication
All endpoints (except `/sports` and `/affiliates`) require authentication. Pass your API key using one of:
- **Query parameter**: `?key=YOUR_API_KEY`
- **Header**: `X-Therundown-Key: YOUR_API_KEY`
## Off-the-Board Sentinel Value
The value **0.0001** indicates a line is "off the board" — the sportsbook has temporarily removed pricing (e.g., pending injury news). This is NOT an error. Display as "Off Board" or "N/A" in your UI.
## Rate Limiting
Requests are rate-limited per API key tier. Check response headers for current limits.
## Data Updates
- Live odds update in real-time during games
- Use delta endpoints for efficient polling of changes
- WebSocket connections available for streaming updates
## V1 vs V2
V2 endpoints use market-based data structures (market_id, participants, line prices). V1 endpoints use legacy line-based structures (moneyline, spread, total objects). V2 is recommended for new integrations.
'
contact:
name: TheRundown API Support
url: https://therundown.io
email: support@therundown.io
termsOfService: https://therundown.io/terms
servers:
- url: https://therundown.io
description: Production
security:
- ApiKeyQuery: []
- ApiKeyHeader: []
tags:
- name: V1 Lines
description: Moneyline, spread, total, best-line endpoints (V1 legacy)
paths:
/api/v1/lines/best:
get:
operationId: v1GetBestLineMulti
tags:
- V1 Lines
summary: Get best lines for multiple events
parameters:
- name: event_ids
in: query
required: true
schema:
type: string
description: Comma-separated event IDs
- name: period
in: query
schema:
type: string
default: period_full_game
enum:
- period_full_game
- period_first_half
- period_second_half
- period_first_period
- period_second_period
- period_third_period
- period_fourth_period
- period_live_full_game
- period_live_first_half
- period_live_second_half
- period_live_first_period
- period_live_second_period
- period_live_third_period
- period_live_fourth_period
- $ref: '#/components/parameters/AffiliateIDsQuery'
responses:
'200':
description: Best lines keyed by event ID
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/schemas/BestLineResponse'
example:
09bfa53f8484a63e584398545c035932:
event_id: 09bfa53f8484a63e584398545c035932
moneyline:
moneyline_away: 155
moneyline_home: -170
best_affiliate_away:
affiliate_id: 23
affiliate_name: FanDuel
updated_at: '2026-02-12T00:10:00Z'
best_affiliate_home:
affiliate_id: 19
affiliate_name: DraftKings
updated_at: '2026-02-12T00:10:00Z'
spread:
point_spread_away: 4.5
point_spread_home: -4.5
point_spread_away_money: -105
point_spread_home_money: -108
best_affiliate_away:
affiliate_id: 3
affiliate_name: Pinnacle
updated_at: '2026-02-12T00:08:00Z'
best_affiliate_home:
affiliate_id: 23
affiliate_name: FanDuel
updated_at: '2026-02-12T00:10:00Z'
total:
total_over: 224.5
total_under: 224.5
total_over_money: -108
total_under_money: -105
best_affiliate_over:
affiliate_id: 19
affiliate_name: DraftKings
updated_at: '2026-02-12T00:10:00Z'
best_affiliate_under:
affiliate_id: 3
affiliate_name: Pinnacle
updated_at: '2026-02-12T00:08:00Z'
/api/v1/lines/{id}/moneyline:
get:
operationId: v1GetMoneylines
tags:
- V1 Lines
summary: Get moneylines for an event
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Event ID
- name: include
in: query
schema:
type: string
enum:
- all_periods
responses:
'200':
description: Moneylines
content:
application/json:
schema:
type: object
properties:
moneylines:
type: array
items:
$ref: '#/components/schemas/V1Moneyline'
example:
moneylines:
- affiliate_id: 4
moneyline_away: -105
moneyline_away_delta: 5
moneyline_home: -115
moneyline_home_delta: -5
moneyline_draw: 0.0001
date_updated: '2026-02-11T22:00:00Z'
- affiliate_id: 19
moneyline_away: -110
moneyline_away_delta: 0
moneyline_home: -110
moneyline_home_delta: 0
moneyline_draw: 0.0001
date_updated: '2026-02-11T21:30:00Z'
'404':
description: Not found
/api/v1/lines/{id}/spread:
get:
operationId: v1GetSpreads
tags:
- V1 Lines
summary: Get spreads for an event
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: include
in: query
schema:
type: string
enum:
- all_periods
responses:
'200':
description: Spreads
content:
application/json:
schema:
type: object
properties:
spreads:
type: array
items:
$ref: '#/components/schemas/V1Spread'
example:
spreads:
- affiliate_id: 4
point_spread_away: 1.5
point_spread_away_money: -110
point_spread_home: -1.5
point_spread_home_money: -110
date_updated: '2026-02-11T22:00:00Z'
- affiliate_id: 19
point_spread_away: 2
point_spread_away_money: -108
point_spread_home: -2
point_spread_home_money: -112
date_updated: '2026-02-11T21:30:00Z'
'404':
description: Not found
/api/v1/lines/{id}/total:
get:
operationId: v1GetTotals
tags:
- V1 Lines
summary: Get totals (over/under) for an event
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: include
in: query
schema:
type: string
enum:
- all_periods
responses:
'200':
description: Totals
content:
application/json:
schema:
type: object
properties:
totals:
type: array
items:
$ref: '#/components/schemas/V1Total'
example:
totals:
- affiliate_id: 4
total_over: 235.5
total_over_money: -110
total_under: 235.5
total_under_money: -110
date_updated: '2026-02-11T22:00:00Z'
- affiliate_id: 19
total_over: 234.5
total_over_money: -108
total_under: 234.5
total_under_money: -112
date_updated: '2026-02-11T21:30:00Z'
'404':
description: Not found
/api/v1/lines/{id}/team_total:
get:
operationId: v1GetTeamTotals
tags:
- V1 Lines
summary: Get team totals for an event
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: include
in: query
schema:
type: string
enum:
- all_periods
responses:
'200':
description: Team totals
content:
application/json:
schema:
type: object
example:
team_totals:
- affiliate_id: 4
team_total_away_over: 118.5
team_total_away_over_money: -110
team_total_away_under: 118.5
team_total_away_under_money: -110
team_total_home_over: 117
team_total_home_over_money: -110
team_total_home_under: 117
team_total_home_under_money: -110
date_updated: '2026-02-11T22:00:00Z'
components:
schemas:
V1Moneyline:
type: object
properties:
moneyline_away:
type: number
description: Away team moneyline. 0.0001 = off the board.
example: 150
moneyline_away_delta:
type: number
moneyline_home:
type: number
example: -180
moneyline_home_delta:
type: number
moneyline_draw:
type: number
description: Draw moneyline (soccer, UFC)
moneyline_draw_delta:
type: number
date_updated:
type: string
format: date-time
nullable: true
format:
type: string
example: American
BestLineResponse:
type: object
properties:
event_id:
type: string
moneyline:
$ref: '#/components/schemas/BestMoneyline'
spread:
$ref: '#/components/schemas/BestSpread'
total:
$ref: '#/components/schemas/BestTotal'
periods:
type: object
description: Period-specific best lines keyed by period name
additionalProperties:
type: object
properties:
moneyline:
$ref: '#/components/schemas/BestMoneyline'
spread:
$ref: '#/components/schemas/BestSpread'
total:
$ref: '#/components/schemas/BestTotal'
V1Spread:
type: object
properties:
point_spread_away:
type: number
example: 3.5
point_spread_away_delta:
type: number
point_spread_home:
type: number
example: -3.5
point_spread_home_delta:
type: number
point_spread_away_money:
type: number
example: -110
point_spread_away_money_delta:
type: number
point_spread_home_money:
type: number
example: -110
point_spread_home_money_delta:
type: number
date_updated:
type: string
format: date-time
nullable: true
format:
type: string
extended_spreads:
type: array
items:
$ref: '#/components/schemas/V1Spread'
BestAffiliateInfo:
type: object
properties:
affiliate_id:
type: integer
affiliate_name:
type: string
updated_at:
type: string
format: date-time
BestSpread:
type: object
properties:
point_spread_home:
type: number
nullable: true
point_spread_away:
type: number
nullable: true
point_spread_home_money:
type: number
nullable: true
point_spread_away_money:
type: number
nullable: true
best_affiliate_home:
$ref: '#/components/schemas/BestAffiliateInfo'
best_affiliate_away:
$ref: '#/components/schemas/BestAffiliateInfo'
BestMoneyline:
type: object
properties:
moneyline_home:
type: number
nullable: true
moneyline_away:
type: number
nullable: true
moneyline_draw:
type: number
nullable: true
best_affiliate_home:
$ref: '#/components/schemas/BestAffiliateInfo'
best_affiliate_away:
$ref: '#/components/schemas/BestAffiliateInfo'
best_affiliate_draw:
$ref: '#/components/schemas/BestAffiliateInfo'
V1Total:
type: object
properties:
total_over:
type: number
example: 47.5
total_over_delta:
type: number
total_under:
type: number
example: 47.5
total_under_delta:
type: number
total_over_money:
type: number
example: -110
total_over_money_delta:
type: number
total_under_money:
type: number
example: -110
total_under_money_delta:
type: number
date_updated:
type: string
format: date-time
nullable: true
format:
type: string
extended_totals:
type: array
items:
$ref: '#/components/schemas/V1Total'
BestTotal:
type: object
properties:
total_over:
type: number
nullable: true
total_under:
type: number
nullable: true
total_over_money:
type: number
nullable: true
total_under_money:
type: number
nullable: true
best_affiliate_over:
$ref: '#/components/schemas/BestAffiliateInfo'
best_affiliate_under:
$ref: '#/components/schemas/BestAffiliateInfo'
parameters:
AffiliateIDsQuery:
name: affiliate_ids
in: query
schema:
type: string
description: Comma-separated sportsbook/affiliate IDs to filter. Common values include DraftKings (19), FanDuel (23), BetMGM (22), Bovada (2), Pinnacle (3).
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: key
description: API key as query parameter
ApiKeyHeader:
type: apiKey
in: header
name: X-Therundown-Key
description: API key as request header