DFS Player Props API — PrizePicks & Underdog
Pricing
from $0.07 / 1,000 player props
DFS Player Props API — PrizePicks & Underdog
Every player prop on PrizePicks and Underdog Fantasy in one table: player, team, stat, line, payout type, over and under prices with implied probability — plus a compare mode that pairs the same player and stat across both apps and shows which one asks for less. No login, no proxy.
Pricing
from $0.07 / 1,000 player props
Rating
5.0
(1)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
DFS Player Props API reads the PrizePicks and Underdog Fantasy boards and returns every player prop as one table: player, team, league, stat, line, payout type, and — where the app publishes them — the over and under prices with implied probabilities. No account, no cookies, no proxy, no browser.

Three modes: props (the full board), compare (the same player and stat on both apps, with the line difference), and leagues (what has an open board right now).
What is DFS Player Props API?
PrizePicks and Underdog are the two big pick'em apps: instead of betting against a sportsbook you say whether a player will go over or under a number. The number is the product, and the two apps rarely publish the same one — which is why anyone serious about pick'em keeps both open.
This Actor turns both boards into data, in one shape, so you can filter, sort, chart or feed them to a model.
What makes it different
A comparison that survives contact with the real boards. Joining the two apps on player and stat sounds trivial and produces nonsense, for two reasons this Actor handles explicitly:
- The apps abbreviate stats differently — "Rec Yards" against "Receiving Yards", "Recs" against "Receptions". Fuzzy matching happily equates "Rush+Rec Yds" with "Receiving Yards", so the names go through an explicit table instead.
- PrizePicks lists the same player and stat many times over: one standard line plus a ladder of demon (harder, pays more) and goblin (easier, pays less) lines. Only the standard line is comparable to Underdog's balanced line, so that is the one the comparison uses — and the row tells you how many alternates exist behind it.
Season-long and part-of-game boards (NFLSZN, NFL1H, MLBLIVE) are kept out of an unfiltered run for the same reason: they carry identical player and stat names and would pair a season total against a single game.
Fantasy points are deliberately left out of the comparison. Each app scores a game with its own formula, so their lines differ by a couple of points on every player. That is a difference of definition, not of opinion. The props mode still returns them.
What data does it return?
Props
| Field | Example |
|---|---|
platform, propId | prizepicks · 14636851 |
league, player, team, teamName, position | NFL · Rhamondre Stevenson · NE · New England Patriots · RB |
market, line | Rush Yards · 57.5 |
oddsType, pickType, allowedPicks | standard / demon / goblin · Single Stat · over |
overPrice, underPrice | +139 · −113 (Underdog) |
overDecimal, underDecimal, overImplied, underImplied | 2.39 · 1.88 · 41.8 · 53.2 |
overMultiplier, underMultiplier | 1.27 (Underdog payout multiplier) |
live, promo, status, gameId, opponent | false · false · pre_game · … |
startTime, updatedAt, image, url | ISO 8601 · … |
PrizePicks quotes a payout type rather than a price: standard is the plain line, a demon pays more for a harder number, a goblin pays less for an easier one. Underdog quotes American prices and a payout multiplier. On a single-app run the columns the other app owns are dropped rather than served empty.
Compare
One row per player and stat listed on both apps: prizePicksLine, underdogLine, lineDifference, easierOver (which app has the shorter line, and therefore the easier over), prizePicksAlternateLines, Underdog's prices, and the kick-off time.
How much does it cost?
Pay per row, and only for rows you actually get:
| Event | Price |
|---|---|
| Prop | $0.0001 |
| Comparison | $0.002 |
| League row | $0.0002 |
Error rows are never charged, and there is no charge for starting a run. Two public JSON APIs, no browser and no proxy, so platform usage is negligible.
| Job | Cost |
|---|---|
| 1,000 props across both apps | $0.10 |
| A full comparison of an NFL slate (≈50 pairs) | $0.10 |
| A 500-prop snapshot every hour for a day | $1.20 |
Other props Actors charge less per row but $0.01 to $0.05 for every run, which is the whole cost on a small pull. This one is priced per row only.
How to use it
- Choose 🎯 Apps — keep both for one table across the two boards.
- Choose 📋 What to get: props, compare, or the league list.
- Narrow with 🏆 Leagues, 🧍 Players or 📊 Stats — all partial matches.
- Click Start, then export as JSON, CSV or Excel, or read the dataset through the API.

⬇️ Input
{"platforms": ["prizepicks", "underdog"],"mode": "props","leagues": ["NFL"],"maxRows": 1000}
Line shopping across both apps
{ "mode": "compare", "maxRows": 200 }
One player, everything on the board
{ "mode": "props", "players": ["Mahomes"], "maxRows": 100 }
One stat across a league
{ "mode": "props", "leagues": ["NBA"], "markets": ["Points", "Rebounds"] }
⬆️ Output
{"type": "prop","platform": "underdog","propId": "91793ff7-a541-4948-a4b8-218cd3a5ae18","league": "NFL","player": "A.J. Brown","team": "NE","teamName": "New England Patriots","market": "Rush + Rec TDs","line": 0.5,"oddsType": "balanced","pickType": "Over/Under","overPrice": "+139","underPrice": "-181","overDecimal": 2.39,"underDecimal": 1.5525,"overImplied": 41.8,"underImplied": 64.4,"overMultiplier": 1.27,"startTime": "2026-09-10T00:20:00.000Z","url": "https://underdogfantasy.com/pick-em","scrapedAt": "2026-09-09T13:00:00.000Z"}
A board that fails to answer arrives as a type: "error" row with the reason, never as a silently short list.
Use cases
Line shopping
Run the compare mode before you build a slip and take the shorter line for an over, the longer one for an under.
Model inputs
Feed the board into your own projections and look for the stats where the apps are furthest from your number.
Tracking how lines move
Schedule the Actor and keep a history of a slate from board release to kick-off.
Content and newsletters
The compare table is a ready-made "where the apps disagree today" section.
AI agents
An agent asked "what's the line on Mahomes passing yards" runs the props mode with a player filter and reads line and platform off the rows.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/dfs-props-scraper).
Minimal input:
{ "mode": "props", "players": ["Mahomes"], "maxRows": 50 }
Behaviors an agent should know:
- PrizePicks has no prices. It publishes a payout type:
standard,demon(harder, pays more) orgoblin(easier, pays less). QuoteoddsType, never an implied probability, for PrizePicks rows. - Underdog has prices, American in
overPrice/underPrice, decimal and implied alongside. - One player and stat can appear several times on PrizePicks at different lines. The standard one is the board line; the rest are boosted alternates.
- In compare mode,
easierOvernames the app with the shorter line — the easier side for an over, and the harder one for an under. - Fantasy points are excluded from comparisons because the two apps score them differently.
- Without a league filter, PrizePicks boards are taken from the biggest ones down to
maxLeagues(three by default): the app rate-limits rapid requests and a single NFL board is several megabytes. Name a league to lift that. - Underdog's search endpoint returns at most 100 lines per sport and ignores paging, so its side is the top of each sport's board rather than all of it.
- Both boards are public: no key, no account, no proxy.
PrizePicks API and Underdog API without a login
Both apps serve their boards as JSON. PrizePicks answers 403 to a filtered request on its main host and 429 to bursts, so this Actor uses the partner host, spaces its requests and retries a rate limit slowly instead of hammering it. Underdog's payload keeps lines, appearances, players, teams and games in separate lists that have to be stitched back together by id.
❓ FAQ
Is this gambling advice?
No. It reads public board data and returns it as a table. It places no entries and gives no picks.
Why do PrizePicks and Underdog show different numbers for the same player?
Different projection models, different customer bases and different payout structures. That gap is exactly what the compare mode is for.
What are demon and goblin lines?
PrizePicks' boosted alternates: a demon is a harder number that pays more, a goblin an easier one that pays less. Both sit on the same player and stat as the standard line.
Do I need an account on either app?
No. The endpoints used here are public and read-only.
How fresh are the numbers?
Live at the moment of the run. Boards move all day, so schedule the Actor if you want a history.
Can I use it with the Apify API or an MCP server?
Yes. It runs from the API and the official clients, and AI agents reach it through the Apify MCP server without extra setup.
Your feedback
Missing an app or a stat mapping? Open an issue on the Issues tab — every one gets answered.
You might also like
| Actor | What it does |
|---|---|
| Sports Betting Odds API | Bookmaker lines, arbitrage and value bets |
| Sports Injury Report API | Who is out, questionable or probable |
| Kalshi Scraper & API | Prediction market odds on anything |
| Sports Scores & Schedules API | Live scores and schedules for 33 leagues |
Also known as
People look for this Actor as a PrizePicks API, an Underdog Fantasy API, a DFS props scraper, player props data, pick'em lines, prop betting lines and a fantasy props feed.