PrizePicks Scraper | Player Props, Lines and Projections avatar

PrizePicks Scraper | Player Props, Lines and Projections

Pricing

from $0.04 / 1,000 props

Go to Apify Store
PrizePicks Scraper | Player Props, Lines and Projections

PrizePicks Scraper | Player Props, Lines and Projections

PrizePicks scraper for player props: every line on the board for NFL, NBA, MLB, NHL, college, soccer, tennis, UFC, golf and esports, with standard, goblin and demon tiers, the standard line behind each alternate, players, teams, matchups and start times. 1,000 props in 7 seconds, 83 fields each.

Pricing

from $0.04 / 1,000 props

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 minutes ago

Last modified

Categories

Share

PrizePicks Scraper | Player Props, Lines, Goblins and Demons (2026)

1 league. 1,000 PrizePicks props. 83 fields per prop.

From SilentFlow. Creators of Pinterest Scraper and Leboncoin Scraper, with 420,000+ combined lifetime runs.

Every line on the PrizePicks board as one clean row: the player, the stat, the line, its tier (standard, goblin or demon) next to the standard line it comes from, the matchup, both teams and the start time. Pick a league, type the players and teams you follow, or paste the props you are tracking, and get a board you can sort, chart, compare with your projections or feed to a model. The default run returned 1,000 NFL lines on 10 Oct 2026, with no PrizePicks account.

Why choose this actor?

Copying PrizePicks lines into a spreadsheet one player card at a time before lock? Looking at a 309.5 demon and having to scroll back to find the standard line it is built on? Running a scraper that only takes "pick a league", when all you want is McDavid, the Celtics, or the twelve props your model flagged this morning?

  • 82 fields per line, with the standard line next to every goblin and demon. On the default run (NFL, 1,000 lines, 10 Oct 2026), 82 data fields carried a value on at least three rows in four, and 51 of them on every single row: the line and its tier, the standard line of the same player and stat, how far the line sits from it, how many lines PrizePicks offers on that stat, the player with position, jersey, headshot and team colors, the opponent and whether the player is at home, both teams of the game with names, cities, logos and colors, the start time, the slate day, the pick count when PrizePicks shows one, and the most-picked rank. The most used PrizePicks actor on the Store shows 77 keys in its output example.
  • Follow players and teams, not just leagues. The most used PrizePicks actor takes a league list and filter boxes; here the players and teams you type are the input itself, in any league, accents and case ignored. Connor McDavid and Celtics over the NHL and NBA boards returned 94 lines on 10 Oct 2026: McDavid's own props, the combo lines he shares with Draisaitl, MacKinnon or Eichel, and every prop of both teams in the Celtics' game. With no league picked, every open board is searched.
  • Track the exact props you care about. Paste PrizePicks prop IDs, or the url of a row from an earlier run, and only those lines come back with their current value and the time PrizePicks last changed them. Two IDs pasted on 10 Oct 2026 came back as exactly two rows from the NFL board, and the run stops as soon as every ID is found. Schedule it and you have a line-movement history of your own watchlist.

Try PrizePicks Scraper

Try your first PrizePicks board

Paste this input into the Input tab (JSON view) and press Start. It is the default input of the form: the NFL board, earliest kickoff first, up to 1,000 lines.

{
"leagues": ["NFL"],
"maxItems": 1000
}

The Apify Free plan is enough to run it and to try the actor on your own leagues, players and props: no credit card, no PrizePicks account, no setup. Each line becomes one row of the dataset, which you can export as JSON, CSV or Excel, open in Google Sheets, or read from the API. On 10 Oct 2026 this input returned 1,000 lines from the London game (Eagles at Jaguars), the Raiders at the Patriots and 13 cross-game combo lines: 199 standard lines, 256 goblins and 545 demons on 100 players. That day the full NFL board held 7,779 lines; raise maxItems to take all of them.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full context of this actor:

You have access to the PrizePicks Scraper on Apify: silentflow/prizepicks-scraper
It reads the public PrizePicks pick'em board (prizepicks.com): player props with their line and tier.
One dataset row per line (one PrizePicks "projection").
Input (no field is required; with no input it reads every league with props today, biggest board first):
- leagues (array of strings): PrizePicks league names, case and spaces ignored: "NFL", "NBA", "WNBA", "MLB",
"NHL", "CFB", "CBB", "SOCCER", "EPL", "La Liga", "TENNIS", "PGA", "UFC", "NASCAR", "F1", "CS2", "LoL",
"VAL", "Dota2", "COD", half and quarter boards such as "NFL1H", "NFL1Q", "NBA1Q", "NHL1P", any other league
PrizePicks shows, a league id ("9"), common names ("College Football", "Premier League", "golf", "MMA"),
"Esports" (every esports title with props today) or "all".
- keywords (array of strings): players or teams, e.g. ["Jalen Hurts", "Celtics", "PHI"]. Whole words, accents
ignored. A team keeps every line of its games, both sides. With no league, every open league is searched.
- maxItems (integer, default 1000): cap on rows.
- oddsTypes (array): "standard", "goblin" (easier line, lower payout), "demon" (harder line, higher payout).
- statTypes (array of strings): stat names or short forms, e.g. ["Pass Yards", "PRA", "Shots On Goal"].
- projectionIds (array of strings): PrizePicks prop ids ("15447593") or row urls
("https://app.prizepicks.com/?projection=15447593"). The run stops once all are found.
Filters combine (AND). Rows come sorted by start time, game, player and stat, standard line first.
Row (86 fields, absent values are null):
id, url, title, playerId, playerName,
league, leagueId, sport, statType, statDisplayName, line (number), oddsType, standardLine (number, the standard
line of the same player, stat, game and period), lineDifference (line minus standardLine), alternateLinesCount
(lines offered on that stat), projectionType, duration ("Full", "1st Half", "MAP 3"), eventType, description
(PrizePicks' label, usually the opponent), allowedWagerTypes ("over" or "under_or_over"), isPromo, flashSaleLine,
adjustedOdds, refundable, status ("pre_game", "in_progress"), isLive, inGame, isLiveScored, rank, groupKey,
statTypeId, statRank, projectionTypeId, durationId, leaguePpid, leagueImageUrl,
playerDisplayName, playerPosition, playerJerseyNumber, playerImageUrl, playerMarket, playerPpid, isCombo,
playerTeam, playerTeamName, playerTeamId, playerTeamPpid, playerTeamLogo, playerTeamPrimaryColor,
playerTeamSecondaryColor, playerTeamTertiaryColor (CSS hex),
opponent, isHome, matchup ("AWAY @ HOME"), gameId, gameExternalId, gameStatus, gameIsLive,
homeTeam, homeTeamName, homeTeamMarket, homeTeamId, homeTeamPpid, homeTeamLogo, homeTeamPrimaryColor,
homeTeamSecondaryColor, homeTeamTertiaryColor, and the same nine awayTeam fields,
trendingCount (picks, when PrizePicks shows it), trendingRank (1 to 20 on the league's most-picked list),
startTime, gameDate (slate day, US Eastern), boardTime, updatedAt, gameStartTime, gameCreatedAt, gameUpdatedAt
(RFC 3339 UTC), scrapedAt.
Use the apify-client package for Python or JavaScript:
client.actor("silentflow/prizepicks-scraper").call(run_input={...}), then read the run's default dataset.

How to scrape PrizePicks player props

Three inputs, from the simplest to the most targeted. Each one runs as is.

Get the NFL board for this week

{
"leagues": ["NFL"]
}

Every NFL line, earliest kickoff first, up to 1,000 lines with the default cap. On 10 Oct 2026 this returned 1,000 lines on 100 players in 7 seconds, from a board of 7,779. Add "maxItems": 10000 to take the whole board.

Follow your players and teams across leagues

{
"leagues": ["NHL", "NBA"],
"keywords": ["Connor McDavid", "Celtics"],
"maxItems": 100
}

Only the lines of these players and teams come back. On 10 Oct 2026 this returned 94 lines in 4 seconds: 21 on the NHL board (McDavid's props and his combo lines) and 73 on the NBA board (both teams of the Celtics' game). Leave leagues out and every board open that day is searched.

Pull only the standard lines of esports and tennis

{
"leagues": ["Esports", "Tennis"],
"oddsTypes": ["standard"],
"maxItems": 400
}

Esports reads every esports title with props that day. On 10 Oct 2026 this returned 286 standard lines from four boards (Counter-Strike 2, League of Legends, Dota 2 and tennis) in 2 seconds. Each esports line names its map (MAP 3 Kills) and the opposing team.

Input parameters

ParameterTypeDefaultWhat it does
leaguesarraynone (the form suggests NFL)The boards to read, in this order. Any league PrizePicks shows: NFL, NBA, MLB, NHL, CFB, SOCCER, EPL, La Liga, TENNIS, PGA, UFC, CS2, LoL, NFL1H and the rest, a league id, a common name (College Football, Premier League, golf, MMA), Esports or all. Empty: every league with props today, biggest board first.
keywordsarraynonePlayers or teams. Keeps the lines of those players, and every line of a team's games.
maxItemsinteger1000Cap on rows across all leagues.
oddsTypesarrayall threestandard, goblin, demon.
statTypesarrayall statsStat names as PrizePicks writes them, or their short form.
projectionIdsarraynonePrizePicks prop IDs or row links to track.

Formats accepted. League names ignore case, spaces and punctuation: la liga, LaLiga and La Liga are one league, nfl1h and NFL 1st Half are the same board. Players and teams match whole words with accents ignored: jokic finds Nikola Jokiฤ‡, cj stroud finds C.J. Stroud, and LA never finds Lamar. A team works by abbreviation (PHI), name (Eagles), city (Philadelphia) or both (Philadelphia Eagles). Stats match the long or the short name: Pts+Rebs+Asts and PRA are the same stat. A prop works as a bare ID (15447593) or as the url of a row. Lists can also be sent as one comma-separated text through the API. Entries that cannot be read are skipped and named in the log; the run stops only when nothing usable is left.

What gets combined. Leagues set where to look. Players, stats, tiers and prop IDs all narrow what comes back, and they add up: Jalen Hurts with Pass Yards and demon returns only Hurts' demon pass yards lines. A line reached through two leagues is delivered once.

What data can you extract from PrizePicks?

Each row holds 86 fields in seven groups:

  • Identity (5): id is PrizePicks' own ID of the line, stable for the life of the line; url opens the board on that prop; title reads the way the board shows it ("Jalen Hurts 186.5 Pass Yards", with the tier when it is a goblin or a demon); playerId and playerName.
  • The line (31): league, sport, stat (long and short name), the line itself, the tier in oddsType, the standardLine of the same player and stat in the same game and period, lineDifference (how far a goblin or demon sits from it, in stat units), alternateLinesCount (how many lines PrizePicks offers on that stat), the period in duration (full game, 1st half, 1st quarter, a single map), the board label, which side can be picked, promo and flash sale flags, the line's status, the live flags, the board rank and the IDs of the stat, period and league.
  • Player (15): display name, position, jersey number, headshot URL, city, PrizePicks player ID, the combo flag for lines shared by two or three players, and the player's team with abbreviation, name, ID, logo and three brand colors.
  • Game and teams (25): the opponent, isHome, the matchup ("PHI @ JAC"), the game's IDs, status and live flag, and both teams with abbreviation, name, city, ID, logo and three brand colors each.
  • Popularity (2): trendingCount, the number of picks when PrizePicks shows it, and trendingRank, the line's place on the league's most-picked list (1 to 20).
  • Time (7): startTime, boardTime (when the line went up), updatedAt (its last change), the game's start, creation and update times, all RFC 3339 in UTC, and gameDate, the slate day in US Eastern time.
  • Meta (1): scrapedAt, RFC 3339 in UTC.

On the default NFL run, 51 data fields were filled on every one of the 1,000 rows and 82 on at least three rows in four. What stays empty, and why: standardLine and lineDifference when PrizePicks offers only goblins or demons on a stat (563 of 801 alternate lines had a standard line that day); the team fields on combo lines that span two games; logos in leagues where PrizePicks shows none (the NHL) and team colors on tennis, UFC and esports boards; flashSaleLine outside flash sales.

Output example

One real row from the default run of 10 Oct 2026, unedited: a goblin line on Jalen Hurts' pass yards, 62 yards under his 186.5 standard line, one of nine lines PrizePicks offered on that stat.

{
"id": "15593990",
"url": "https://app.prizepicks.com/?projection=15593990",
"title": "Jalen Hurts 124.5 Pass Yards (Goblin)",
"playerId": "206300",
"playerName": "Jalen Hurts",
"league": "NFL",
"leagueId": "9",
"sport": "football",
"statType": "Pass Yards",
"statDisplayName": "Pass Yards",
"line": 124.5,
"oddsType": "goblin",
"standardLine": 186.5,
"lineDifference": -62,
"alternateLinesCount": 9,
"projectionType": "Single Stat",
"duration": "Full",
"eventType": "team",
"description": "JAC",
"allowedWagerTypes": "over",
"isPromo": false,
"flashSaleLine": null,
"adjustedOdds": true,
"refundable": true,
"status": "pre_game",
"isLive": false,
"inGame": false,
"isLiveScored": true,
"rank": 38,
"groupKey": "206300-16-NFL_game_NRPNB2llnfCR08oCxIv06jdH-11-false",
"statTypeId": "16",
"statRank": 0,
"projectionTypeId": "2",
"durationId": "11",
"leaguePpid": "NFL",
"leagueImageUrl": "https://static.prizepicks.com/images/leagues/production/30.svg",
"playerDisplayName": "Jalen Hurts",
"playerPosition": "QB",
"playerJerseyNumber": "1",
"playerImageUrl": "https://static.prizepicks.com/images/teams/nfl/NFL_team_ram7VKb86QoDRToIZOIN8rH/1.webp",
"playerMarket": "Philadelphia",
"playerPpid": "NFL_player_SyWsd7T30Oev84KlU0vKvQrU",
"isCombo": false,
"playerTeam": "PHI",
"playerTeamName": "Eagles",
"playerTeamId": "1188",
"playerTeamPpid": "NFL_team_ram7VKb86QoDRToIZOIN8rH",
"playerTeamLogo": "https://static.prizepicks.com/production/3o1k544apeemnwcv24pplo1b77fa-Philadelphia%20Eagles.png",
"playerTeamPrimaryColor": "#005c66",
"playerTeamSecondaryColor": "#6b7280",
"playerTeamTertiaryColor": "#334155",
"opponent": "JAC",
"isHome": false,
"matchup": "PHI @ JAC",
"gameId": "186656",
"gameExternalId": "NFL_game_NRPNB2llnfCR08oCxIv06jdH",
"gameStatus": "scheduled",
"gameIsLive": false,
"homeTeam": "JAC",
"homeTeamName": "Jaguars",
"homeTeamMarket": "Jacksonville",
"homeTeamId": "1380",
"homeTeamPpid": "NFL_team_JY0Z1Oeyi0naGwem9tIuuuvz",
"homeTeamLogo": "https://static.prizepicks.com/production/84brmkrz45uzmc4z1cxpw9ydomog-Jacksonville%20Jaguars.png",
"homeTeamPrimaryColor": "#005c66",
"homeTeamSecondaryColor": "#866013",
"homeTeamTertiaryColor": "#334155",
"awayTeam": "PHI",
"awayTeamName": "Eagles",
"awayTeamMarket": "Philadelphia",
"awayTeamId": "1188",
"awayTeamPpid": "NFL_team_ram7VKb86QoDRToIZOIN8rH",
"awayTeamLogo": "https://static.prizepicks.com/production/3o1k544apeemnwcv24pplo1b77fa-Philadelphia%20Eagles.png",
"awayTeamPrimaryColor": "#005c66",
"awayTeamSecondaryColor": "#6b7280",
"awayTeamTertiaryColor": "#334155",
"trendingCount": null,
"trendingRank": null,
"startTime": "2026-10-11T13:30:00Z",
"gameDate": "2026-10-11",
"boardTime": "2026-10-09T06:06:30Z",
"updatedAt": "2026-10-10T18:31:45Z",
"gameStartTime": "2026-10-11T13:30:00Z",
"gameCreatedAt": "2026-09-11T04:11:04Z",
"gameUpdatedAt": "2026-09-11T04:11:04Z",
"scrapedAt": "2026-10-10T18:38:08Z"
}

Advanced usage

Track line movement through the day

{
"leagues": ["NFL"],
"keywords": ["Jalen Hurts"],
"statTypes": ["Pass Yards"]
}

Schedule this every hour from the Schedules tab and compare runs on playerId, statType and oddsType, with updatedAt telling you when PrizePicks last changed each line. Lines do move: between two reads of 10 Oct 2026 less than an hour apart, Hurts' pass yards ladder changed, with the 209.5 demon replaced by a 206.5 one and a new 124.5 goblin at the bottom (both with new IDs), while the 186.5 standard line held.

Watch the props your model flagged this morning

{
"leagues": ["NFL", "NBA"],
"projectionIds": [
"15447593",
"https://app.prizepicks.com/?projection=15471345"
]
}

Paste the IDs, or the url of rows from an earlier run, and only those lines come back with their current value. Naming their leagues makes the search shorter; the run stops as soon as every ID is found, and a line PrizePicks has taken down simply does not come back.

Build a goblin and demon ladder for one stat

{
"leagues": ["NFL"],
"statTypes": ["Rush Yards", "Receiving Yards"],
"maxItems": 3000
}

Group the rows by playerName and statType: each group is one ladder, sorted standard line first, then goblins and demons by line. lineDifference gives each rung's distance from the standard line, and alternateLinesCount how many rungs the player has, so you can see where PrizePicks stretches its lines furthest.

Pull the most-picked props of a slate

{
"leagues": ["NFL", "NBA", "NHL", "SOCCER"],
"maxItems": 30000
}

Filter the dataset on trendingRank to keep the lines PrizePicks lists as the most picked of each league (rank 1 is the most picked), with trendingCount for the number of picks. Useful for daily "most popular props" content and for fading the crowd.

Read every board open today

{
"leagues": ["all"],
"maxItems": 50000
}

Every league with props that day, biggest board first, including half and quarter boards, golf, motorsport, cricket, darts and esports. On 10 Oct 2026, 35 leagues had props, led by soccer (8,777 lines) and the NFL (7,779). Export to CSV and you have the whole PrizePicks board in one sheet.

FAQ

What is PrizePicks? PrizePicks is a daily fantasy sports app in the US where players pick More or Less on stat lines for real athletes, such as Jalen Hurts' pass yards or Connor McDavid's shots on goal, and combine two to six picks into one entry. This actor reads the lines it offers, which PrizePicks calls projections.

Do I need a PrizePicks account, or to be in the US? No. The actor reads the public board, with no login, and runs on Apify from wherever you are.

What are goblins and demons? They are alternate lines on the same stat. A goblin is set below the standard line and is easier to hit, for a lower payout; a demon is set above it and is harder, for a higher payout. Every goblin and demon row carries the standardLine it is built around and the lineDifference between the two, so a 124.5 goblin on a 186.5 standard line reads as 62 yards easier.

How fresh are the lines? Each run reads the board live, at the moment it runs. updatedAt is the time PrizePicks last changed the line and scrapedAt the time the row was read. Lines move through the day, so schedule the actor to keep a history.

How many lines can I get per run? There is no fixed limit: maxItems (1,000 by default) is the only cap. On 10 Oct 2026 the NFL board held 7,779 lines, the soccer board 8,777, and smaller boards such as tennis or esports a few hundred. Rows come league by league in the order you list them.

Can I search for a player without knowing the league? Yes. Type the name and leave leagues empty: every board open that day is searched. It is faster to name the league when you know it, since each league is one board to read.

Do filters combine? Yes, they all narrow the same rows. "keywords": ["Jalen Hurts"] with "statTypes": ["Pass Yards"] and "oddsTypes": ["demon"] returns only Hurts' demon pass yards lines.

Why are some fields empty on some rows? Because PrizePicks does not have them for that line, never because a row was cut short. Combo lines that span two games have no single matchup; tennis, UFC and esports boards carry no team colors and the NHL board no team logos; standardLine is empty when PrizePicks offers only goblins or demons on a stat; trendingCount only appears on lines PrizePicks shows a pick count for. Absent values are null, never an empty string.

Are the IDs and links permanent? id is PrizePicks' own ID of the line. When PrizePicks swapped two of Jalen Hurts' alternate lines on 10 Oct 2026, the new lines came with new IDs, while the standard line kept its own; to follow a stat over time, compare on playerId, statType, oddsType and duration as well as id. playerId, gameId and team IDs stay the same from run to run, which makes joins with your own data easy. Image links (headshots, logos) point to PrizePicks' image server.

Which leagues are covered? Every league PrizePicks shows on its board: the NFL, NBA, WNBA, MLB, NHL, college football and basketball, soccer leagues, tennis, golf, UFC, boxing, NASCAR, Formula 1, cricket, darts, KBO, CFL, AFL, half, quarter and period boards, and esports titles such as Counter-Strike 2, League of Legends, Valorant and Dota 2. Seasonal leagues appear and disappear with the calendar; when a league you ask for has no props, the run says so and lists the leagues open that day.

Can I run it from my own code or an AI agent? Yes, through the Apify API or the apify-client package for Python and JavaScript, from Make, Zapier or n8n, or from an AI assistant using the block in "Copy to your AI assistant" above.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐Ÿ“ˆ Marketing

๐Ÿงฐ More tools

Support

Need something this scraper does not do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from PrizePicks: the lines shown on its public board, with the public names, teams and photos of professional athletes. It does not bypass any login, paywall, or CAPTCHA, and it reads no user account, entry or payout. Users are responsible for complying with PrizePicks' terms of service and applicable laws, including data protection rules (GDPR, CCPA, and PIPL where relevant) and the gaming rules of their own jurisdiction. The data returned is informational and is not betting advice; verify lines in the PrizePicks app before relying on them.

Built by SilentFlow for analysts, DFS players and sports data teams who want the PrizePicks board as data, not screenshots.