PFF APIpff.com ↗
Access PFF.com fantasy draft rankings, weekly positional rankings, NCAA schedules, game scores, and NFL season info via 5 structured endpoints.
What is the PFF API?
The PFF API provides 5 endpoints covering fantasy football draft and weekly rankings, college football schedules and scoring plays, and the current NFL week state. The get_fantasy_rankings endpoint returns full draft-board data including ADP from ESPN, tier groupings, and high/low/mid point projections per player. The get_fantasy_weekly_rankings endpoint breaks down weekly rankings by position with per-ranker projections and matchup context.
curl -X GET 'https://api.parse.bot/scraper/c1e87591-5624-4c85-9107-5ce188f3ebcb/get_fantasy_rankings?page=1&league_type=standard&scoring_type=REDRAFT_PPR' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace pff-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: PFF Football Data API — bounded, re-runnable; every call capped."""
from parse_apis.pff_football_data_api import PFF, Position, DraftScoringType, WeeklyScoringType, NotFoundError
pff = PFF()
# Get current NFL week info — no params needed
week_info = pff.nflweeks.current()
print(week_info.season, week_info.week_type, week_info.description)
# List top draft rankings with PPR scoring
for player in pff.draftplayers.list(scoring_type=DraftScoringType.REDRAFT_PPR, limit=5):
print(player.first_name, player.last_name, player.position, player.adp, player.tier)
# Drill into a single draft player's projection
top_pick = pff.draftplayers.list(scoring_type=DraftScoringType.REDRAFT_PPR, limit=1).first()
if top_pick:
print(top_pick.first_name, top_pick.last_name, top_pick.projection.points.high, top_pick.projection.points.low)
# List weekly QB rankings with PPR scoring
for qb in pff.weeklyplayers.list(position=Position.QB, scoring_type=WeeklyScoringType.PPR, limit=3):
print(qb.first_name, qb.last_name, qb.rank.current, qb.next_opponent_abbreviation)
# Typed error handling around a call
try:
for player in pff.weeklyplayers.list(position=Position.TE, limit=3):
print(player.first_name, player.last_name, player.rank.position)
except NotFoundError as exc:
print(f"not found: {exc}")
print("exercised: nflweeks.current / draftplayers.list / weeklyplayers.list")
Retrieve fantasy football draft rankings with ADP data, tier assignments, and point projections. Returns a full list of ranked players for the given scoring format. Each player includes team info, bye week, ADP from ESPN, tier grouping, and high/low/mid point projections. Paginated by page number.
| Param | Type | Description |
|---|---|---|
| page | integer | Pagination page number. |
| league_type | string | League format. Accepted value: 'standard'. |
| scoring_type | string | Scoring format for draft rankings. 'REDRAFT_PPR' populates ADP data; other values accepted but may null out ADP fields. |
{
"type": "object",
"fields": {
"rankings": "array of player objects with id, firstName, lastName, position, teamAbbreviation, rank, adp, tier, projection, and expertAnalysis"
},
"sample": {
"data": {
"rankings": [
{
"id": 122474,
"adp": 2.1,
"rank": {
"current": 1,
"position": 1,
"rankerName": "Nathan"
},
"tier": 1,
"byeWeek": 6,
"lastName": "Gibbs",
"playerId": 122474,
"position": "RB",
"teamCity": "Detroit",
"teamName": "Lions",
"firstName": "Jahmyr",
"projection": {
"points": {
"low": 240.57,
"mid": 343.26,
"high": 445.96
},
"position": {
"low": 1,
"mid": 1,
"high": 1
}
},
"adpPosition": 2,
"expertAnalysis": [],
"teamAbbreviation": "DET"
}
]
},
"status": "success"
}
}About the PFF API
Fantasy Football Rankings
The get_fantasy_rankings endpoint returns a paginated list of players ranked for the draft, each carrying rank, adp, tier, projection (with high, low, and mid values), and expertAnalysis. The scoring_type parameter controls the format; passing REDRAFT_PPR populates the adp field with ESPN ADP data — other values may return a null adp. The league_type parameter currently accepts standard.
get_fantasy_weekly_rankings filters by position (QB, RB, WR, TE, K, DST) and scoring_type (ppr). Each player object includes a matchup field with that week's opponent context and a rankers array that shows projections from individual analysts alongside the consensus rank. Useful for building weekly lineup tools or comparing analyst disagreement.
NCAA College Football
get_ncaa_schedule accepts a season year (e.g. 2024) and returns a weeks array. Each week contains a games array with slug, scores, status, franchise info for both sides, and betting lines. The game slug from this endpoint is the required input for get_ncaa_matchup.
get_ncaa_matchup requires a game_slug and expects matching season and week values sourced from get_ncaa_schedule. It returns a score object (home_score, away_score, status, quarter_description, stadium_name) and a play_by_play array of scoring plays, each with description, time_remaining, quarter_description, scoring_play details, and possession_side.
NFL Season State
get_nfl_current_week takes no parameters and returns three fields: season (the current NFL season year as an integer), weekType (REG or POST), and description (a human-readable label such as Week 1 or Super Bowl). It reflects the live NFL calendar and is useful for anchoring other requests to the current point in the season.
The PFF API is a managed, monitored endpoint for pff.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pff.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official pff.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a fantasy draft assistant that displays tiered player rankings with ADP and point projections by scoring format.
- Compare weekly analyst disagreement using the
rankersarray fromget_fantasy_weekly_rankingsto surface contrarian picks. - Power a college football scoreboard app using
get_ncaa_schedulefor game listings andget_ncaa_matchupfor live scoring play feeds. - Display betting lines alongside scores for NCAA games by reading the
betting_linesfield fromget_ncaa_schedule. - Sync a fantasy lineup tool to the correct NFL week automatically using
get_nfl_current_weekwithout hardcoding week numbers. - Filter weekly rankings by position (
DST,K, etc.) to build a specialized streaming or kicker recommendation tool.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does PFF have an official developer API?+
What does the `rankers` field in `get_fantasy_weekly_rankings` contain?+
rankers array includes individual analyst projections and ranks alongside the consensus. This lets you see how much each ranker deviates from the consensus for a given player at a given position, which is useful for identifying disagreement across experts.Are the `game_slug`, `season`, and `week` parameters in `get_ncaa_matchup` interchangeable with any values?+
game_slug must come from a get_ncaa_schedule response, and the season and week values must match the same schedule entry where that slug appears. Mixing slugs and seasons from different schedule calls will return incorrect or empty results.Does the API cover NFL game schedules or individual game scoring plays?+
get_nfl_current_week (season year, week type, and description) and NCAA game schedules and scoring plays, but does not include NFL game-level schedules or play-by-play. You can fork this API on Parse and revise it to add an NFL schedule or game detail endpoint.Does `get_fantasy_rankings` support scoring formats other than PPR?+
scoring_type parameter accepts values beyond REDRAFT_PPR, but only REDRAFT_PPR is documented to populate the adp field with ESPN ADP data. Other values are accepted but may return a null adp. Currently only standard is documented for league_type; formats like half-PPR or dynasty are not covered. You can fork the API on Parse and revise it to test and expose additional scoring format support.