FantasyPros APIfantasypros.com ↗
Access FantasyPros ECR rankings, season projections, ADP, injury reports, and player news across all scoring formats via a single structured API.
What is the FantasyPros API?
The FantasyPros API covers 7 endpoints that expose Expert Consensus Rankings, season-long stat projections, injury reports, ADP data, and player news from FantasyPros. The get_rankings endpoint returns ECR position, tier, positional rank, and min/max/avg rank across all included experts for every scoring format. Player-level detail is available through get_player_details, which returns consensus rankings across formats alongside recent news and expert advice.
curl -X GET 'https://api.parse.bot/scraper/09ed5696-9130-427d-89bd-1ddd1f566647/get_rankings?scoring=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 fantasypros-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.
"""FantasyPros Football SDK — rankings, projections, injuries, news, ADP."""
from parse_apis.fantasypros_football_api import (
FantasyPros, Scoring, Position, AdpFormat, PlayerNotFound
)
client = FantasyPros()
# Get top ECR rankings in PPR scoring — limit caps total items fetched.
for ranking in client.rankings.list(scoring=Scoring.PPR, limit=5):
print(ranking.player_name, ranking.pos_rank, f"Tier {ranking.tier}")
# Get QB projections — each Projection carries position-specific stat columns.
qb = client.projections.list(position=Position.QB, limit=1).first()
if qb:
print(f"Top QB projection: {qb.Player}, {qb.FPTS} FPTS")
# Browse ADP for value picks in standard scoring.
for entry in client.adpentries.list(format=AdpFormat.STANDARD, limit=3):
print(entry.Rank, entry.POS, entry.AVG)
# Search for a player, then drill into their detail page.
result = client.playersummaries.search(query="mahomes", limit=1).first()
if result:
player = result.details()
print(player.name)
for cr in player.consensus_rankings:
print(f" {cr.Type}: ECR {cr.ECR}, Best {cr.Best}, Worst {cr.Worst}")
# Typed error handling: catch PlayerNotFound on an invalid slug.
try:
client.playersummaries.search(query="zzzznotaplayerzzz", limit=1).first()
except PlayerNotFound as exc:
print(f"Not found: {exc}")
# Latest news headlines with fantasy impact.
for item in client.newsitems.list(limit=3):
print(item.title, item.impact)
print("Exercised: rankings.list, projections.list, adpentries.list, playersummaries.search, details, newsitems.list")
Get Expert Consensus Rankings (ECR) for a scoring format. Returns all ranked players with ECR position, tier, positional rank, and expert agreement metrics. Paginates as a single page. Each player includes rank_ecr, pos_rank, tier, and min/max/avg rank across experts.
| Param | Type | Description |
|---|---|---|
| scoring | string | Scoring format for rankings. |
{
"type": "object",
"fields": {
"year": "string, NFL season year",
"count": "integer, total number of ranked players",
"sport": "string, always NFL",
"players": "array of Ranking objects",
"scoring": "string, scoring format label",
"total_experts": "integer, number of experts included"
},
"sample": {
"data": {
"year": "2026",
"count": 469,
"sport": "NFL",
"players": [
{
"tier": 1,
"pos_rank": "WR1",
"rank_ave": "1.32",
"rank_ecr": 1,
"rank_max": "4",
"rank_min": "1",
"player_id": 19788,
"player_name": "Ja'Marr Chase",
"player_team_id": "CIN",
"player_position_id": "WR"
}
],
"scoring": "PPR",
"total_experts": 43
},
"status": "success"
}
}About the FantasyPros API
Rankings and Projections
The get_rankings endpoint accepts a scoring parameter and returns an array of Ranking objects. Each object includes rank_ecr, pos_rank, tier, and the spread of expert opinions via min, max, and avg rank values. The response envelope also carries total_experts so you know the sample size behind any consensus figure. The get_projections endpoint is position-scoped via the position parameter; stat columns shift by position — passing yards and TD columns for QBs, receiving stats for WRs and TEs — letting you work with the schema that matches the position you're analyzing.
ADP and Draft Preparation
get_adp returns players sorted by average draft position for a chosen format. Each AdpEntry object carries draft-position data that can be cross-referenced against ECR from get_rankings to surface over- or under-drafted players. search_players accepts a query string and returns matching players with player_id, team, eligibility, and a link field. The last path segment of that link (minus the .php extension) is the slug required by get_player_details.
Injuries and News
get_injuries takes week and year parameters — week accepts draft, 1 through 18 — and returns injury status, practice participation details, and probability-of-playing figures for every player carrying an active designation. get_player_news needs no parameters and returns a flat array of recent news items with titles, source links, publication dates, content summaries, and expert fantasy impact assessments, useful for automated alerts or pre-matchup research workflows.
The FantasyPros API is a managed, monitored endpoint for fantasypros.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fantasypros.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 fantasypros.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 an ECR-to-ADP gap tool that flags players whose
rank_ecris significantly lower than their ADP across scoring formats. - Generate weekly start/sit recommendations using
get_projectionsstat columns filtered by position. - Automate injury alert notifications by polling
get_injuriesfor changes in practice participation or probability-of-playing fields. - Populate a fantasy draft board with tier and positional rank data from
get_rankingsgrouped bytier. - Surface player news and expert impact assessments in a mobile app using
get_player_newswith no additional parameters. - Build a player lookup flow using
search_playersto resolve a name to a slug, then fetch consensus rankings and expert advice viaget_player_details. - Compare season-long projections across multiple positions by calling
get_projectionsfor each position and merging on player ID.
| 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 FantasyPros have an official developer API?+
What does `get_rankings` return beyond a simple rank number?+
get_rankings returns a full Ranking object per player that includes rank_ecr (the consensus rank), pos_rank (position-specific rank), tier, and the min, max, and avg rank across all experts included in the consensus. The total_experts field in the response envelope tells you how many experts contributed to those spread values for the given scoring format.Does `get_injuries` cover all weeks of the NFL season?+
get_injuries accepts a week value of draft or 1 through 18, covering the full regular season plus the pre-draft period. It returns injury status, practice participation, and probability-of-playing for players with active designations for the requested week and year. Historical weeks from prior seasons can be queried by adjusting the year parameter.Can I retrieve dynasty or keeper league rankings from this API?+
get_rankings and get_adp endpoints cover scoring formats for standard season-long and redraft contexts. Dynasty or keeper-specific ranking sets are not exposed in the current endpoints. You can fork this API on Parse and revise it to add an endpoint targeting those ranking types.Does `get_player_details` include historical season stats?+
get_player_details returns consensus rankings across formats, recent news items with titles and impact summaries, and expert advice strings, but does not include historical game logs or multi-season stat history. You can fork this API on Parse and revise it to add a historical stats endpoint.