PrizePicks Scraper
Pricing
from $1.19 / 1,000 records
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
Maintained by CommunityActor 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
| Field | Description |
|---|---|
playerName / playerTeam / playerPosition | Player (or combo) identity and team |
league / leagueId | League name and PrizePicks league id |
statType / statDisplayName | The stat being projected (e.g. Points, Passing Yards) |
lineScore / flashSaleLineScore | The projection line and any discounted flash-sale line |
oddsType | standard, goblin (easier), or demon (harder) |
status / isLive | Game state (pre-game / in progress / final) and live flag |
startTime / boardTime / updatedAt | Event start time, when the line was posted, last update |
opponent / gameId / tvChannel | Matchup context and broadcast info |
projectionUrl | Deep link back to the projection in the PrizePicks app |
How to scrape PrizePicks player props
- Click Try for free (or Start) on the PrizePicks Scraper page.
- Leave
modeat its default (projections) for a quick 10-row sample, or setmode: "leagues"first to look up a specific league's id. - Raise
maxResults(e.g. to 1000) to pull the full board, and optionally narrow results withstatTypes,oddsType,status,promoOnly, orincludeLiveOnly. - Click Start and watch the run log — PrizePicks lines only take a US proxy warm-up plus one API call to appear.
- 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| mode | select | No | projections | projections (full board), league (one league), or leagues (catalog) |
| league | select | No | "" | League dropdown for league mode ("" = all leagues) |
| leagueName | string | No | "" | League name or numeric id; overrides the league dropdown |
| statTypes | array | No | [] | Keep only projections whose stat type matches one of these (substring, case-insensitive) |
| oddsType | select | No | "" | Keep only standard, goblin, or demon lines |
| status | select | No | "" | Keep only pre_game, in_progress, or final |
| promoOnly | boolean | No | false | Keep only flash-sale / promo lines |
| includeLiveOnly | boolean | No | false | Keep only live in-game projections |
| maxResults | integer | No | 10 | Upper bound on rows returned (kept low by default to keep first runs cheap — raise it for a full board pull) |
| perPage | integer | No | 1000 | JSON:API page size while paginating (advanced) |
| proxyConfiguration | object | No | RESIDENTIAL (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, andlineScoreacross 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
- 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.
- Responses are paginated automatically up to
maxResults. - Player, team, league, and stat-type details are joined onto each projection from the API's related records.
- Records are filtered by
statTypes,oddsType,status,promoOnly, andincludeLiveOnlybefore 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 ApifyClientclient = 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.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
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.
Is it legal to scrape PrizePicks?
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.
Related Actors
- Kalshi Scraper — Prediction Market API — event-contract prices from Kalshi's prediction markets
- Polymarket Leaderboard Scraper — top-trader leaderboard data from Polymarket
- StubHub Event Scraper — live sports and event listings from StubHub
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.