PrizePicks Scraper avatar

PrizePicks Scraper

Pricing

from $1.19 / 1,000 records

Go to Apify Store
PrizePicks Scraper

PrizePicks Scraper

Scrape PrizePicks player props, projections, and lines for every active league via the live board API. Filter by league, stat type, and odds type.

Pricing

from $1.19 / 1,000 records

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

PrizePicks Scraper

PrizePicks Scraper extracts live player prop projections, lines, and odds from PrizePicks's daily fantasy sports board — every active league, every stat type, updated as the board moves.

Pull the full PrizePicks board or a single league, filter by stat type, odds type (standard, goblin, demon), game status, or promo/live-only lines — get clean, structured projection data ready for analysis, line tracking, or model building.

Copy to your AI assistant

Use the Apify Actor "parsebird/prizepicks-scraper" via the ApifyClient to scrape PrizePicks player-prop projections. Example: const client = new ApifyClient({ token: "YOUR_API_TOKEN" }); const run = await client.actor("parsebird/prizepicks-scraper").call({ mode: "projections", maxResults: 1000 }); const { items } = await client.dataset(run.defaultDatasetId).listItems(); Key inputs: mode (string, default "projections""projections" for the full board, "league" for one league, "leagues" to list every league id/name), league (string, dropdown league id, used with mode "league"), leagueName (string, league name or id, overrides league), statTypes (array of strings, substring filter e.g. ["Points","Assists"]), oddsType (string, "standard"/"goblin"/"demon"), status (string, "pre_game"/"in_progress"/"final"), promoOnly (boolean), includeLiveOnly (boolean), maxResults (integer, default 10 — raise it to pull more rows), perPage (integer, default 1000), proxyConfiguration (object, RESIDENTIAL US proxy enabled by default — required, PrizePicks blocks non-US traffic). Output fields per projection: projectionId, playerName, playerTeam, playerPosition, league, leagueId, statType, statDisplayName, lineScore, oddsType, status, isPromo, isLive, startTime, opponent, gameId, projectionUrl, scrapedAt. Full API reference: https://apify.com/parsebird/prizepicks-scraper/api. Get an API token at https://console.apify.com/settings/integrations.

What does PrizePicks Scraper do?

PrizePicks Scraper calls PrizePicks' own live board API to pull player prop projections the moment they're posted — no browser rendering, no manual copy-pasting from the app.

  • 🏀 Scrapes the full active board across every league PrizePicks currently offers lines for (NBA, NFL, MLB, NHL, WNBA, soccer, MMA, golf, tennis, and more)
  • 🎯 Scrapes a single league by id or name
  • 📋 Returns a league catalog (mode: "leagues") so you can discover every active league's id, name, and current projection count
  • 🔍 Filters by stat type (Points, Rebounds, Passing Yards, Kills, etc.), odds type (standard, goblin, demon), and game status (pre-game, in progress, final)
  • 🔥 Filters for promo / flash-sale lines or live in-game projections only
  • 📊 Returns player, team, position, jersey number, and combo-projection details alongside every line

Data fields you get from PrizePicks

FieldDescription
playerName / playerTeam / playerPositionPlayer (or combo) identity and team
league / leagueIdLeague name and PrizePicks league id
statType / statDisplayNameThe stat being projected (e.g. Points, Passing Yards)
lineScore / flashSaleLineScoreThe projection line and any discounted flash-sale line
oddsTypestandard, goblin (easier), or demon (harder)
status / isLiveGame state (pre-game / in progress / final) and live flag
startTime / boardTime / updatedAtEvent start time, when the line was posted, last update
opponent / gameId / tvChannelMatchup context and broadcast info
projectionUrlDeep link back to the projection in the PrizePicks app

How to scrape PrizePicks player props

  1. Click Try for free (or Start) on the PrizePicks Scraper page.
  2. Leave mode at its default (projections) for a quick 10-row sample, or set mode: "leagues" first to look up a specific league's id.
  3. Raise maxResults (e.g. to 1000) to pull the full board, and optionally narrow results with statTypes, oddsType, status, promoOnly, or includeLiveOnly.
  4. Click Start and watch the run log — PrizePicks lines only take a US proxy warm-up plus one API call to appear.
  5. Download the dataset as JSON, CSV, Excel, HTML, or XML, or pull it via the Apify API / ApifyClient straight into your own pipeline.

Input examples

Option A — Full active board. Leave mode at its default (projections) and raise maxResults to pull more than the default 10-row sample.

{
"mode": "projections",
"maxResults": 1000
}

Option B — One league, by dropdown or name. leagueName wins if both are set.

{
"mode": "league",
"league": "7",
"maxResults": 500
}
{
"mode": "league",
"leagueName": "EuroLeague",
"statTypes": ["Points", "Rebounds"],
"oddsType": "demon"
}

To discover league ids for leagues not in the dropdown (soccer competitions, esports, golf events, etc.), run mode: "leagues" first — it lists every active league with its id and current projection count.

Input parameters

ParameterTypeRequiredDefaultDescription
modeselectNoprojectionsprojections (full board), league (one league), or leagues (catalog)
leagueselectNo""League dropdown for league mode ("" = all leagues)
leagueNamestringNo""League name or numeric id; overrides the league dropdown
statTypesarrayNo[]Keep only projections whose stat type matches one of these (substring, case-insensitive)
oddsTypeselectNo""Keep only standard, goblin, or demon lines
statusselectNo""Keep only pre_game, in_progress, or final
promoOnlybooleanNofalseKeep only flash-sale / promo lines
includeLiveOnlybooleanNofalseKeep only live in-game projections
maxResultsintegerNo10Upper bound on rows returned (kept low by default to keep first runs cheap — raise it for a full board pull)
perPageintegerNo1000JSON:API page size while paginating (advanced)
proxyConfigurationobjectNoRESIDENTIAL (US)PrizePicks blocks non-US traffic — a US proxy is required

Output example

{
"_mode": "projections",
"projectionId": "13312345",
"playerName": "LeBron James",
"playerTeam": "LAL",
"playerPosition": "SF",
"league": "NBA",
"leagueId": 7,
"statType": "Points",
"statDisplayName": "Points",
"lineScore": 27.5,
"oddsType": "demon",
"projectionType": "Single Stat",
"status": "pre_game",
"isPromo": false,
"isLive": false,
"startTime": "2026-07-24T23:30:00.000-04:00",
"opponent": "LAL @ BOS",
"gameId": "NBA_2026_LALBOS",
"projectionUrl": "https://app.prizepicks.com/?projection=13312345",
"scrapedAt": "2026-07-24T18:20:11.031Z"
}

Download results as JSON, CSV, Excel, HTML, or XML from the Console, or fetch them straight from the Dataset API.

Use cases

  • Track player-prop lines across every league for a betting model or dashboard
  • Monitor line movement by comparing boardTime, updatedAt, and lineScore across scheduled runs
  • Build a goblin/demon odds tracker for a specific league or stat type
  • Feed flash-sale / promo lines into an alerting workflow
  • Pull live in-game projections for real-time tools

How it works

  1. The Actor opens PrizePicks' app in a proxied session to establish a valid board session, then calls the same live projections API the PrizePicks app itself uses.
  2. Responses are paginated automatically up to maxResults.
  3. Player, team, league, and stat-type details are joined onto each projection from the API's related records.
  4. Records are filtered by statTypes, oddsType, status, promoOnly, and includeLiveOnly before being pushed to the dataset.

API access, scheduling, and integrations

Run PrizePicks Scraper on a schedule (every few minutes, hourly, daily) directly from the Apify Console to track line movement over time, or call it programmatically via the Apify API and ApifyClient SDKs. It also connects to Make, Zapier, and other integrations so new projections can flow straight into a spreadsheet, database, or alert.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/prizepicks-scraper").call(run_input={
"mode": "projections",
"statTypes": ["Points", "Assists"],
"maxResults": 1000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["playerName"], item["statType"], item["lineScore"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('parsebird/prizepicks-scraper').call({
mode: 'league',
leagueName: 'NBA',
oddsType: 'demon',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

How much does it cost to scrape PrizePicks?

PrizePicks Scraper uses Pay-Per-Event (PPE) pricing — you only pay for projections actually returned, not for compute time.

EventFreeBronzeSilverGold
record-scraped (per 1,000)$1.79$1.49$1.29$1.19

The default run (maxResults: 10) costs a fraction of a cent so you can try it risk-free; scraping the full active board (roughly 1,000–3,000 projections depending on the day and season, set maxResults accordingly) typically costs under $5. Apify's subscription plans include monthly platform usage credits that apply toward this cost.

Scraping publicly accessible data is generally legal, and PrizePicks' projection board is publicly viewable to any visitor. This Actor only reads the same projection data PrizePicks already displays to the public — it does not access accounts, place picks, or bypass any paywall. You are responsible for using the scraped data in compliance with PrizePicks' terms of service and any applicable laws in your jurisdiction. See Apify's guide on the legality of web scraping for more detail.

FAQ

How fresh is the projection data? Every run pulls PrizePicks' live board at request time — there's no caching layer. Schedule repeated runs to track line movement over the day.

Can I get only goblin or demon lines? Yes. Set oddsType to goblin or demon to keep only that odds type, or leave it empty to keep all three.

Does this Actor work outside the US? The Actor itself runs on Apify's infrastructure with a US proxy enabled by default (PrizePicks blocks non-US traffic), so it works regardless of where you run it from.

Can I schedule recurring runs? Yes. Use Apify's built-in Scheduler to run this Actor every few minutes, hourly, or daily.

What if a league or stat type isn't in the dropdown? Run mode: "leagues" to get the full catalog of active league ids and names, then paste the id or name into leagueName.

I found a bug or have a feature request — where do I report it? Open an issue on the Actor's Issues tab in Apify Console — it's the fastest way to reach the maintainer.