WinWithOdds APIwinwithodds.com ↗
Access NFL season-long player prop projections via the WinWithOdds API. Filter by position, scoring format, and player name. Ranked by projected fantasy points.
What is the WinWithOdds API?
The WinWithOdds API exposes one endpoint — get_season_long_stats — that returns season-long projected NFL player statistics derived from preseason prop snapshots, covering up to hundreds of players ranked by projected fantasy points. Each response includes per-player stat projections, the applied scoring format, a timestamp of the last data refresh, and an integer count of matched players. The API supports filtering by position, fantasy scoring format, and player name substring.
curl -X GET 'https://api.parse.bot/scraper/e935e413-d330-4002-8b35-2a2e173b974e/get_season_long_stats?limit=10&search=Allen&scoring=standard&position=QB' \ -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 winwithodds-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: WinWithOdds SDK — season-long NFL projections, bounded and re-runnable."""
from parse_apis.winwithodds_com_api import WinWithOdds, Position, Scoring, InvalidInput
client = WinWithOdds()
# List top QBs in full PPR scoring
for player in client.players.list(position=Position.QB, scoring=Scoring.PPR, limit=5):
print(f"{player.rank}. {player.name} — {player.projected_points} pts, {player.pass_yards} pass yds")
# Search for a specific player across all positions
result = client.players.list(search="Chase", scoring=Scoring.STANDARD, limit=1).first()
if result:
print(f"Found: {result.name} ({result.position}) — {result.projected_points} pts, {result.receptions} rec")
# List top RBs in half PPR
for rb in client.players.list(position=Position.RB, scoring=Scoring.HALF_PPR, limit=3):
print(f"{rb.name}: {rb.rush_yards} rush yds, {rb.rush_tds} rush TDs, {rb.projected_points} pts")
# Handle invalid input gracefully
try:
client.players.list(scoring=Scoring.PPR, limit=5).first()
except InvalidInput as exc:
print(f"Invalid input: {exc}")
print("exercised: players.list (QB/PPR, search/standard, RB/half_ppr, error handling)")
Retrieves season-long projected stats for NFL players derived from preseason prop snapshots. Results are ranked by projected fantasy points under the chosen scoring format. Supports filtering by position and player name search. Projection totals refresh ahead of each NFL season. The table includes passing, rushing, and receiving stat lines alongside the composite fantasy point projection.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of players to return. |
| search | string | Case-insensitive substring match against player name. |
| scoring | string | Fantasy scoring format used to calculate projected points. |
| position | string | Filter results to a single position. |
{
"type": "object",
"fields": {
"total": "integer count of players returned",
"players": "array of player stat objects ranked by projected_points",
"scoring": "string scoring format applied",
"updated_at": "ISO 8601 datetime of last data refresh",
"position_filter": "string position filter applied or null"
},
"sample": {
"data": {
"total": 5,
"players": [
{
"name": "Josh Allen",
"rank": 1,
"fumbles": 3,
"rec_tds": null,
"bonus_ev": null,
"pass_tds": 24.5,
"position": "QB",
"rush_tds": 11.5,
"rec_yards": null,
"pass_yards": 3599.5,
"receptions": null,
"rush_yards": 499.5,
"completions": 313,
"first_downs": null,
"interceptions": 10,
"pass_attempts": 474,
"rush_attempts": 110,
"projected_points": 348.93
}
],
"scoring": "ppr",
"updated_at": "2026-07-13T02:10:03",
"position_filter": "QB"
},
"status": "success"
}
}About the WinWithOdds API
What the API Returns
The get_season_long_stats endpoint returns an array of player stat objects under the players field, each ranked in descending order by projected_points for the chosen scoring format. The response also includes a total integer reflecting how many players matched the query, a scoring string confirming the format applied, an updated_at ISO 8601 datetime marking the last projection refresh, and a position_filter field showing which position was applied (or null if none was set).
Filtering and Parameters
The endpoint accepts four optional inputs. The position parameter narrows results to a single NFL position — useful for building positional rankings. The scoring parameter selects the fantasy scoring format used to calculate projected_points, letting you compare PPR, half-PPR, and standard outputs from the same underlying projections. The search parameter performs a case-insensitive substring match against player names, so partial names resolve correctly. The limit parameter caps the number of players returned, which helps when you only need top-N lists.
Data Freshness and Scope
Projection totals are derived from preseason prop snapshots and refresh ahead of each NFL season. The updated_at field in every response tells you exactly when the data was last updated. Because these are season-long totals rather than week-by-week breakdowns, the values represent full-season cumulative projections — appropriate for seasonal draft tools and annual fantasy analysis, not in-season adjustments.
The WinWithOdds API is a managed, monitored endpoint for winwithodds.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when winwithodds.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 winwithodds.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 positional fantasy draft boards ranked by projected_points for a specific scoring format.
- Power a player search feature using the name substring filter to resolve partial player queries.
- Compare projected season totals across PPR and standard scoring to surface format-dependent value.
- Generate top-N player lists by combining the limit and position parameters for each roster slot.
- Display projected stat lines for individual NFL players in a fantasy advice or content platform.
- Track when projections were last updated using the updated_at timestamp to surface data freshness to end users.
| 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.