DraftSharks APIdraftsharks.com ↗
Access DraftSharks fantasy football data via API: player rankings, depth charts, strength of schedule, projections, and news for redraft and dynasty leagues.
What is the DraftSharks API?
The DraftSharks API exposes 5 endpoints covering fantasy football rankings, player profiles, strength-of-schedule analysis, team depth charts, and news. The get_rankings endpoint returns up to 500 players with tier, ADP, and projection data filtered by scoring format (PPR, half-PPR, non-PPR), position, and league type (standard or superflex), including dynasty redraft modes.
curl -X GET 'https://api.parse.bot/scraper/8cbb56cd-270c-41c6-ab5b-ff713cf1ef13/get_rankings?depth=rankings&scoring=half-ppr&position=QB&is_dynasty=false&league_type=standard' \ -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 draftsharks-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: DraftSharks SDK — fantasy football rankings, profiles, depth charts."""
from parse_apis.DraftSharks_Fantasy_Football_API import (
DraftSharks, Scoring, LeagueType, SosPosition, Depth, ResourceNotFound
)
client = DraftSharks()
# List top QB rankings in half-PPR superflex format
for player in client.players.list(scoring=Scoring.HALF_PPR, league_type=LeagueType.SUPERFLEX, position="QB", depth=Depth.RANKINGS, limit=5):
print(player.name, player.adp, player.ds_projection, player.injury_risk)
# Drill into a single player's full profile
top_player = client.players.list(scoring=Scoring.PPR, position="QB", limit=1).first()
if top_player:
prof = top_player.profile()
bio = prof.bio
print(bio.first_name, bio.last_name, bio.position, bio.height, bio.weight)
# Strength of schedule for wide receivers
for team in client.teams.list_sos(position=SosPosition.WR, limit=3):
print(team.abbr, team.bye, len(team.schedule))
# Fetch a specific team's depth chart
chart = client.depth_charts.get(team_slug="kansas-city-chiefs")
for section in chart.sections:
for pos in section.positions:
print(section.section, pos.position, [p.name for p in pos.players])
# Typed error handling — profile() raises ResourceNotFound for invalid IDs
if top_player:
try:
prof = top_player.profile()
print(prof.bio.first_name, prof.bio.last_name)
except ResourceNotFound as exc:
print(f"Player not found: {exc.player_id}")
# Latest fantasy news
for article in client.articles.list(limit=3):
print(article.title, article.link)
print("exercised: players.list / player.profile / teams.list_sos / depth_charts.get / articles.list")
Fetch the player rankings table for a given scoring format and league type. Returns up to 500 players with projections, ADP, injury risk, and tier information. Paginates as a single page. Some parameter combinations (e.g. dynasty + analysis + non-ppr) may not be supported upstream and will return an upstream error.
| Param | Type | Description |
|---|---|---|
| depth | string | Research depth. |
| scoring | string | Scoring format. |
| position | string | Filter by position: 'QB', 'RB', 'WR', 'TE', or empty string for all positions. |
| is_dynasty | string | Set to 'true' for dynasty rankings, 'false' for redraft. |
| league_type | string | League type. |
{
"type": "object",
"fields": {
"count": "integer total number of players returned",
"players": "array of player objects with ranking data including id, name, position, team, tier_overall, tier_positional, is_rookie, rank, games, adp, bye, sos, injury_risk, floor, consensus, ds_projection, ceiling, ds_value"
},
"sample": {
"data": {
"count": 500,
"players": [
{
"id": "9962",
"adp": "1.01",
"bye": "7",
"sos": "-3.4%",
"name": "Josh Allen",
"rank": "1",
"team": "4",
"floor": "307",
"games": "17",
"ceiling": "440",
"ds_value": "100",
"position": "QB",
"consensus": "360",
"is_rookie": false,
"injury_risk": "22%",
"tier_overall": "1",
"ds_projection": "379",
"tier_positional": "1"
}
]
},
"status": "success"
}
}About the DraftSharks API
Rankings and Player Profiles
The get_rankings endpoint accepts parameters for scoring (ppr, half-ppr, non-ppr), position (QB, RB, WR, TE, or all), is_dynasty (true/false), league_type (standard or superflex), and depth (rankings or analysis). Each player object in the response includes rank, tier_overall, tier_positional, is_rookie, team, and game-level data. Note that some parameter combinations — such as dynasty + analysis + non-ppr — are not supported and will return an empty or error response.
The get_player_profile endpoint takes a numeric player_id (e.g. 9962 for Josh Allen) and returns the full playerPageAppVar object: bio details, weekly predictions, season projections, consensus projections, and scoring configurations. Dynasty-focused responses also include a dynasty_trade_values object with labeled scores and a dynasty_analysis text block when available.
Schedule and Team Data
get_strength_of_schedule returns a teamData array covering all 32 NFL teams. Each team object includes id, abbr, bye week, and a full season schedule with per-opponent matchup details. The currentWeek field tells you where in the current NFL season you are. The position parameter accepts qb, rb, wr, te, or k, making it useful for position-specific matchup analysis.
get_depth_charts accepts a team_slug (e.g. buffalo-bills) and returns the team's depth chart organized into sections — Offense, Defense, and Special Teams — each listing positions with an ordered array of players. get_news_articles requires no inputs and returns a list of recent articles with title, link, date, summary, and optional player association metadata.
The DraftSharks API is a managed, monitored endpoint for draftsharks.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when draftsharks.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 draftsharks.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 draft assistant that ranks players by tier and ADP across PPR and half-PPR formats using get_rankings
- Display dynasty trade value scores and weekly projections on a player detail page using get_player_profile
- Identify favorable or unfavorable weekly matchups by position using get_strength_of_schedule
- Render up-to-date team depth charts to flag backfield or receiver corps changes via get_depth_charts
- Aggregate recent fantasy-relevant news with associated player metadata using get_news_articles
- Power a dynasty league tool with rookie flags, dynasty tiers, and trade value labels from the rankings and profile endpoints
- Track strength-of-schedule trends for kickers separately from skill positions using the k position filter
| 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.