API Documentation
Everything you need to integrate PropLine into your app.
Quick Start
Get up and running in 30 seconds:
- Get your API key from the signup form
- Make your first request:
curl "https://api.prop-line.com/v1/sports?apiKey=YOUR_API_KEY"Authentication
Pass your API key via query parameter or header:
# Query parameter
curl "https://api.prop-line.com/v1/sports?apiKey=YOUR_API_KEY"
# Header
curl -H "X-API-Key: YOUR_API_KEY" "https://api.prop-line.com/v1/sports"Endpoints
Base URL: https://api.prop-line.com/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /sports | List available sports |
| GET | /sports/{sport}/events | List upcoming events |
| GET | /sports/{sport}/odds | Bulk odds (game lines) |
| GET | /sports/{sport}/events/{id}/odds | Event odds + player props |
| GET | /sports/{sport}/scores | Game scores & status |
| GET | /sports/{sport}/events/{id}/results | Resolved prop outcomes (Pro) |
| GET | /sports/{sport}/events/{id}/stats | Raw player/team stats from box scores |
List Sports
GET /v1/sportsReturns all available sports with their current status.
Response:
[
{
"key": "baseball_mlb",
"title": "MLB",
"active": true
}
]List Events
GET /v1/sports/{sport_key}/eventsReturns upcoming events for a sport. No odds included (use the odds endpoint for that).
Response:
[
{
"id": "10",
"sport_key": "baseball_mlb",
"home_team": "Colorado Rockies",
"away_team": "Philadelphia Phillies",
"commence_time": "2026-04-05T19:10:00Z"
}
]Get Odds (Bulk)
GET /v1/sports/{sport_key}/odds?markets=h2h,spreads,totalsReturns odds for all upcoming events. Use the markets parameter to filter by market type (comma-separated).
Player Props (Per Event)
GET /v1/sports/{sport_key}/events/{event_id}/odds
?markets=pitcher_strikeouts,batter_hits,batter_home_runsThis is the primary endpoint for player props. Pass one or more prop market keys via the markets parameter.
Response:
{
"id": "10",
"sport_key": "baseball_mlb",
"home_team": "Colorado Rockies",
"away_team": "Philadelphia Phillies",
"commence_time": "2026-04-05T19:10:00Z",
"bookmakers": [{
"key": "bovada",
"title": "Bovada",
"markets": [{
"key": "pitcher_strikeouts",
"last_update": "2026-04-05T18:46:30Z",
"outcomes": [
{
"name": "Over",
"description": "Zack Wheeler",
"price": -130,
"point": 6.5
},
{
"name": "Under",
"description": "Zack Wheeler",
"price": 100,
"point": 6.5
}
]
}]
}]
}Game Scores
GET /v1/sports/{sport_key}/scores?days_from=3Returns game scores and status for recent events. Free tier. Use days_from to control how many days back to include (default: 3).
Response:
[
{
"id": "16",
"sport_key": "baseball_mlb",
"home_team": "Detroit Tigers",
"away_team": "St. Louis Cardinals",
"commence_time": "2026-04-05T23:20:00Z",
"status": "final",
"home_score": 3,
"away_score": 5
}
]Prop Results (Pro)
GET /v1/sports/{sport_key}/events/{event_id}/results
?markets=pitcher_strikeouts,batter_hitsReturns resolved prop outcomes with actual player stats. Pro tier only. Each outcome includes whether it won, lost, or pushed, plus the actual stat value.
Response:
{
"id": "16",
"sport_key": "baseball_mlb",
"home_team": "Detroit Tigers",
"away_team": "St. Louis Cardinals",
"status": "final",
"home_score": 3,
"away_score": 5,
"markets": [{
"key": "pitcher_strikeouts",
"description": "Total Strikeouts - Tarik Skubal (DET)",
"outcomes": [
{
"name": "Over",
"description": "Tarik Skubal (DET)",
"price": -150,
"point": 6.5,
"resolution": "won",
"actual_value": 7.0,
"resolved_at": "2026-04-06T03:15:00Z"
},
{
"name": "Under",
"description": "Tarik Skubal (DET)",
"price": 120,
"point": 6.5,
"resolution": "lost",
"actual_value": 7.0,
"resolved_at": "2026-04-06T03:15:00Z"
}
]
}]
}Resolution values: won, lost, push, void (player scratched)
Player Stats
GET /v1/sports/{sport_key}/events/{event_id}/statsReturns raw player and team stats from official box scores. This data is book-agnostic — use it to resolve props from any sportsbook, build your own models, or power research dashboards. Free tier.
Response:
{
"id": "16",
"sport_key": "baseball_mlb",
"home_team": "Detroit Tigers",
"away_team": "St. Louis Cardinals",
"status": "final",
"home_score": 3,
"away_score": 5,
"players": [
{
"name": "Tarik Skubal",
"team": "Detroit Tigers",
"stats": {
"strikeouts": 7,
"earned_runs": 2,
"hits_allowed": 5,
"innings_pitched": 6.0
}
},
{
"name": "Masyn Winn",
"team": "St. Louis Cardinals",
"stats": {
"hits": 2,
"home_runs": 1,
"rbis": 3,
"total_bases": 5
}
}
]
}Stats are sourced from official league APIs (MLB, NBA, NHL, NCAAB, ESPN) and are available once a game reaches final status. Use this endpoint alongside odds from any sportsbook to build your own prop resolution engine.
Available Markets
| Market Key | Description | Sport |
|---|---|---|
| h2h | Moneyline | All |
| spreads | Point Spread / Run Line | All |
| totals | Over/Under (Game Total) | All |
| pitcher_strikeouts | Pitcher Total Strikeouts | MLB |
| pitcher_earned_runs | Pitcher Earned Runs Allowed | MLB |
| pitcher_hits_allowed | Pitcher Hits Allowed | MLB |
| batter_hits | Batter Total Hits | MLB |
| batter_home_runs | Batter Home Runs | MLB |
| batter_rbis | Batter RBIs | MLB |
| batter_total_bases | Batter Total Bases | MLB |
| batter_stolen_bases | Batter Stolen Bases | MLB |
| batter_walks | Batter Walks | MLB |
| batter_singles | Batter Singles | MLB |
| batter_doubles | Batter Doubles | MLB |
| batter_runs | Batter Runs Scored | MLB |
| player_points | Player Total Points | NBA |
| player_rebounds | Player Rebounds | NBA |
| player_assists | Player Assists | NBA |
| player_threes | Player Three-Pointers Made | NBA |
| player_steals | Player Steals | NBA |
| player_blocks | Player Blocks | NBA |
| player_turnovers | Player Turnovers | NBA |
| player_points_rebounds_assists | Points + Rebounds + Assists | NBA |
| player_double_double | Player Double-Double | NBA |
| player_goals | Player Goals | NHL |
| player_shots_on_goal | Player Shots on Goal | NHL |
| goalie_saves | Goalie Saves | NHL |
| player_blocked_shots | Player Blocked Shots | NHL |
| anytime_goal_scorer | Anytime Goal Scorer | Soccer |
| first_goal_scorer | First Goal Scorer | Soccer |
| both_teams_to_score | Both Teams to Score | Soccer |
| double_chance | Double Chance | Soccer |
| draw_no_bet | Draw No Bet | Soccer |
| correct_score | Correct Score | Soccer |
| total_corners | Total Corners | Soccer |
| total_cards | Total Cards | Soccer |
| total_rounds | Total Rounds | UFC / Boxing |
| fight_distance | Fight Goes the Distance | UFC / Boxing |
| round_betting | Round Betting | UFC |
| fight_winner | Fight Winner | Boxing |
| fight_outcome | Fight Outcome (KO/TKO/Decision) | Boxing |
Error Codes
| Status | Description |
|---|---|
| 401 | Missing or invalid API key |
| 404 | Sport or event not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |