Underdog Fantasy Player Props API - Lines & Odds avatar

Underdog Fantasy Player Props API - Lines & Odds

Pricing

from $0.01 / 1,000 lines

Go to Apify Store
Underdog Fantasy Player Props API - Lines & Odds

Underdog Fantasy Player Props API - Lines & Odds

Scrape real-time player prop lines and odds from Underdog Fantasy API across 16 leagues. Get over/under lines, American and decimal odds, payout multipliers, player stats, team matchups, and game schedules. Filter by league, player name, stat type, or team. 45 fields per prop. JSON & CSV export.

Pricing

from $0.01 / 1,000 lines

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Underdog Fantasy Player Props Scraper — Real-Time Lines & Odds Across 16 Leagues

Key Highlight: 6,000+ player props in under 5 seconds — real-time over/under lines with American and decimal odds, 45 fields across 16 leagues.

Zen Studio Sports Betting   •  Real-time odds across every major sportsbook
 Underdog Props
➤ You are here
 PrizePicks Props
Projections and lines
 DraftKings Odds
Lines, props, SGP

Get every active player prop from Underdog Fantasy as structured JSON. Each result is one prop: a player, a stat, and an over/under line with both higher and lower odds.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

zen-studio/underdog-player-props on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/underdog-player-props").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: leagues (array, default ["NBA"], use ["All"] for all 16 leagues), playerNames (string, comma-separated partial match), statTypes (string, comma-separated), teams (string, comma-separated names or abbreviations). All filters optional, AND logic. Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~underdog-player-props/builds/default (Bearer TOKEN)inputSchema (JSON string, parse it), actorDefinition.storages.dataset.views.overview.transformation.fields (output field list), readme. 45 fields per result including American/decimal odds, payout multipliers, venue, weather, pitcher data. Get token: https://console.apify.com/account/integrations

How It Works

Three-step process:

  1. Pick your leagues
  2. Optionally filter by player, stat type, or team
  3. Get 45 fields per prop, ready to use

What Data Can You Extract?

Every result includes:

  • Player name, team, position (short + full), jersey number, country, headshot URL
  • Stat category with machine key and display name (points, Points)
  • Over/under line with American odds, decimal odds, and payout multipliers for both higher and lower
  • Line type (balanced, weighted), flash lines, alternate line availability
  • Game matchup with home/away teams, full team names, game start time
  • Season type, game status, venue details, weather conditions
  • MLB pitcher data: probable starting pitcher and throwing hand for both teams
  • Provider source, expiration time, live event status

Options Handling

Each prop has two sides: higher and lower. Instead of two rows per line, both options are embedded in a single row via higher_* / lower_* prefixed fields. One row = one complete prop with both sides.

How to Scrape Underdog Fantasy Player Props

Basic — NBA Props

{
"leagues": ["NBA"]
}

Multiple Leagues

{
"leagues": ["NBA", "MLB", "NHL"]
}

Filter by Player Name

{
"leagues": ["NBA"],
"playerNames": "LeBron, Curry, Randle"
}

Filter by Stat Type

{
"leagues": ["NBA"],
"statTypes": "Points, Rebounds, Assists"
}

Filter by Team

{
"leagues": ["NBA"],
"teams": "MIN, Lakers"
}

Combine Filters (AND logic)

{
"leagues": ["NBA"],
"statTypes": "Points",
"teams": "Timberwolves",
"playerNames": "Randle"
}

Everything at Once

{
"leagues": ["All"]
}

Input Parameters

ParameterTypeDefaultDescription
leaguesarray["NBA"]One or more leagues. Select "All" for every available league
playerNamesstringComma-separated player names. Case-insensitive, diacritic-insensitive (Jokic matches Jokić). Partial matching
statTypesstringComma-separated stat types. Accepts display names or machine keys (Points, points). Exact match, case-insensitive
teamsstringComma-separated team names or abbreviations (MIN, Timberwolves, Minnesota Timberwolves). Matches player's team or either side of matchup

All filters are optional and combine with AND logic. Filtered-out lines are not billed.

Supported Leagues

Major US Sports: NBA, MLB, NHL, NFL, WNBA, UFL

Golf: PGA

Individual Sports: Tennis, MMA

International: Soccer (FIFA), KBO (Korean Baseball), NPB (Japanese Baseball)

Esports: Counter-Strike, Valorant, League of Legends, Esports (Dota 2)

League availability varies daily based on scheduled events.

Stat Types by League

Pass these as comma-separated values in statTypes. Both machine key (points) and display name (Points) work.

NBA / WNBA: Points, Rebounds, Assists, 3-Pointers Made, Steals, Blocks, Turnovers, Pts + Rebs + Asts, Pts + Rebs, Pts + Asts, Rebs + Asts, Blks + Stls, Fantasy Points, Double-Double

MLB: Hits, Runs, RBIs, Home Runs, Total Bases, Stolen Bases, Walks, Strikeouts (Pitcher), Hits + Runs + RBIs, Earned Runs Allowed, Pitching Outs, Hits Allowed, Walks Allowed

NHL: Points, Goals, Assists, Shots On Goal, Blocked Shots, Saves, Power Play Points

Soccer (FIFA): Goals, Assists, Shots, Shots On Target, Passes, Tackles, Clearances, Saves

Tennis: Aces, Double Faults, Games Won, Sets Won, Tie Breaks

MMA: Significant Strikes, Takedowns

Esports: Kills, Deaths, Assists, Maps Won

Stat types vary daily based on scheduled games. Run once without a statTypes filter and inspect the stat_display field to see what's available.

Pricing — Pay Per Event (PPE)

$0.01 per 1,000 lines.

Cost Examples

What You FetchLinesCost
NBA (typical game day)~700~$0.012
NBA + MLB + NHL~4,500~$0.05
All 16 leagues~6,200~$0.07
NBA filtered to 1 player~10< $0.01

Monthly Estimates

Usage PatternMonthly Cost
NBA twice daily~$0.75
3 leagues twice daily~$3
NBA every 5 minutes~$3.50

Cost Optimization

  • Use leagues to fetch only the sports you need
  • Use statTypes to narrow to specific stats
  • Use teams to focus on specific matchups
  • Use playerNames to narrow to specific players

Filters combine with AND logic, and filtered-out lines are not billed.

Free tier: 5 lifetime runs, 50 results per run.

Output Example

Real result from the MLB board with all 45 fields:

{
"projection_id": "4d9eeecb-42c7-46bb-8463-62521b312df9",
"line": 1.5,
"stat": "hits_runs_rbis",
"stat_display": "Hits + Runs + RBIs",
"status": "active",
"is_live": false,
"flash_line": null,
"rank": 1101351010500,
"updated_at": "2026-04-07T07:17:21Z",
"player_name": "José Ramírez",
"player_team": "CLE",
"player_team_name": "Cleveland Guardians",
"player_position": "3B",
"player_position_full": "Third Baseman",
"player_country": null,
"player_image": "https://assets.underdogfantasy.com/player-images/mlb/20260403_04-17e633e5.png",
"player_jersey": "11",
"player_id": "92506501-2fd3-478f-a749-bcd02919ece8",
"league": "MLB",
"game_start": "2026-04-07T17:10:00Z",
"game_status": "scheduled",
"season_type": "regular",
"home_team": "CLE",
"away_team": "KC",
"home_team_name": "Cleveland Guardians",
"away_team_name": "Kansas City Royals",
"line_type": "balanced",
"live_event_stat": null,
"category": "player_prop",
"has_alternates": true,
"provider": "swish",
"expires_at": null,
"higher_american_odds": "-120",
"higher_decimal_odds": "1.84",
"higher_payout_multiplier": "1.0",
"lower_american_odds": "-114",
"lower_decimal_odds": "1.88",
"lower_payout_multiplier": "1.0",
"venue_name": "Progressive Field",
"venue_type": "outdoor",
"weather_condition": null,
"weather_temperature": null,
"home_pitcher": "G. Williams",
"away_pitcher": "N. Cameron",
"home_pitcher_hand": "RHP",
"away_pitcher_hand": "LHP"
}

PrizePicks Compatibility

Field names are aligned with the PrizePicks Player Props Scraper where fields overlap. Shared fields use identical names (player_name, stat, line, league, game_start, etc.), making it straightforward to merge datasets from both platforms for line comparison.

Scheduling

CadenceBest For
Once or twice dailyDaily picks newsletters, content creation
Every 1-4 hoursLine comparison tools, data collection
Every 2-5 minutesNear real-time monitoring, Discord bots

Data Export

Results are available in:

  • JSON — structured data for programmatic analysis
  • CSV — flat tables for spreadsheets
  • Excel — formatted data for reporting

Export directly from Apify Console or via API.

FAQ

How many props are typically available? Around 6,000-7,000 across all leagues. NBA alone has 700-800 depending on the game schedule.

How often do lines change? Lines update every few minutes. The updated_at field shows exactly when each prop was last changed.

What's the difference between higher and lower? Higher means the player exceeds the line. Lower means they fall short. Each side has its own American odds, decimal odds, and payout multiplier.

What does "balanced" vs other line types mean? Balanced means the odds are roughly equal on both sides. Other types indicate the book has weighted one side.

Does this work outside the US? Yes. The scraper uses a US residential proxy internally. You can run it from anywhere.

What happens if a league has no games today? Zero results for that league with an info message. No error, no charge.

Can I track line movements? Schedule the scraper to run periodically and compare line and odds values across runs using projection_id as the key.

What are flash lines? Flash lines (flash_line field) show the original line before a discount was applied. When non-null, the current line is a discounted value.

What are alternate lines? When has_alternates is true, Underdog offers additional lines at different values for the same player and stat. This scraper returns the primary line.

How does this compare to PrizePicks? Both actors output structured player props with compatible field names. Underdog includes American/decimal odds and payout multipliers per side. PrizePicks includes odds tiers (standard, demon, goblin) and durations.

What's the free tier? 5 lifetime runs, 50 results per run.

Are live event lines included? Pre-game lines only. Lines are pulled when games go live. Live lines require authentication and are not supported.

Support

  • Bugs: Issues tab
  • Features: Issues tab

Extracts publicly available data. Users must comply with Underdog Fantasy terms and data protection regulations (GDPR, CCPA).


Real-time player prop lines and odds from Underdog Fantasy across 16 leagues.