Documentation menu
nfl_fantasy_rankings
Pro tierFantasy rankings
PREFERRED for fantasy football ranking questions (expert consensus rankings / ECR, start-sit, draft and dynasty value). Three scopes: scope='draft' for preseason/dynasty/best-ball draft rankings, scope='week' for the current week's start/sit rankings, scope='history' for the 2019-present archive — use 'history' to see how consensus has MOVED on a player week over week, and pair it with nfl_role_trend to spot usage climbing before the rankings catch up. Lower ECR = ranked higher. 'draft' and 'week' reflect only the current publication; 'history' is seasonal and accepts season. Requires ff_rankings_draft / ff_rankings_week / ff_rankings_all datasets. Filter by player, position, team, or ranking_set.
- Minimum tier
- Pro
- Data coverage
- Varies by query
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
player | string | Optional | Player name — full ('Justin Jefferson') or short ('J.Jefferson') both accepted. |
gsis_id | string | Optional | Exact GSIS player ID; mutually exclusive with player and gsis_ids. |
gsis_ids | array | Optional | Up to 100 exact GSIS IDs, resolved through the exact crosswalk. |
position | string | Optional | Position filter (e.g. QB, RB, WR, TE, K, DST). |
team | string | Optional | Team abbreviation (e.g. KC, PHI). |
scope | string | Optional | draft = preseason/dynasty/best-ball rankings; week = current-week start/sit rankings; history = the 2019-present archive, for consensus trajectory (default: draft).Options: draft, week, historyDefault: draft |
season | integer | Optional | Season filter — only valid with scope='history' (draft and week expose only the current publication). |
ranking_set | string | Optional | Filter the ranking list/format (partial match). For draft: 'redraft', 'dynasty', 'best', or position-specific like 'redraft-rb'. For week: 'ppr', 'qb', etc. |
limit | integer | Optional | Max results (default 50, max 500).Default: 50 |
Example request
A Model Context Protocol tools/call over Streamable HTTP. Replace YOUR_API_KEY with a key from your dashboard.
curl -X POST https://mcp.nflmcp.com/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "nfl_fantasy_rankings",
"arguments": {
"position": "RB",
"scope": "draft",
"limit": 10
}
}
}'Example response
{
"fantasy_rankings": {
"dynasty-rb": [
{
"player": "Bijan Robinson",
"position": "RB",
"team": "ATL",
"ecr": 1,
"sd": 0,
"best": 1,
"worst": 1,
"bye": null,
"ranking_set": "dynasty-rb",
"ecr_type": "dp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 23133,
"gsis_id": null
},
{
"player": "Jahmyr Gibbs",
"position": "RB",
"team": "DET",
"ecr": 2,
"sd": 0,
"best": 2,
"worst": 2,
"bye": null,
"ranking_set": "dynasty-rb",
"ecr_type": "dp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 22968,
"gsis_id": null
}
],
"dynasty-rk": [
{
"player": "Jeremiyah Love",
"position": "RB",
"team": "FA",
"ecr": 1,
"sd": 0,
"best": 1,
"worst": 1,
"bye": null,
"ranking_set": "dynasty-rk",
"ecr_type": "drk",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 25403,
"gsis_id": null
}
],
"redraft-rb": [
{
"player": "Bijan Robinson",
"position": "RB",
"team": "ATL",
"ecr": 1.22,
"sd": 0.42,
"best": 1,
"worst": 2,
"bye": null,
"ranking_set": "redraft-rb",
"ecr_type": "rp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 23133,
"gsis_id": null
},
{
"player": "Jahmyr Gibbs",
"position": "RB",
"team": "DET",
"ecr": 1.78,
"sd": 0.42,
"best": 1,
"worst": 2,
"bye": null,
"ranking_set": "redraft-rb",
"ecr_type": "rp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 22968,
"gsis_id": null
},
{
"player": "Christian McCaffrey",
"position": "RB",
"team": "SF",
"ecr": 3.33,
"sd": 0.67,
"best": 3,
"worst": 5,
"bye": null,
"ranking_set": "redraft-rb",
"ecr_type": "rp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 16393,
"gsis_id": null
}
],
"best-rb": [
{
"player": "Bijan Robinson",
"position": "RB",
"team": "ATL",
"ecr": 1.53,
"sd": 0.62,
"best": 1,
"worst": 3,
"bye": 5,
"ranking_set": "best-rb",
"ecr_type": "bp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 23133,
"gsis_id": null
},
{
"player": "Jahmyr Gibbs",
"position": "RB",
"team": "DET",
"ecr": 2.33,
"sd": 0.6,
"best": 1,
"worst": 3,
"bye": 8,
"ranking_set": "best-rb",
"ecr_type": "bp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 22968,
"gsis_id": null
},
{
"player": "Saquon Barkley",
"position": "RB",
"team": "PHI",
"ecr": 2.53,
"sd": 1.31,
"best": 1,
"worst": 5,
"bye": 9,
"ranking_set": "best-rb",
"ecr_type": "bp",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 17240,
"gsis_id": null
}
],
"redraft-overall": [
{
"player": "Bijan Robinson",
"position": "RB",
"team": "ATL",
"ecr": 2.67,
"sd": 1.25,
"best": 2,
"worst": 5,
"bye": null,
"ranking_set": "redraft-overall",
"ecr_type": "ro",
"scrape_date": "2026-03-06",
"as_of_date": "2026-03-06",
"fantasypros_id": 23133,
"gsis_id": null
}
]
},
"scope": "draft",
"count": 10,
"snapshot": {
"as_of_date": "2026-03-06",
"historical": false
}
}