---
type: "firecrawl-provider"
description: "FFToday (fftoday.com) NFL fantasy football projections and rankings from the site's public pages: weekly projections (QB, RB, WR, TE, K) and season projections (also team defense and IDP) with per-stat lines and points in ten scoring presets, and weekly staff rankings with tiers for every position. Anonymous."
use_when: "FFToday (fftoday.com) NFL fantasy football projections and rankings from the site's public pages: weekly projections (QB, RB, WR, TE, K) and season projections (also team defense and IDP) with per-stat lines and points in ten scoring presets, and weekly staff rankings with tiers for every position. Anonymous."
categories: "Sports"
capabilities: 3
credits_per_call: 5
---
# FFToday NFL projections and rankings on Firecrawl Alexandria

FFToday (fftoday.com) NFL fantasy football projections and rankings from the site's public pages: weekly projections (QB, RB, WR, TE, K) and season projections (also team defense and IDP) with per-stat lines and points in ten scoring presets, and weekly staff rankings with tiers for every position. Anonymous.

- Categories: Sports
- Category index: [Sports category](https://firecrawl.dev/alexandria/agents/categories/sports)
- Provider key: `fftoday-com`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/fftoday-com)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/openapi.json)

## Capabilities

- [Season projections](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/season_projections): FFToday full-season projections for one position from GET www.fftoday.com/rankings/playerproj.php: per player the team, bye week, projected season stat line and fantasy points in the requested scoring preset, with upside and risk notes. Team defenses (DEF) and IDP (DL, LB, DB) included. Walks every 50-row page.
- [Weekly projections](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/weekly_projections): FFToday weekly projections for one position from GET www.fftoday.com/rankings/playerwkproj.php: per player the team, opponent, projected stat line and fantasy points in the requested scoring preset, with the site's upside and risk notes. Walks every 50-row page.
- [Weekly rankings](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/weekly_rankings): FFToday staff weekly rankings for one position from GET www.fftoday.com/rankings/playerwkrank.php: rank, tier, team, opponent, movement arrow and upside/risk notes, with the update date. The site ranks on Half-PPR scoring only.

## 1. Choose this provider when

FFToday (fftoday.com) NFL fantasy football projections and rankings from the site's public pages: weekly projections (QB, RB, WR, TE, K) and season projections (also team defense and IDP) with per-stat lines and points in ten scoring presets, and weekly staff rankings with tiers for every position. Anonymous.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "fftoday-com",
  "capability": "fantasy-sports-rankings/season_projections",
  "options": {
    "position": "K"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `limit` (number): Return only the top N players. Omit for the full list. Example: `10`
- `position` (string, required): Position. DEF is team defense / special teams; DL, LB and DB are IDP. Example: `QB`
- `scoring` (string): Scoring preset: FFToday STD, HALF or PPR, or the ESPN, Yahoo, FFPC, Underdog, CBS Sports, NFL.com or NFFC default league scoring. Default PPR. Example: `PPR`
- `season` (number): Season year. Omit for the current season. Example: `2008`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "fftoday-com",
    capability: "fantasy-sports-rankings/season_projections",
    options: {
      position: "K",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "fftoday-com",
  "capability": "fantasy-sports-rankings/season_projections",
  "options": {
    "position": "K"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "fftoday-com",
    "capability": "fantasy-sports-rankings/season_projections",
    "options": {
      "position": "K"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'fftoday-com/fantasy-sports-rankings/season_projections' \
  --options '{"position":"K"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "fftoday-com",
  "capability": "fantasy-sports-rankings/season_projections",
  "options": {
    "position": "K"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "fftoday-com",
  "capability": "fantasy-sports-rankings/season_projections",
  "options": {
    "position": "K"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "count": 32,
  "last_updated": "9/6/2026",
  "observed_at_ms": 1790967812227,
  "players": [
    {
      "bye_week": 14,
      "name": "Brandon Aubrey",
      "player_id": 18715,
      "player_url": "https://www.fftoday.com/stats/players/18715/Brandon_Aubrey",
      "projected_points": 150,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 35,
        "fg_pct": 87.5,
        "fga": 40,
        "xpa": 46,
        "xpt": 45
      },
      "team": "DAL",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Cameron Dicker",
      "player_id": 18318,
      "player_url": "https://www.fftoday.com/stats/players/18318/Cameron_Dicker",
      "projected_points": 143,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 34,
        "fg_pct": 91.9,
        "fga": 37,
        "xpa": 41,
        "xpt": 41
      },
      "team": "LAC",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Ka'imi Fairbairn",
      "player_id": 14904,
      "player_url": "https://www.fftoday.com/stats/players/14904/Ka'imi_Fairbairn",
      "projected_points": 138,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 34,
        "fg_pct": 89.5,
        "fga": 38,
        "xpa": 37,
        "xpt": 36
      },
      "team": "HOU",
      "upside": "Upside: Led the league in 2025 with 44 made FGs."
    },
    {
      "bye_week": 11,
      "name": "Jason Myers",
      "player_id": 14584,
      "player_url": "https://www.fftoday.com/stats/players/14584/Jason_Myers",
      "projected_points": 138,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 32,
        "fg_pct": 86.5,
        "fga": 37,
        "xpa": 43,
        "xpt": 42
      },
      "team": "SEA",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Wil Lutz",
      "player_id": 14750,
      "player_url": "https://www.fftoday.com/stats/players/14750/Wil_Lutz",
      "projected_points": 133,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 29,
        "fg_pct": 90.6,
        "fga": 32,
        "xpa": 46,
        "xpt": 46
      },
      "team": "DEN",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Chase McLaughlin",
      "player_id": 16824,
      "player_url": "https://www.fftoday.com/stats/players/16824/Chase_McLaughlin",
      "projected_points": 131,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 31,
        "fg_pct": 88.6,
        "fga": 35,
        "xpa": 39,
        "xpt": 38
      },
      "team": "TB",
      "upside": null
    },
    {
      "bye_week": 5,
      "name": "Harrison Butker",
      "player_id": 15827,
      "player_url": "https://www.fftoday.com/stats/players/15827/Harrison_Butker",
      "projected_points": 130,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 30,
        "fg_pct": 85.7,
        "fga": 35,
        "xpa": 42,
        "xpt": 40
      },
      "team": "KC",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Eddy Pineiro",
      "player_id": 16055,
      "player_url": "https://www.fftoday.com/stats/players/16055/Eddy_Pineiro",
      "projected_points": 130,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 30,
        "fg_pct": 88.2,
        "fga": 34,
        "xpa": 42,
        "xpt": 40
      },
      "team": "SF",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Tyler Bass",
      "player_id": 17010,
      "player_url": "https://www.fftoday.com/stats/players/17010/Tyler_Bass",
      "projected_points": 126,
      "rank_change": null,
      "risk": "Risk: Missed all of 2025 with a hip injury.",
      "stats": {
        "fg": 25,
        "fg_pct": 83.3,
        "fga": 30,
        "xpa": 54,
        "xpt": 51
      },
      "team": "BUF",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Tyler Loop",
      "player_id": 19427,
      "player_url": "https://www.fftoday.com/stats/players/19427/Tyler_Loop",
      "projected_points": 125,
      "rank_change": null,
      "risk": "Risk: Missed 3 FGs during preseason games. Ravens brought in Jake Moody as insurance.",
      "stats": {
        "fg": 27,
        "fg_pct": 87.1,
        "fga": 31,
        "xpa": 46,
        "xpt": 44
      },
      "team": "BAL",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Jake Bates",
      "player_id": 19160,
      "player_url": "https://www.fftoday.com/stats/players/19160/Jake_Bates",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 83.9,
        "fga": 31,
        "xpa": 49,
        "xpt": 47
      },
      "team": "DET",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Cam Little",
      "player_id": 19039,
      "player_url": "https://www.fftoday.com/stats/players/19039/Cam_Little",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 90.3,
        "fga": 31,
        "xpa": 42,
        "xpt": 41
      },
      "team": "JAC",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Will Reichard",
      "player_id": 19090,
      "player_url": "https://www.fftoday.com/stats/players/19090/Will_Reichard",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 29,
        "fg_pct": 90.6,
        "fga": 32,
        "xpa": 39,
        "xpt": 38
      },
      "team": "MIN",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Andres Borregales",
      "player_id": 19320,
      "player_url": "https://www.fftoday.com/stats/players/19320/Andres_Borregales",
      "projected_points": 124,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 83.9,
        "fga": 31,
        "xpa": 48,
        "xpt": 46
      },
      "team": "NE",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Cairo Santos",
      "player_id": 14392,
      "player_url": "https://www.fftoday.com/stats/players/14392/Cairo_Santos",
      "projected_points": 124,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 87.5,
        "fga": 32,
        "xpa": 41,
        "xpt": 40
      },
      "team": "CHI",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Trey Smack",
      "player_id": 19939,
      "player_url": "https://www.fftoday.com/stats/players/19939/Trey_Smack",
      "projected_points": 124,
      "rank_change": null,
      "risk": "Risk: Rookie.",
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 42,
        "xpt": 40
      },
      "team": "GB",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Spencer Shrader",
      "player_id": 19171,
      "player_url": "https://www.fftoday.com/stats/players/19171/Spencer_Shrader",
      "projected_points": 123,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 41,
        "xpt": 39
      },
      "team": "IND",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Evan McPherson",
      "player_id": 17642,
      "player_url": "https://www.fftoday.com/stats/players/17642/Evan_McPherson",
      "projected_points": 121,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 86.7,
        "fga": 30,
        "xpa": 45,
        "xpt": 43
      },
      "team": "CIN",
      "upside": null
    },
    {
      "bye_week": 9,
      "name": "Chris Boswell",
      "player_id": 14644,
      "player_url": "https://www.fftoday.com/stats/players/14644/Chris_Boswell",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 37,
        "xpt": 36
      },
      "team": "PIT",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Harrison Mevis",
      "player_id": 19640,
      "player_url": "https://www.fftoday.com/stats/players/19640/Harrison_Mevis",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 23,
        "fg_pct": 92,
        "fga": 25,
        "xpa": 53,
        "xpt": 51
      },
      "team": "LAR",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Jake Elliott",
      "player_id": 15860,
      "player_url": "https://www.fftoday.com/stats/players/15860/Jake_Elliott",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 25,
        "fg_pct": 83.3,
        "fga": 30,
        "xpa": 46,
        "xpt": 45
      },
      "team": "PHI",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Daniel Carlson",
      "player_id": 16155,
      "player_url": "https://www.fftoday.com/stats/players/16155/Daniel_Carlson",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 38,
        "xpt": 36
      },
      "team": "NO",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Dominic Zvada",
      "player_id": 19960,
      "player_url": "https://www.fftoday.com/stats/players/19960/Dominic_Zvada",
      "projected_points": 119,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 86.7,
        "fga": 30,
        "xpa": 42,
        "xpt": 41
      },
      "team": "NYG",
      "upside": null
    },
    {
      "bye_week": 14,
      "name": "Chad Ryland",
      "player_id": 18636,
      "player_url": "https://www.fftoday.com/stats/players/18636/Chad_Ryland",
      "projected_points": 112,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 35,
        "xpt": 34
      },
      "team": "ARI",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Drew Stevens",
      "player_id": 19959,
      "player_url": "https://www.fftoday.com/stats/players/19959/Drew_Stevens",
      "projected_points": 112,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 80,
        "fga": 30,
        "xpa": 43,
        "xpt": 40
      },
      "team": "WAS",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Riley Patterson",
      "player_id": 17860,
      "player_url": "https://www.fftoday.com/stats/players/17860/Riley_Patterson",
      "projected_points": 111,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 27,
        "fg_pct": 87.1,
        "fga": 31,
        "xpa": 32,
        "xpt": 30
      },
      "team": "MIA",
      "upside": null
    },
    {
      "bye_week": 5,
      "name": "Ryan Fitzgerald",
      "player_id": 19563,
      "player_url": "https://www.fftoday.com/stats/players/19563/Ryan_Fitzgerald",
      "projected_points": 110,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 25,
        "fg_pct": 86.2,
        "fga": 29,
        "xpa": 37,
        "xpt": 35
      },
      "team": "CAR",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Nick Folk",
      "player_id": 3188,
      "player_url": "https://www.fftoday.com/stats/players/3188/Nick_Folk",
      "projected_points": 109,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 92.3,
        "fga": 26,
        "xpa": 37,
        "xpt": 37
      },
      "team": "ATL",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Matt Gay",
      "player_id": 16578,
      "player_url": "https://www.fftoday.com/stats/players/16578/Matt_Gay",
      "projected_points": 109,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 32,
        "xpt": 31
      },
      "team": "LV",
      "upside": null
    },
    {
      "bye_week": 9,
      "name": "Joey Slye",
      "player_id": 16763,
      "player_url": "https://www.fftoday.com/stats/players/16763/Joey_Slye",
      "projected_points": 106,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 30,
        "xpt": 28
      },
      "team": "TEN",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Blake Grupe",
      "player_id": 18719,
      "player_url": "https://www.fftoday.com/stats/players/18719/Blake_Grupe",
      "projected_points": 102,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 80,
        "fga": 30,
        "xpa": 33,
        "xpt": 30
      },
      "team": "NYJ",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Andre Szmyt",
      "player_id": 19565,
      "player_url": "https://www.fftoday.com/stats/players/19565/Andre_Szmyt",
      "projected_points": 101,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 23,
        "fg_pct": 88.5,
        "fga": 26,
        "xpa": 33,
        "xpt": 32
      },
      "team": "CLE",
      "upside": null
    }
  ],
  "position": "K",
  "scoring": "PPR",
  "scoring_label": "FFToday PPR",
  "season": 2026,
  "source_url": "https://www.fftoday.com/rankings/playerproj.php?PosID=80&LeagueID=107644&order_by=FFPts&sort_order=DESC&cur_page=0",
  "total_count": 32
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Season projections

- Capability: `fantasy-sports-rankings/season_projections`
- Description: FFToday full-season projections for one position from GET www.fftoday.com/rankings/playerproj.php: per player the team, bye week, projected season stat line and fantasy points in the requested scoring preset, with upside and risk notes. Team defenses (DEF) and IDP (DL, LB, DB) included. Walks every 50-row page.
- Instructions: Season-long projected totals for drafts or rest-of-season planning.
- Cost: 5 credits per call
- Capability file: [Season projections](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/season_projections)

Accepted options:
- `limit` (number): Return only the top N players. Omit for the full list. Example: `10`
- `position` (string, required): Position. DEF is team defense / special teams; DL, LB and DB are IDP. Example: `QB`
- `scoring` (string): Scoring preset: FFToday STD, HALF or PPR, or the ESPN, Yahoo, FFPC, Underdog, CBS Sports, NFL.com or NFFC default league scoring. Default PPR. Example: `PPR`
- `season` (number): Season year. Omit for the current season. Example: `2008`

Response schema example:
```json
{
  "count": 32,
  "last_updated": "9/6/2026",
  "observed_at_ms": 1790967812227,
  "players": [
    {
      "bye_week": 14,
      "name": "Brandon Aubrey",
      "player_id": 18715,
      "player_url": "https://www.fftoday.com/stats/players/18715/Brandon_Aubrey",
      "projected_points": 150,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 35,
        "fg_pct": 87.5,
        "fga": 40,
        "xpa": 46,
        "xpt": 45
      },
      "team": "DAL",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Cameron Dicker",
      "player_id": 18318,
      "player_url": "https://www.fftoday.com/stats/players/18318/Cameron_Dicker",
      "projected_points": 143,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 34,
        "fg_pct": 91.9,
        "fga": 37,
        "xpa": 41,
        "xpt": 41
      },
      "team": "LAC",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Ka'imi Fairbairn",
      "player_id": 14904,
      "player_url": "https://www.fftoday.com/stats/players/14904/Ka'imi_Fairbairn",
      "projected_points": 138,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 34,
        "fg_pct": 89.5,
        "fga": 38,
        "xpa": 37,
        "xpt": 36
      },
      "team": "HOU",
      "upside": "Upside: Led the league in 2025 with 44 made FGs."
    },
    {
      "bye_week": 11,
      "name": "Jason Myers",
      "player_id": 14584,
      "player_url": "https://www.fftoday.com/stats/players/14584/Jason_Myers",
      "projected_points": 138,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 32,
        "fg_pct": 86.5,
        "fga": 37,
        "xpa": 43,
        "xpt": 42
      },
      "team": "SEA",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Wil Lutz",
      "player_id": 14750,
      "player_url": "https://www.fftoday.com/stats/players/14750/Wil_Lutz",
      "projected_points": 133,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 29,
        "fg_pct": 90.6,
        "fga": 32,
        "xpa": 46,
        "xpt": 46
      },
      "team": "DEN",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Chase McLaughlin",
      "player_id": 16824,
      "player_url": "https://www.fftoday.com/stats/players/16824/Chase_McLaughlin",
      "projected_points": 131,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 31,
        "fg_pct": 88.6,
        "fga": 35,
        "xpa": 39,
        "xpt": 38
      },
      "team": "TB",
      "upside": null
    },
    {
      "bye_week": 5,
      "name": "Harrison Butker",
      "player_id": 15827,
      "player_url": "https://www.fftoday.com/stats/players/15827/Harrison_Butker",
      "projected_points": 130,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 30,
        "fg_pct": 85.7,
        "fga": 35,
        "xpa": 42,
        "xpt": 40
      },
      "team": "KC",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Eddy Pineiro",
      "player_id": 16055,
      "player_url": "https://www.fftoday.com/stats/players/16055/Eddy_Pineiro",
      "projected_points": 130,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 30,
        "fg_pct": 88.2,
        "fga": 34,
        "xpa": 42,
        "xpt": 40
      },
      "team": "SF",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Tyler Bass",
      "player_id": 17010,
      "player_url": "https://www.fftoday.com/stats/players/17010/Tyler_Bass",
      "projected_points": 126,
      "rank_change": null,
      "risk": "Risk: Missed all of 2025 with a hip injury.",
      "stats": {
        "fg": 25,
        "fg_pct": 83.3,
        "fga": 30,
        "xpa": 54,
        "xpt": 51
      },
      "team": "BUF",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Tyler Loop",
      "player_id": 19427,
      "player_url": "https://www.fftoday.com/stats/players/19427/Tyler_Loop",
      "projected_points": 125,
      "rank_change": null,
      "risk": "Risk: Missed 3 FGs during preseason games. Ravens brought in Jake Moody as insurance.",
      "stats": {
        "fg": 27,
        "fg_pct": 87.1,
        "fga": 31,
        "xpa": 46,
        "xpt": 44
      },
      "team": "BAL",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Jake Bates",
      "player_id": 19160,
      "player_url": "https://www.fftoday.com/stats/players/19160/Jake_Bates",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 83.9,
        "fga": 31,
        "xpa": 49,
        "xpt": 47
      },
      "team": "DET",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Cam Little",
      "player_id": 19039,
      "player_url": "https://www.fftoday.com/stats/players/19039/Cam_Little",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 90.3,
        "fga": 31,
        "xpa": 42,
        "xpt": 41
      },
      "team": "JAC",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Will Reichard",
      "player_id": 19090,
      "player_url": "https://www.fftoday.com/stats/players/19090/Will_Reichard",
      "projected_points": 125,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 29,
        "fg_pct": 90.6,
        "fga": 32,
        "xpa": 39,
        "xpt": 38
      },
      "team": "MIN",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Andres Borregales",
      "player_id": 19320,
      "player_url": "https://www.fftoday.com/stats/players/19320/Andres_Borregales",
      "projected_points": 124,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 83.9,
        "fga": 31,
        "xpa": 48,
        "xpt": 46
      },
      "team": "NE",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Cairo Santos",
      "player_id": 14392,
      "player_url": "https://www.fftoday.com/stats/players/14392/Cairo_Santos",
      "projected_points": 124,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 87.5,
        "fga": 32,
        "xpa": 41,
        "xpt": 40
      },
      "team": "CHI",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Trey Smack",
      "player_id": 19939,
      "player_url": "https://www.fftoday.com/stats/players/19939/Trey_Smack",
      "projected_points": 124,
      "rank_change": null,
      "risk": "Risk: Rookie.",
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 42,
        "xpt": 40
      },
      "team": "GB",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Spencer Shrader",
      "player_id": 19171,
      "player_url": "https://www.fftoday.com/stats/players/19171/Spencer_Shrader",
      "projected_points": 123,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 41,
        "xpt": 39
      },
      "team": "IND",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Evan McPherson",
      "player_id": 17642,
      "player_url": "https://www.fftoday.com/stats/players/17642/Evan_McPherson",
      "projected_points": 121,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 86.7,
        "fga": 30,
        "xpa": 45,
        "xpt": 43
      },
      "team": "CIN",
      "upside": null
    },
    {
      "bye_week": 9,
      "name": "Chris Boswell",
      "player_id": 14644,
      "player_url": "https://www.fftoday.com/stats/players/14644/Chris_Boswell",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 37,
        "xpt": 36
      },
      "team": "PIT",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Harrison Mevis",
      "player_id": 19640,
      "player_url": "https://www.fftoday.com/stats/players/19640/Harrison_Mevis",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 23,
        "fg_pct": 92,
        "fga": 25,
        "xpa": 53,
        "xpt": 51
      },
      "team": "LAR",
      "upside": null
    },
    {
      "bye_week": 10,
      "name": "Jake Elliott",
      "player_id": 15860,
      "player_url": "https://www.fftoday.com/stats/players/15860/Jake_Elliott",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 25,
        "fg_pct": 83.3,
        "fga": 30,
        "xpa": 46,
        "xpt": 45
      },
      "team": "PHI",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Daniel Carlson",
      "player_id": 16155,
      "player_url": "https://www.fftoday.com/stats/players/16155/Daniel_Carlson",
      "projected_points": 120,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 28,
        "fg_pct": 84.8,
        "fga": 33,
        "xpa": 38,
        "xpt": 36
      },
      "team": "NO",
      "upside": null
    },
    {
      "bye_week": 8,
      "name": "Dominic Zvada",
      "player_id": 19960,
      "player_url": "https://www.fftoday.com/stats/players/19960/Dominic_Zvada",
      "projected_points": 119,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 86.7,
        "fga": 30,
        "xpa": 42,
        "xpt": 41
      },
      "team": "NYG",
      "upside": null
    },
    {
      "bye_week": 14,
      "name": "Chad Ryland",
      "player_id": 18636,
      "player_url": "https://www.fftoday.com/stats/players/18636/Chad_Ryland",
      "projected_points": 112,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 35,
        "xpt": 34
      },
      "team": "ARI",
      "upside": null
    },
    {
      "bye_week": 7,
      "name": "Drew Stevens",
      "player_id": 19959,
      "player_url": "https://www.fftoday.com/stats/players/19959/Drew_Stevens",
      "projected_points": 112,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 80,
        "fga": 30,
        "xpa": 43,
        "xpt": 40
      },
      "team": "WAS",
      "upside": null
    },
    {
      "bye_week": 6,
      "name": "Riley Patterson",
      "player_id": 17860,
      "player_url": "https://www.fftoday.com/stats/players/17860/Riley_Patterson",
      "projected_points": 111,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 27,
        "fg_pct": 87.1,
        "fga": 31,
        "xpa": 32,
        "xpt": 30
      },
      "team": "MIA",
      "upside": null
    },
    {
      "bye_week": 5,
      "name": "Ryan Fitzgerald",
      "player_id": 19563,
      "player_url": "https://www.fftoday.com/stats/players/19563/Ryan_Fitzgerald",
      "projected_points": 110,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 25,
        "fg_pct": 86.2,
        "fga": 29,
        "xpa": 37,
        "xpt": 35
      },
      "team": "CAR",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Nick Folk",
      "player_id": 3188,
      "player_url": "https://www.fftoday.com/stats/players/3188/Nick_Folk",
      "projected_points": 109,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 92.3,
        "fga": 26,
        "xpa": 37,
        "xpt": 37
      },
      "team": "ATL",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Matt Gay",
      "player_id": 16578,
      "player_url": "https://www.fftoday.com/stats/players/16578/Matt_Gay",
      "projected_points": 109,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 32,
        "xpt": 31
      },
      "team": "LV",
      "upside": null
    },
    {
      "bye_week": 9,
      "name": "Joey Slye",
      "player_id": 16763,
      "player_url": "https://www.fftoday.com/stats/players/16763/Joey_Slye",
      "projected_points": 106,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 26,
        "fg_pct": 81.3,
        "fga": 32,
        "xpa": 30,
        "xpt": 28
      },
      "team": "TEN",
      "upside": null
    },
    {
      "bye_week": 13,
      "name": "Blake Grupe",
      "player_id": 18719,
      "player_url": "https://www.fftoday.com/stats/players/18719/Blake_Grupe",
      "projected_points": 102,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 24,
        "fg_pct": 80,
        "fga": 30,
        "xpa": 33,
        "xpt": 30
      },
      "team": "NYJ",
      "upside": null
    },
    {
      "bye_week": 11,
      "name": "Andre Szmyt",
      "player_id": 19565,
      "player_url": "https://www.fftoday.com/stats/players/19565/Andre_Szmyt",
      "projected_points": 101,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 23,
        "fg_pct": 88.5,
        "fga": 26,
        "xpa": 33,
        "xpt": 32
      },
      "team": "CLE",
      "upside": null
    }
  ],
  "position": "K",
  "scoring": "PPR",
  "scoring_label": "FFToday PPR",
  "season": 2026,
  "source_url": "https://www.fftoday.com/rankings/playerproj.php?PosID=80&LeagueID=107644&order_by=FFPts&sort_order=DESC&cur_page=0",
  "total_count": 32
}
```

### Weekly projections

- Capability: `fantasy-sports-rankings/weekly_projections`
- Description: FFToday weekly projections for one position from GET www.fftoday.com/rankings/playerwkproj.php: per player the team, opponent, projected stat line and fantasy points in the requested scoring preset, with the site's upside and risk notes. Walks every 50-row page.
- Instructions: Projected points and stat lines for a position in one NFL week, in a specific league's scoring.
- Cost: 5 credits per call
- Capability file: [Weekly projections](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/weekly_projections)

Accepted options:
- `limit` (number): Return only the top N players. Omit for the full list. Example: `10`
- `position` (string, required): Position. The site publishes no weekly defense or IDP projections. Example: `QB`
- `scoring` (string): Scoring preset: FFToday STD, HALF or PPR, or the ESPN, Yahoo, FFPC, Underdog, CBS Sports, NFL.com or NFFC default league scoring. Default PPR. Example: `PPR`
- `season` (number): Season year; requires week. Omit for the current season. Example: `2010`
- `week` (number): NFL week: 1-18, or 21-24 for the wild-card, divisional, conference and Super Bowl rounds. Omit for the site's current week. A week the site has not published is not_found. Example: `1`

Response schema example:
```json
{
  "count": 32,
  "observed_at_ms": 1790967812207,
  "players": [
    {
      "name": "Brandon Aubrey",
      "opponent": "at HOU",
      "opponent_id": "HOU",
      "player_id": 18715,
      "player_url": "https://www.fftoday.com/stats/players/18715/Brandon_Aubrey",
      "projected_points": 11,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 3,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "DAL",
      "upside": null
    },
    {
      "name": "Harrison Butker",
      "opponent": "at LV",
      "opponent_id": "LV",
      "player_id": 15827,
      "player_url": "https://www.fftoday.com/stats/players/15827/Harrison_Butker",
      "projected_points": 11,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 3,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "KC",
      "upside": null
    },
    {
      "name": "Ka'imi Fairbairn",
      "opponent": "vs. DAL",
      "opponent_id": "DAL",
      "player_id": 14904,
      "player_url": "https://www.fftoday.com/stats/players/14904/Ka'imi_Fairbairn",
      "projected_points": 11,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 3,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "HOU",
      "upside": null
    },
    {
      "name": "Tyler Bass",
      "opponent": "vs. NE",
      "opponent_id": "NE",
      "player_id": 17010,
      "player_url": "https://www.fftoday.com/stats/players/17010/Tyler_Bass",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "BUF",
      "upside": null
    },
    {
      "name": "Jake Bates",
      "opponent": "at CAR",
      "opponent_id": "CAR",
      "player_id": 19160,
      "player_url": "https://www.fftoday.com/stats/players/19160/Jake_Bates",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "DET",
      "upside": null
    },
    {
      "name": "Daniel Carlson",
      "opponent": "vs. ATL",
      "opponent_id": "ATL",
      "player_id": 16155,
      "player_url": "https://www.fftoday.com/stats/players/16155/Daniel_Carlson",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "NO",
      "upside": null
    },
    {
      "name": "Cam Little",
      "opponent": "at CIN",
      "opponent_id": "CIN",
      "player_id": 19039,
      "player_url": "https://www.fftoday.com/stats/players/19039/Cam_Little",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "JAC",
      "upside": null
    },
    {
      "name": "Tyler Loop",
      "opponent": "vs. TEN",
      "opponent_id": "TEN",
      "player_id": 19427,
      "player_url": "https://www.fftoday.com/stats/players/19427/Tyler_Loop",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "BAL",
      "upside": null
    },
    {
      "name": "Evan McPherson",
      "opponent": "vs. JAC",
      "opponent_id": "JAC",
      "player_id": 17642,
      "player_url": "https://www.fftoday.com/stats/players/17642/Evan_McPherson",
      "projected_points": 9,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "CIN",
      "upside": null
    },
    {
      "name": "Andres Borregales",
      "opponent": "at BUF",
      "opponent_id": "BUF",
      "player_id": 19320,
      "player_url": "https://www.fftoday.com/stats/players/19320/Andres_Borregales",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "NE",
      "upside": null
    },
    {
      "name": "Chris Boswell",
      "opponent": "at CLE",
      "opponent_id": "CLE",
      "player_id": 14644,
      "player_url": "https://www.fftoday.com/stats/players/14644/Chris_Boswell",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "PIT",
      "upside": null
    },
    {
      "name": "Jake Elliott",
      "opponent": "vs. LAR",
      "opponent_id": "LAR",
      "player_id": 15860,
      "player_url": "https://www.fftoday.com/stats/players/15860/Jake_Elliott",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "PHI",
      "upside": null
    },
    {
      "name": "Matt Gay",
      "opponent": "vs. KC",
      "opponent_id": "KC",
      "player_id": 16578,
      "player_url": "https://www.fftoday.com/stats/players/16578/Matt_Gay",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "LV",
      "upside": null
    },
    {
      "name": "Wil Lutz",
      "opponent": "at SF",
      "opponent_id": "SF",
      "player_id": 14750,
      "player_url": "https://www.fftoday.com/stats/players/14750/Wil_Lutz",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "DEN",
      "upside": null
    },
    {
      "name": "Will Reichard",
      "opponent": "vs. MIA",
      "opponent_id": "MIA",
      "player_id": 19090,
      "player_url": "https://www.fftoday.com/stats/players/19090/Will_Reichard",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "MIN",
      "upside": null
    },
    {
      "name": "Chad Ryland",
      "opponent": "at NYG",
      "opponent_id": "NYG",
      "player_id": 18636,
      "player_url": "https://www.fftoday.com/stats/players/18636/Chad_Ryland",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "ARI",
      "upside": null
    },
    {
      "name": "Cairo Santos",
      "opponent": "vs. NYJ",
      "opponent_id": "NYJ",
      "player_id": 14392,
      "player_url": "https://www.fftoday.com/stats/players/14392/Cairo_Santos",
      "projected_points": 8,
      "rank_change": null,
      "risk": "Risk: Hip.",
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "CHI",
      "upside": null
    },
    {
      "name": "Trey Smack",
      "opponent": "at TB",
      "opponent_id": "TB",
      "player_id": 19939,
      "player_url": "https://www.fftoday.com/stats/players/19939/Trey_Smack",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "GB",
      "upside": null
    },
    {
      "name": "Drew Stevens",
      "opponent": "vs. IND",
      "opponent_id": "IND",
      "player_id": 19959,
      "player_url": "https://www.fftoday.com/stats/players/19959/Drew_Stevens",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "WAS",
      "upside": null
    },
    {
      "name": "Dominic Zvada",
      "opponent": "vs. ARI",
      "opponent_id": "ARI",
      "player_id": 19960,
      "player_url": "https://www.fftoday.com/stats/players/19960/Dominic_Zvada",
      "projected_points": 8,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 2,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "NYG",
      "upside": null
    },
    {
      "name": "Ryan Fitzgerald",
      "opponent": "vs. DET",
      "opponent_id": "DET",
      "player_id": 19563,
      "player_url": "https://www.fftoday.com/stats/players/19563/Ryan_Fitzgerald",
      "projected_points": 6,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "CAR",
      "upside": null
    },
    {
      "name": "Harrison Mevis",
      "opponent": "at PHI",
      "opponent_id": "PHI",
      "player_id": 19640,
      "player_url": "https://www.fftoday.com/stats/players/19640/Harrison_Mevis",
      "projected_points": 6,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "LAR",
      "upside": null
    },
    {
      "name": "Jason Myers",
      "opponent": "vs. LAC",
      "opponent_id": "LAC",
      "player_id": 14584,
      "player_url": "https://www.fftoday.com/stats/players/14584/Jason_Myers",
      "projected_points": 6,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "SEA",
      "upside": null
    },
    {
      "name": "Eddy Pineiro",
      "opponent": "vs. DEN",
      "opponent_id": "DEN",
      "player_id": 16055,
      "player_url": "https://www.fftoday.com/stats/players/16055/Eddy_Pineiro",
      "projected_points": 6,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "SF",
      "upside": null
    },
    {
      "name": "Spencer Shrader",
      "opponent": "at WAS",
      "opponent_id": "WAS",
      "player_id": 19171,
      "player_url": "https://www.fftoday.com/stats/players/19171/Spencer_Shrader",
      "projected_points": 6,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 3,
        "xpt_miss": 0
      },
      "team": "IND",
      "upside": null
    },
    {
      "name": "Cameron Dicker",
      "opponent": "at SEA",
      "opponent_id": "SEA",
      "player_id": 18318,
      "player_url": "https://www.fftoday.com/stats/players/18318/Cameron_Dicker",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "LAC",
      "upside": null
    },
    {
      "name": "Nick Folk",
      "opponent": "at NO",
      "opponent_id": "NO",
      "player_id": 3188,
      "player_url": "https://www.fftoday.com/stats/players/3188/Nick_Folk",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "ATL",
      "upside": null
    },
    {
      "name": "Chase McLaughlin",
      "opponent": "vs. GB",
      "opponent_id": "GB",
      "player_id": 16824,
      "player_url": "https://www.fftoday.com/stats/players/16824/Chase_McLaughlin",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "TB",
      "upside": null
    },
    {
      "name": "Riley Patterson",
      "opponent": "at MIN",
      "opponent_id": "MIN",
      "player_id": 17860,
      "player_url": "https://www.fftoday.com/stats/players/17860/Riley_Patterson",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "MIA",
      "upside": null
    },
    {
      "name": "Jason Sanders",
      "opponent": "at CHI",
      "opponent_id": "CHI",
      "player_id": 16208,
      "player_url": "https://www.fftoday.com/stats/players/16208/Jason_Sanders",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "NYJ",
      "upside": null
    },
    {
      "name": "Joey Slye",
      "opponent": "at BAL",
      "opponent_id": "BAL",
      "player_id": 16763,
      "player_url": "https://www.fftoday.com/stats/players/16763/Joey_Slye",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "TEN",
      "upside": null
    },
    {
      "name": "Andre Szmyt",
      "opponent": "vs. PIT",
      "opponent_id": "PIT",
      "player_id": 19565,
      "player_url": "https://www.fftoday.com/stats/players/19565/Andre_Szmyt",
      "projected_points": 5,
      "rank_change": null,
      "risk": null,
      "stats": {
        "fg": 1,
        "fg_miss": 0,
        "xpt": 2,
        "xpt_miss": 0
      },
      "team": "CLE",
      "upside": null
    }
  ],
  "position": "K",
  "scoring": "PPR",
  "scoring_label": "FFToday PPR",
  "season": 2026,
  "source_url": "https://www.fftoday.com/rankings/playerwkproj.php?PosID=80&LeagueID=107644&order_by=FFPts&sort_order=DESC&cur_page=0",
  "total_count": 32,
  "week": 4
}
```

### Weekly rankings

- Capability: `fantasy-sports-rankings/weekly_rankings`
- Description: FFToday staff weekly rankings for one position from GET www.fftoday.com/rankings/playerwkrank.php: rank, tier, team, opponent, movement arrow and upside/risk notes, with the update date. The site ranks on Half-PPR scoring only.
- Instructions: Weekly start/sit order for a position.
- Cost: 5 credits per call
- Capability file: [Weekly rankings](https://firecrawl.dev/alexandria/agents/providers/fftoday-com/fantasy-sports-rankings/weekly_rankings)

Accepted options:
- `limit` (number): Return only the top N players. Omit for the full list. Example: `10`
- `position` (string, required): Position. DEF is team defense / special teams; DL, LB and DB are IDP. Example: `QB`
- `season` (number): Season year; requires week. Omit for the current season. Example: `2010`
- `week` (number): NFL week: 1-18, or 21-24 for the wild-card, divisional, conference and Super Bowl rounds. Omit for the site's current week. A week the site has not published is not_found. Example: `1`

Response schema example:
```json
{
  "count": 32,
  "last_updated": "9/30/2026",
  "observed_at_ms": 1790967812243,
  "players": [
    {
      "name": "Minnesota Vikings",
      "opponent": "vs. MIA",
      "opponent_id": "MIA",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9022",
      "rank": 1,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9022,
      "tier": 1,
      "upside": null
    },
    {
      "name": "Pittsburgh Steelers",
      "opponent": "at CLE",
      "opponent_id": "CLE",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9008",
      "rank": 2,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9008,
      "tier": 1,
      "upside": null
    },
    {
      "name": "Seattle Seahawks",
      "opponent": "vs. LAC",
      "opponent_id": "LAC",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9013",
      "rank": 3,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9013,
      "tier": 1,
      "upside": null
    },
    {
      "name": "Baltimore Ravens",
      "opponent": "vs. TEN",
      "opponent_id": "TEN",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9030",
      "rank": 4,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9030,
      "tier": 1,
      "upside": null
    },
    {
      "name": "Green Bay Packers",
      "opponent": "at TB",
      "opponent_id": "TB",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9021",
      "rank": 5,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9021,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Buffalo Bills",
      "opponent": "vs. NE",
      "opponent_id": "NE",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9000",
      "rank": 6,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9000,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Indianapolis Colts",
      "opponent": "at WAS",
      "opponent_id": "WAS",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9001",
      "rank": 7,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9001,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Cleveland Browns",
      "opponent": "vs. PIT",
      "opponent_id": "PIT",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9006",
      "rank": 8,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9006,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Houston Texans",
      "opponent": "vs. DAL",
      "opponent_id": "DAL",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9031",
      "rank": 9,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9031,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Los Angeles Rams",
      "opponent": "at PHI",
      "opponent_id": "PHI",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9032",
      "rank": 10,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9032,
      "tier": 2,
      "upside": null
    },
    {
      "name": "New York Giants",
      "opponent": "vs. ARI",
      "opponent_id": "ARI",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9015",
      "rank": 11,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9015,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Kansas City Chiefs",
      "opponent": "at LV",
      "opponent_id": "LV",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9010",
      "rank": 12,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9010,
      "tier": 2,
      "upside": null
    },
    {
      "name": "Tampa Bay Buccaneers",
      "opponent": "vs. GB",
      "opponent_id": "GB",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9023",
      "rank": 13,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9023,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Philadelphia Eagles",
      "opponent": "vs. LAR",
      "opponent_id": "LAR",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9016",
      "rank": 14,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9016,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Chicago Bears",
      "opponent": "vs. NYJ",
      "opponent_id": "NYJ",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9019",
      "rank": 15,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9019,
      "tier": 3,
      "upside": null
    },
    {
      "name": "New Orleans Saints",
      "opponent": "vs. ATL",
      "opponent_id": "ATL",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9026",
      "rank": 16,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9026,
      "tier": 3,
      "upside": null
    },
    {
      "name": "New York Jets",
      "opponent": "at CHI",
      "opponent_id": "CHI",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9004",
      "rank": 17,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9004,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Arizona Cardinals",
      "opponent": "at NYG",
      "opponent_id": "NYG",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9017",
      "rank": 18,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9017,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Denver Broncos",
      "opponent": "at SF",
      "opponent_id": "SF",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9009",
      "rank": 19,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9009,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Miami Dolphins",
      "opponent": "at MIN",
      "opponent_id": "MIN",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9002",
      "rank": 20,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9002,
      "tier": 3,
      "upside": null
    },
    {
      "name": "San Francisco 49ers",
      "opponent": "vs. DEN",
      "opponent_id": "DEN",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9027",
      "rank": 21,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9027,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Detroit Lions",
      "opponent": "at CAR",
      "opponent_id": "CAR",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9020",
      "rank": 22,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9020,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Cincinnati Bengals",
      "opponent": "vs. JAC",
      "opponent_id": "JAC",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9005",
      "rank": 23,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9005,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Washington Commanders",
      "opponent": "vs. IND",
      "opponent_id": "IND",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9018",
      "rank": 24,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9018,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Dallas Cowboys",
      "opponent": "at HOU",
      "opponent_id": "HOU",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9014",
      "rank": 25,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9014,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Los Angeles Chargers",
      "opponent": "at SEA",
      "opponent_id": "SEA",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9033",
      "rank": 26,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9033,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Las Vegas Raiders",
      "opponent": "vs. KC",
      "opponent_id": "KC",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9011",
      "rank": 27,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9011,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Atlanta Falcons",
      "opponent": "at NO",
      "opponent_id": "NO",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9024",
      "rank": 28,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9024,
      "tier": 3,
      "upside": null
    },
    {
      "name": "Jacksonville Jaguars",
      "opponent": "at CIN",
      "opponent_id": "CIN",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9029",
      "rank": 29,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9029,
      "tier": 3,
      "upside": null
    },
    {
      "name": "New England Patriots",
      "opponent": "at BUF",
      "opponent_id": "BUF",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9003",
      "rank": 30,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9003,
      "tier": 4,
      "upside": null
    },
    {
      "name": "Carolina Panthers",
      "opponent": "vs. DET",
      "opponent_id": "DET",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9028",
      "rank": 31,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9028,
      "tier": 4,
      "upside": null
    },
    {
      "name": "Tennessee Titans",
      "opponent": "at BAL",
      "opponent_id": "BAL",
      "player_id": null,
      "player_url": "https://www.fftoday.com/stats/players?TeamID=9007",
      "rank": 32,
      "rank_change": null,
      "risk": null,
      "team": null,
      "team_id": 9007,
      "tier": 4,
      "upside": null
    }
  ],
  "position": "DEF",
  "scoring": "HALF",
  "season": 2026,
  "source_url": "https://www.fftoday.com/rankings/playerwkrank.php?PosID=80",
  "total_count": 32,
  "week": 4
}
```
