# FantasyPros NFL Scraper: Rankings & Projections (`getascraper/fantasypros-nfl-scraper`) Actor

Scrape FantasyPros NFL rankings, weekly projections, and ADP. Includes tier, ownership %, and bye week on rankings, free and anonymous, no account needed. Works entirely within the site's public limits. From $0.00035 per record.

- **URL**: https://apify.com/getascraper/fantasypros-nfl-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Sports, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.26 / 1,000 player records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## FantasyPros NFL Scraper: Rankings & Projections

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F0FDF4;border:1px solid #BBF7D0;border-top:4px solid #15803D;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Get tier, ownership, and bye week free, no account required</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull FantasyPros NFL rankings, weekly projections, and ADP with fields other scrapers say need a paid key.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#166534">🎁 Free fields, no key needed</span><br>
<span style="font-size:12px;color:#57534E">Tier, ownership percentage, and bye week on every rankings row, fully anonymous.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#166534">🏈 Three data types</span><br>
<span style="font-size:12px;color:#57534E">Rankings, weekly projections, and average draft position in one Actor.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#166534">🔓 Never needs an account</span><br>
<span style="font-size:12px;color:#57534E">No login, API key, or credential input anywhere. Works entirely within public access.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#166534">🎯 Filter by position and format</span><br>
<span style="font-size:12px;color:#57534E">QB, RB, WR, TE, K, DST, and PPR, Half PPR, or Standard scoring.</span>
</td>
</tr>
</table>

Draft prep, trade analysis, and waiver-wire research all lean on the same handful of numbers: consensus rank, tier, ownership, and how the experts project each player to perform. This Actor pulls all of it straight from [FantasyPros](https://www.fantasypros.com), including fields that show up locked behind a paid account on other scrapers, at no extra cost and with no sign-up required.

### 🚀 Why use it

**"I run a fantasy football podcast and need fresh rankings every week."** I want tier and ownership data without asking my listeners to buy me an API key.

**"I manage a dynasty league Discord."** I need consensus rankings I can pipe into a bot, with the standard deviation so I can flag where the experts actually disagree.

**"I'm building a draft assistant tool."** I need rankings, projections, and ADP from the same source so the numbers are internally consistent, not three different scrapers with three different player-ID schemes.

### 🧭 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F0FDF4;border:1px solid #BBF7D0;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#15803D;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick a data type</span><br>
<span style="font-size:12px;color:#57534E">Rankings, projections, or ADP, plus position and scoring-format filters.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0FDF4;border:1px solid #BBF7D0;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#15803D;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run the Actor</span><br>
<span style="font-size:12px;color:#57534E">No configuration needed. It works anonymously, every time.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0FDF4;border:1px solid #BBF7D0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#15803D;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get structured data</span><br>
<span style="font-size:12px;color:#57534E">Download clean records in JSON, CSV, or Excel from the Output tab.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `dataType` | enum | No | Which data to scrape: rankings, projections, or ADP. |
| `positions` | array (enum) | No | Only include these positions. Leave all selected for every position. |
| `scoringFormat` | enum | No | PPR, Half PPR, or Standard. Only affects RB/WR/TE data. |
| `week` | integer | No | NFL week number. Only used for projections. |
| `maxItems` | integer | No | Stop after this many records. 0 for no limit. |

### 📤 Output

```json
{
  "playerId": 19788,
  "playerName": "Ja'Marr Chase",
  "team": "CIN",
  "position": "WR",
  "dataType": "rankings",
  "scoringFormat": "PPR",
  "week": 1,
  "consensusRank": 1,
  "bestRank": 1,
  "worstRank": 4,
  "stdDev": 0.87,
  "tier": 1,
  "ownedPct": 99.8,
  "byeWeek": "6",
  "playerPageUrl": "https://www.fantasypros.com/nfl/players/jamarr-chase.php",
  "scrapedAt": "2026-08-30T06:48:19.631Z",
  "sourceUrl": "https://www.fantasypros.com/nfl/rankings/ppr-cheatsheets.php"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 🗃️ Data table

| Field | Type | Description |
|---|---|---|
| `playerName` | string | Player full name |
| `team` | string | NFL team abbreviation |
| `position` | string | QB, RB, WR, TE, K, or DST |
| `dataType` | string | rankings, projections, or adp |
| `consensusRank` | number | Expert consensus rank, rankings only |
| `tier` | number | Ranking tier, rankings only |
| `ownedPct` | number | Ownership percentage, rankings only |
| `byeWeek` | string | Bye week number |
| `projectedPoints` | number | Consensus projected fantasy points, projections only |
| `projectedStats` | object | Position-specific stat breakdown, projections only |
| `adpAvg` | number | Average draft position, ADP only |
| `adpBySource` | object | ADP by individual source, ADP only |

### 💰 Pricing

This Actor uses pay per event pricing: you're charged per record extracted, and nothing else. Empty runs cost nothing. There are no subscriptions and no minimum spend.

### ⭐ Enjoying FantasyPros NFL Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:5px solid #15803D;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">If this Actor saved you a paid FantasyPros subscription, that's worth 10 seconds of your time.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating helps other fantasy football builders, podcasters, and league managers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#15803D;border:1px solid #BBF7D0;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/fantasypros-nfl-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

**Does this Actor need a FantasyPros account or API key?**
No. It works entirely within the site's public, anonymous access, and there is no login or key input anywhere in the Actor.

**Why are projections and ADP limited to a small number of players?**
FantasyPros itself limits how much projections and ADP data is visible without a paid account (about 10 players per position for projections, about 5 for ADP). This Actor never pads or fakes the missing rows: the run log always states the real count returned.

**Does rankings have the same limit?**
No. Rankings return the full board every time, including tier, ownership percentage, and bye week, all for free.

**Is this legal?**
This Actor only extracts publicly available information already shown to any visitor of FantasyPros. Always review the target site's terms of service before using the data commercially.

### 🔗 Other actors

- [SofaScore Scraper](https://apify.com/getascraper/sofascore-live-events-scraper) ↗ - Live scores, stats, and fixtures across 13 sports.
- [ESPN News Monitor](https://apify.com/getascraper/espn-news-monitor) ↗ - Keyword alerts from ESPN's sports news feed.
- [Cricket Data API](https://apify.com/getascraper/espncricinfo-statsguru-scraper) ↗ - ESPNcricinfo StatsGuru career and match data export.

# Actor input Schema

## `dataType` (type: `string`):

Which FantasyPros data to scrape. Rankings return the full board with no anonymous limit; projections and ADP are capped by the site itself without a paid FantasyPros account.

## `positions` (type: `array`):

Only include these positions. Leave all selected for every position.

## `scoringFormat` (type: `string`):

NFL fantasy scoring format. Only affects RB/WR/TE data; QB, K, and DST scoring doesn't vary by format.

## `week` (type: `integer`):

NFL week number. Only used for projections; rankings and ADP are always season-long/draft boards.

## `maxItems` (type: `integer`):

Stop after this many records. Set to 0 for no limit. This is a ceiling, not a target: it cannot lift the site's own anonymous caps on projections (10 per position) or ADP (about 5).

## Actor input object example

```json
{
  "dataType": "rankings",
  "positions": [
    "QB",
    "RB",
    "WR",
    "TE",
    "K",
    "DST"
  ],
  "scoringFormat": "PPR",
  "week": 1,
  "maxItems": 0
}
```

# Actor output Schema

## `records` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "dataType": "rankings",
    "positions": [
        "QB",
        "RB",
        "WR",
        "TE",
        "K",
        "DST"
    ],
    "scoringFormat": "PPR",
    "week": 1,
    "maxItems": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/fantasypros-nfl-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "dataType": "rankings",
    "positions": [
        "QB",
        "RB",
        "WR",
        "TE",
        "K",
        "DST",
    ],
    "scoringFormat": "PPR",
    "week": 1,
    "maxItems": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/fantasypros-nfl-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dataType": "rankings",
  "positions": [
    "QB",
    "RB",
    "WR",
    "TE",
    "K",
    "DST"
  ],
  "scoringFormat": "PPR",
  "week": 1,
  "maxItems": 0
}' |
apify call getascraper/fantasypros-nfl-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/fantasypros-nfl-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OyaCxYRzbTRflFLuc/builds/oceHyWbKmaYs7I80l/openapi.json
