FantasyPros NFL Projections & Rankings
Pricing
from $0.17 / 1,000 item extracteds
FantasyPros NFL Projections & Rankings
Export FantasyPros NFL projections, expert consensus rankings, ADP, tiers, teams, positions, and standard, half-PPR, or PPR scoring variants.
Pricing
from $0.17 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export FantasyPros NFL rankings, player projections, and average draft position (ADP) as clean JSON records.
Choose standard, half-PPR, or PPR scoring and filter the results to quarterback, running back, wide receiver, tight end, kicker, and defense.
Each run writes integration-ready player rows to the default Apify dataset.
What can this FantasyPros NFL scraper do?
- Export expert consensus rankings (ECR).
- Collect best, worst, average, and standard-deviation expert ranks.
- Preserve ranking tiers and position ranks.
- Export draft-season or weekly player projections.
- Preserve position-specific projected statistics.
- Export consensus and real-time ADP fields.
- Filter all result types by fantasy position.
- Select STD, half-PPR, or PPR scoring.
- Combine rankings, projections, and ADP in one run.
- Cap the total result count with
maxItems.
The Actor reads anonymous public FantasyPros pages. It does not require a FantasyPros account or API key.
Who is it for?
Fantasy football analysts
Refresh draft models without copying tables by hand.
Draft-tool builders
Feed normalized player IDs, positions, rankings, tiers, and ADP into a draft board or value-gap calculation.
League managers
Compare consensus rankings with market ADP before a draft.
Data teams
Schedule recurring runs and send the default dataset to a spreadsheet, warehouse, webhook, or custom pipeline.
Why use this Actor?
The output uses one stable player-record shape across three related FantasyPros datasets.
Rankings include expert spread and tiers, not only a single ordinal.
Projections preserve the source's position-specific stat columns in projectedStats and expose fantasy points separately.
ADP rows include consensus average and real-time movement when FantasyPros publishes them.
The implementation uses server-rendered data rather than a full browser, keeping runs fast and economical.
What data is extracted?
| Field | Meaning |
|---|---|
recordType | rankings, projections, or adp |
playerId | Stable FantasyPros player ID |
playerName | Player display name |
team | NFL team abbreviation when published |
position | QB, RB, WR, TE, K, or DST |
positionRank | Position rank such as WR1 |
scoringFormat | STD, HALF, or PPR |
season | Source season |
week | draft or a selected NFL week |
rank | Consensus or ADP ordinal |
rankBest / rankWorst | Best and worst expert rank |
rankAverage | Average expert rank |
rankStdDev | Expert rank standard deviation |
tier | FantasyPros ranking tier |
byeWeek | Published bye week |
ownershipPercent | Published average ownership |
adp | Consensus average draft position |
realtimeAdp | Real-time draft position when available |
realtimeDelta | Difference from consensus ADP |
fantasyPoints | Projected fantasy points |
projectedStats | Position-specific projection fields |
sourceUrl | Exact FantasyPros source page |
playerUrl | FantasyPros player page |
sourceUpdatedAt | Source update label when available |
scrapedAt | UTC extraction timestamp |
Fields that do not apply to a selected record type are omitted or null.
How to run the Actor
- Open the Actor in Apify Console.
- Select one or more data types.
- Select player positions.
- Choose STD, half-PPR, or PPR scoring.
- For projections, select full-season draft scope or a week.
- Set the maximum number of player rows.
- Click Start.
- Open the default dataset to preview or export the records.
The prefilled input exports PPR rankings and ADP for the four main offensive positions.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
dataTypes | string array | ['rankings'] | One or more of rankings, projections, and ADP |
positions | string array | all supported positions | Player positions to keep |
scoringFormat | string | PPR | STD, HALF, or PPR |
week | string | draft | Projection period: full season or week 1–18 |
season | integer | current | Optional historical ADP season from 2015 |
maxItems | integer | 100 | Maximum rows across all selected data types |
maxItems is a cap, not a promise that the source contains that many public rows.
Example input: PPR rankings
{"dataTypes": ["rankings"],"positions": ["QB", "RB", "WR", "TE"],"scoringFormat": "PPR","maxItems": 100}
Example input: weekly projections
{"dataTypes": ["projections"],"positions": ["QB", "RB"],"scoringFormat": "HALF","week": "1","maxItems": 80}
Example input: rankings plus ADP
{"dataTypes": ["rankings", "adp"],"positions": ["RB", "WR"],"scoringFormat": "PPR","maxItems": 250}
Output example
This abbreviated record comes from a real PPR rankings run:
{"recordType": "rankings","playerId": 19788,"playerName": "Ja'Marr Chase","team": "CIN","position": "WR","positionRank": "WR1","scoringFormat": "PPR","season": 2026,"week": "draft","rank": 1,"rankBest": 1,"rankWorst": 4,"rankAverage": 1.51,"rankStdDev": 0.91,"tier": 1,"byeWeek": 6,"sourceUrl": "https://www.fantasypros.com/nfl/rankings/ppr-cheatsheets.php"}
Projection records add fantasyPoints and a projectedStats object. ADP records add adp, realtimeAdp, and realtimeDelta.
How much does it cost to export FantasyPros NFL player data?
Pay-per-event pricing has two parts:
- $0.00004 per run for the
startevent. - A tiered
itemevent for each saved player record.
| Plan | Price per player record |
|---|---|
| Free | $0.0003312 |
| Bronze | $0.000288 |
| Silver | $0.00022464 |
| Gold | $0.0001728 |
| Platinum | $0.0001152 |
| Diamond | $0.00008064 |
At Bronze rates, 100 player rows cost about $0.02884 including the run start. Five hundred rows cost about $0.14404. One thousand rows cost about $0.28804.
Apify displays the applicable subscription tier before a run. Failed or rejected rows are not charged as item events.
Schedule recurring ranking refreshes
Create an Apify Schedule for daily, weekly, or draft-day refreshes.
Keep the same input to make dataset snapshots directly comparable.
For change detection, connect the run to a webhook or automation that compares playerId, recordType, rank, tier, adp, and scrapedAt with the previous export.
The Actor returns current source snapshots; it does not store or calculate history itself.
Build a ranking-versus-ADP model
Select both rankings and adp with the same scoring format.
Join rows by playerId.
A large positive difference between ADP and consensus rank can identify a player available later than expert opinion suggests.
Use rankBest, rankWorst, and rankStdDev to separate strong consensus from uncertain players.
Export to spreadsheets and data pipelines
Use the dataset's CSV, Excel, JSON, XML, RSS, or JSONL export endpoints.
Apify integrations can forward completed runs to Google Sheets, Make, Zapier, Slack, webhooks, or cloud storage.
For a warehouse workflow, request dataset items through the Apify API after the run succeeds.
Run through the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~fantasypros-nfl-projections-rankings/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"dataTypes":["rankings","adp"],"positions":["RB","WR"],"scoringFormat":"PPR","maxItems":100}'
To wait for results in one request, use the run-sync-get-dataset-items endpoint for small jobs.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/fantasypros-nfl-projections-rankings').call({dataTypes: ['projections'],positions: ['QB'],scoringFormat: 'STD',week: 'draft',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/fantasypros-nfl-projections-rankings').call(run_input={'dataTypes': ['rankings'],'positions': ['QB', 'RB', 'WR', 'TE'],'scoringFormat': 'HALF','maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/fantasypros-nfl-projections-rankings"
Claude Desktop, Cursor, and VS Code setup
Use this same MCP configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/fantasypros-nfl-projections-rankings"}}}
Example prompts:
- “Export the top 100 FantasyPros half-PPR NFL rankings.”
- “Get current full-season QB projections and summarize projected rushing upside.”
- “Fetch PPR rankings and ADP, then flag the largest rank-versus-ADP gaps.”
Reliability, retries, and failures
The Actor makes direct anonymous HTTP requests and retries transient network, HTTP 429, and 5xx failures with bounded backoff.
Stable 4xx responses are not retried blindly.
A missing rankings object, ADP report, or projection table is treated as an upstream/parser failure rather than a successful empty result.
Malformed input fails before source requests start.
If no player matches the selected positions, the run fails clearly instead of silently returning an unexplained empty dataset.
Limits and source behavior
FantasyPros controls which seasons, weeks, player rows, expert sources, and real-time ADP fields are publicly available.
Historical season selection applies to ADP. Rankings and projections follow the live pages.
ADP can naturally expose fewer rows than rankings, especially for a season or scoring combination with limited current draft activity.
Projection stat keys vary by position. Read them from projectedStats rather than assuming quarterback and running-back columns are identical.
The Actor does not provide Draft Wizard simulations, personalized league sync, alerts, injuries, news, lineup optimization, or historical change storage.
Responsible use and legality
Use the Actor only for lawful purposes and respect FantasyPros terms, copyright, database rights, and applicable regulations.
Publicly accessible data can still be protected by contractual or intellectual-property rules.
Do not use the Actor to overload the source, bypass access controls, or republish protected content without permission.
You are responsible for deciding whether your intended use and retention policy are permitted.
FAQ
Why did I receive fewer rows than maxItems?
maxItems only limits output. The selected page may publish fewer matching players, particularly ADP or a narrow position/week.
Why is a field null or absent?
The field may not apply to that recordType, or FantasyPros may not publish it for that player and page.
Why did the run fail with an upstream error?
Check the run log and source URL. A temporary 429 or server error is retried automatically; a changed source structure fails explicitly so stale or malformed rows are not emitted.
Can I use several scoring formats in one run?
One run uses one scoring format. Create separate runs for STD, half-PPR, and PPR snapshots so each record has an unambiguous scoring context.
Does the Actor need a proxy?
No proxy is enabled by default. Current public FantasyPros data is reachable anonymously through direct HTTP.
Related automation-lab Actors
Combine this Actor with other automation-lab sports-data Actors when you need additional public sources. Search the automation-lab Store profile for current sports odds, player props, and fantasy-sports tools.
Related products are separate data sources; this Actor remains focused on FantasyPros NFL rankings, projections, and ADP.
Changelog
See the Actor changelog in Apify Console for user-visible release notes.