library(fflr)
packageVersion("fflr")
#> [1] '2026.0.1'
ffl_id(leagueId = "42654852")
#> Temporarily set `fflr.leagueId` option to 42654852
#> [1] "42654852"This vignette will demonstrate the fflr functions used to reach equivalency with the ESPN fantasy football website. The website has eight section headers with various subsections:
The My Team page presents an overview of, well, your fantasy team. From this page, a team manager can set their lineup and see statistics and news on the players on their roster.
There are six subsections on the My Team page.
The team_roster() function returns all rosters
in a league. The output of this function is organized to replicate the
layout of the table found on the website. Players are listed in order of
their “slot” with name and team information followed by projected and
actual scores and ownership statistics.
my_team <- team_roster(scoringPeriodId = 1)[[1]] # select first roster
my_team[, -(1:3)]
#> # A tibble: 16 × 13
#> abbrev lineupSlot playerId firstName lastName proTeam position injuryStatus
#> <fct> <fct> <int> <chr> <chr> <fct> <fct> <chr>
#> 1 AUS QB 4426348 Jayden Daniels WSH QB A
#> 2 AUS RB 4429160 De'Von Achane MIA RB A
#> 3 AUS RB 4685382 Omarion Hampton LAC RB A
#> 4 AUS WR 4426515 Puka Nacua LAR WR A
#> 5 AUS WR 4374302 Amon-Ra St. Brown DET WR A
#> 6 AUS TE 4361307 Trey McBride ARI TE A
#> 7 AUS FLEX 4870808 Jeremiyah Love ARI RB Q
#> 8 AUS D/ST -16026 Seahawks D/ST SEA D/ST A
#> 9 AUS K 3953687 Brandon Aubrey DAL K A
#> 10 AUS BE 4567048 Kenneth Walker III KC RB A
#> 11 AUS BE 4569618 Garrett Wilson NYJ WR A
#> 12 AUS BE 4685472 Tetairoa McMillan CAR WR A
#> 13 AUS BE 4429615 Zay Flowers BAL WR Q
#> 14 AUS BE 16800 Davante Adams LAR WR A
#> 15 AUS BE 4696981 Cam Skattebo NYG RB A
#> 16 AUS BE 3915416 DJ Moore BUF WR A
#> # ℹ 5 more variables: projectedScore <dbl>, actualScore <dbl>, percentStarted <dbl>,
#> # percentOwned <dbl>, percentChange <dbl>The player_outlook() and player_news()
functions return news on your roster. The first returns all
outlooks by player and week and cannot be refined beyond setting a
limit of players to return (in order of rank).
player_outlook(limit = 1)
#> # A tibble: 1 × 5
#> seasonId id firstName lastName outlook
#> <int> <int> <chr> <chr> <chr>
#> 1 2026 4429795 Jahmyr Gibbs NAThe second fiction takes a single playerId value and
returns all the recent news on that player, including premium stories in
HTML format.
player_news(playerId = "3139477", parseHTML = FALSE)
#> # A tibble: 13 × 6
#> id published type premium headline body
#> <int> <dttm> <chr> <lgl> <chr> <chr>
#> 1 3139477 2026-09-08 17:14:59 Rotowire FALSE Chiefs head coach Andy Reid said Tu… "Mah…
#> 2 3139477 2026-09-04 16:47:20 Story FALSE Fantasy Football 'Do Draft' list: D… "<p>…
#> 3 3139477 2026-09-04 16:46:49 Story FALSE Fantasy football sleepers, busts an… "<p>…
#> 4 3139477 2026-08-29 17:08:09 Rotowire FALSE Mahomes (knee) is on track to start… "Mah…
#> 5 3139477 2026-08-26 11:08:55 Story FALSE Fantasy football: Answering one key… "<p>…
#> 6 3139477 2026-08-23 01:37:05 Rotowire FALSE Mahomes (knee) said during Saturday… "Mah…
#> 7 3139477 2026-08-20 14:48:44 Rotowire FALSE Head coach Andy Reid said that Maho… "The…
#> 8 3139477 2026-08-18 03:46:29 Story FALSE Fantasy football superlatives: The … "<p>…
#> 9 3139477 2026-08-13 16:00:42 Rotowire FALSE Mahomes (knee) won't play in Kansas… "Mah…
#> 10 3139477 2026-08-07 16:29:13 Rotowire FALSE Chiefs coach Andy Reid said Friday … "Rei…
#> 11 3139477 2026-08-07 15:29:09 Media FALSE Should fantasy managers be cautious… "Sho…
#> 12 3139477 2026-07-29 15:04:39 Rotowire FALSE Mahomes (knee) is participating in … "Chi…
#> 13 3139477 2026-07-24 20:00:47 Rotowire FALSE Chiefs head coach Andy Reid said Fr… "Rei…ESPN fantasy leagues have their own unique settings and structure. This package has been tested for a very narrow subset of those possible settings.
league_info(leagueId = "42654852")
#> # A tibble: 1 × 6
#> id seasonId name isPublic size finalScoringPeriod
#> <int> <int> <chr> <lgl> <int> <int>
#> 1 42654852 2026 FFLR Test League TRUE 4 17
league_name()
#> [1] "FFLR Test League"
league_size()
#> # A tibble: 1 × 2
#> seasonId size
#> <int> <int>
#> 1 2026 4
str(league_status())
#> tibble [1 × 12] (S3: tbl_df/tbl/data.frame)
#> $ year : int 2026
#> $ isActive : logi TRUE
#> $ activatedDate : POSIXct[1:1], format: "2026-09-08 23:04:21"
#> $ scoringPeriodId : int 1
#> $ firstScoringPeriod : int 1
#> $ finalScoringPeriod : int 17
#> $ previousSeasons :List of 1
#> ..$ : int [1:5] 2021 2022 2023 2024 2025
#> $ standingsUpdateDate : POSIXct[1:1], format: "2026-09-08 23:32:17"
#> $ teamsJoined : int 4
#> $ waiverLastExecutionDate: POSIXct[1:1], format: "2026-09-08 23:04:21"
#> $ waiverNextExecutionDate: POSIXct[1:1], format: NA
#> $ waiverProcessStatus :List of 1
#> ..$ :'data.frame': 0 obs. of 1 variable:
#> .. ..$ date: 'POSIXct' num(0)
#> .. .. ..- attr(*, "tzone")= chr ""
draft_settings()
#> # A tibble: 1 × 13
#> seasonId auctionBudget availableDate date isTradingEnabled
#> <int> <chr> <dttm> <dttm> <lgl>
#> 1 2026 NA 2026-09-08 22:30:00 2026-09-08 23:30:00 FALSE
#> # ℹ 8 more variables: keeperCount <int>, keeperCountFuture <int>, keeperOrderType <chr>,
#> # leagueSubType <chr>, orderType <chr>, pickOrder <list>, timePerSelection <int>,
#> # type <chr>
roster_settings()
#> # A tibble: 1 × 8
#> seasonId isBenchUnlimited isUsingUndroppableList lineupLocktimeType lineupSlotCounts
#> <int> <lgl> <lgl> <chr> <list>
#> 1 2026 TRUE TRUE INDIVIDUAL_GAME <df [25 × 2]>
#> # ℹ 3 more variables: moveLimit <int>, positionLimits <list>, rosterLocktimeType <chr>
scoring_settings()
#> # A tibble: 1 × 7
#> seasonId scoringType playerRankType homeTeamBonus playoffHomeTeamBonus
#> <int> <chr> <chr> <int> <int>
#> 1 2026 H2H_POINTS PPR 1 0
#> # ℹ 2 more variables: playoffMatchupTieRule <chr>, scoringItems <list>
acquisition_settings()
#> # A tibble: 1 × 12
#> year acquisitionBudget acquisitionLimit acquisitionType finalPlaceTransactionElig…¹
#> <int> <int> <int> <chr> <int>
#> 1 2026 100 -1 WAIVERS_TRADITIONAL 0
#> # ℹ abbreviated name: ¹finalPlaceTransactionEligible
#> # ℹ 7 more variables: matchupLimitPerScoringPeriod <lgl>, minimumBid <int>,
#> # transactionLockingEnabled <lgl>, waiverHours <int>, waiverOrderReset <lgl>,
#> # waiverProcessDays <list>, waiverProcessHour <int>
schedule_settings()
#> # A tibble: 0 × 14
#> # ℹ 14 variables: seasonId <int>, consolationLadderDisabled <lgl>, divisions <list>,
#> # matchupPeriodCount <int>, matchupPeriodLength <int>, matchupPeriods <list>,
#> # periodTypeId <int>, playoffMatchupPeriodLength <int>,
#> # playoffMatchupPeriodLengthByRound <named list>, playoffReseed <lgl>,
#> # playoffSeedingRule <chr>, playoffSeedingRuleBy <int>, playoffTeamCount <int>,
#> # variablePlayoffMatchupPeriodLength <lgl>
league_members()
#> # A tibble: 1 × 6
#> memberId displayName firstName lastName isLeagueCreator isLeagueManager
#> <chr> <chr> <chr> <chr> <lgl> <lgl>
#> 1 {22DFE7FF-9DF2-4F3B-9FE7… K5cents Kiernan Nicholls TRUE FALSE
team_roster(scoringPeriodId = 1)
#> $AUS
#> # A tibble: 16 × 16
#> seasonId scoringPeriodId teamId abbrev lineupSlot playerId firstName lastName proTeam
#> <int> <int> <int> <fct> <fct> <int> <chr> <chr> <fct>
#> 1 2026 1 1 AUS QB 4426348 Jayden Daniels WSH
#> 2 2026 1 1 AUS RB 4429160 De'Von Achane MIA
#> 3 2026 1 1 AUS RB 4685382 Omarion Hampton LAC
#> 4 2026 1 1 AUS WR 4426515 Puka Nacua LAR
#> 5 2026 1 1 AUS WR 4374302 Amon-Ra St. Brown DET
#> 6 2026 1 1 AUS TE 4361307 Trey McBride ARI
#> 7 2026 1 1 AUS FLEX 4870808 Jeremiyah Love ARI
#> 8 2026 1 1 AUS D/ST -16026 Seahawks D/ST SEA
#> 9 2026 1 1 AUS K 3953687 Brandon Aubrey DAL
#> 10 2026 1 1 AUS BE 4567048 Kenneth Walker III KC
#> 11 2026 1 1 AUS BE 4569618 Garrett Wilson NYJ
#> 12 2026 1 1 AUS BE 4685472 Tetairoa McMillan CAR
#> 13 2026 1 1 AUS BE 4429615 Zay Flowers BAL
#> 14 2026 1 1 AUS BE 16800 Davante Adams LAR
#> 15 2026 1 1 AUS BE 4696981 Cam Skattebo NYG
#> 16 2026 1 1 AUS BE 3915416 DJ Moore BUF
#> # ℹ 7 more variables: position <fct>, injuryStatus <chr>, projectedScore <dbl>,
#> # actualScore <dbl>, percentStarted <dbl>, percentOwned <dbl>, percentChange <dbl>
#>
#> $BOS
#> # A tibble: 16 × 16
#> seasonId scoringPeriodId teamId abbrev lineupSlot playerId firstName lastName proTeam
#> <int> <int> <int> <fct> <fct> <int> <chr> <chr> <fct>
#> 1 2026 1 2 BOS QB 3918298 Josh Allen BUF
#> 2 2026 1 2 BOS RB 4430807 Bijan Robinson ATL
#> 3 2026 1 2 BOS RB 3929630 Saquon Barkley PHI
#> 4 2026 1 2 BOS WR 4430878 Jaxon Smith-Nji… SEA
#> 5 2026 1 2 BOS WR 4241389 CeeDee Lamb DAL
#> 6 2026 1 2 BOS TE 4723086 Colston Loveland CHI
#> 7 2026 1 2 BOS FLEX 3043078 Derrick Henry BAL
#> 8 2026 1 2 BOS D/ST -16007 Broncos D/ST DEN
#> 9 2026 1 2 BOS K 2473037 Jason Myers SEA
#> 10 2026 1 2 BOS BE 4428331 Rashee Rice KC
#> 11 2026 1 2 BOS BE 4361579 Javonte Williams DAL
#> 12 2026 1 2 BOS BE 4241478 DeVonta Smith PHI
#> 13 2026 1 2 BOS BE 4612826 Ladd McConkey LAC
#> 14 2026 1 2 BOS BE 4882093 Bhayshul Tuten JAX
#> 15 2026 1 2 BOS BE 4596448 Bucky Irving TB
#> 16 2026 1 2 BOS BE 4431299 Rome Odunze CHI
#> # ℹ 7 more variables: position <fct>, injuryStatus <chr>, projectedScore <dbl>,
#> # actualScore <dbl>, percentStarted <dbl>, percentOwned <dbl>, percentChange <dbl>
#>
#> $CHI
#> # A tibble: 16 × 16
#> seasonId scoringPeriodId teamId abbrev lineupSlot playerId firstName lastName proTeam
#> <int> <int> <int> <fct> <fct> <int> <chr> <chr> <fct>
#> 1 2026 1 3 CHI QB 4431452 Drake Maye NE
#> 2 2026 1 3 CHI RB 4429795 Jahmyr Gibbs DET
#> 3 2026 1 3 CHI RB 4242335 Jonathan Taylor IND
#> 4 2026 1 3 CHI WR 4426502 Drake London ATL
#> 5 2026 1 3 CHI WR 4047646 A.J. Brown NE
#> 6 2026 1 3 CHI TE 4431459 Tyler Warren IND
#> 7 2026 1 3 CHI FLEX 4379399 James Cook III BUF
#> 8 2026 1 3 CHI D/ST -16034 Texans D/ST HOU
#> 9 2026 1 3 CHI K 4574716 Harrison Mevis LAR
#> 10 2026 1 3 CHI BE 4258173 Nico Collins HOU
#> 11 2026 1 3 CHI BE 4361370 Chris Olave NO
#> 12 2026 1 3 CHI BE 4430737 Kyren Williams LAR
#> 13 2026 1 3 CHI BE 4595348 Malik Nabers NYG
#> 14 2026 1 3 CHI BE 4567750 Emeka Egbuka TB
#> 15 2026 1 3 CHI BE 4685702 Quinshon Judkins CLE
#> 16 2026 1 3 CHI BE 4372016 Jaylen Waddle DEN
#> # ℹ 7 more variables: position <fct>, injuryStatus <chr>, projectedScore <dbl>,
#> # actualScore <dbl>, percentStarted <dbl>, percentOwned <dbl>, percentChange <dbl>
#>
#> $DEN
#> # A tibble: 16 × 16
#> seasonId scoringPeriodId teamId abbrev lineupSlot playerId firstName lastName proTeam
#> <int> <int> <int> <fct> <fct> <int> <chr> <chr> <fct>
#> 1 2026 1 4 DEN QB 3916387 Lamar Jackson BAL
#> 2 2026 1 4 DEN RB 3117251 Christian McCaffrey SF
#> 3 2026 1 4 DEN RB 4362238 Chase Brown CIN
#> 4 2026 1 4 DEN WR 4362628 Ja'Marr Chase CIN
#> 5 2026 1 4 DEN WR 4262921 Justin Jefferson MIN
#> 6 2026 1 4 DEN TE 4432665 Brock Bowers LV
#> 7 2026 1 4 DEN FLEX 4890973 Ashton Jeanty LV
#> 8 2026 1 4 DEN D/ST -16023 Steelers D/ST PIT
#> 9 2026 1 4 DEN K 4362081 Cameron Dicker LAC
#> 10 2026 1 4 DEN BE 4426354 George Pickens DAL
#> 11 2026 1 4 DEN BE 4427366 Breece Hall NYJ
#> 12 2026 1 4 DEN BE 4239996 Travis Etienne J… NO
#> 13 2026 1 4 DEN BE 4239993 Tee Higgins CIN
#> 14 2026 1 4 DEN BE 4259545 D'Andre Swift CHI
#> 15 2026 1 4 DEN BE 3121422 Terry McLaurin WSH
#> 16 2026 1 4 DEN BE 4426388 Jameson Williams DET
#> # ℹ 7 more variables: position <fct>, injuryStatus <chr>, projectedScore <dbl>,
#> # actualScore <dbl>, percentStarted <dbl>, percentOwned <dbl>, percentChange <dbl>
tidy_schedule(scoringPeriodId = 1)
#> # A tibble: 68 × 7
#> seasonId matchupPeriodId matchupId teamId abbrev opponent isHome
#> <int> <int> <int> <int> <fct> <fct> <lgl>
#> 1 2026 1 1 1 AUS CHI TRUE
#> 2 2026 1 1 3 CHI AUS FALSE
#> 3 2026 1 2 2 BOS DEN TRUE
#> 4 2026 1 2 4 DEN BOS FALSE
#> 5 2026 2 3 3 CHI DEN TRUE
#> 6 2026 2 3 4 DEN CHI FALSE
#> 7 2026 2 4 1 AUS BOS TRUE
#> 8 2026 2 4 2 BOS AUS FALSE
#> 9 2026 3 5 4 DEN AUS TRUE
#> 10 2026 3 5 1 AUS DEN FALSE
#> # ℹ 58 more rows
league_messages(scoringPeriodId = 1)
#> # A tibble: 7 × 7
#> id type author date content messages viewableBy
#> <chr> <chr> <chr> <dttm> <chr> <list> <list>
#> 1 3028e0c5 ACTIVITY_STATUS NA 2026-09-08 23:32:17 NA <df> <NULL>
#> 2 11df1b4d ACTIVITY_STATUS NA 2026-09-08 23:11:31 NA <df> <NULL>
#> 3 bcc7a6f1 ACTIVITY_SETTINGS {22DFE7FF-9D… 2026-09-08 23:11:07 NA <df> <NULL>
#> 4 e531eacf ACTIVITY_SETTINGS {22DFE7FF-9D… 2026-09-08 23:09:52 NA <df> <NULL>
#> 5 5ac3c0f6 ACTIVITY_STATUS {22DFE7FF-9D… 2026-09-08 23:04:21 NA <df> <NULL>
#> 6 0f22d9c6 CHAT_ALL_MEMBERS WeeklyRecapA… 2023-09-12 15:09:23 NA <df> <NULL>
#> 7 5af42ec9 NOTE {22DFE7FF-9D… 2021-09-13 23:46:07 This [… <list> <NULL>
transaction_counter()
#> # A tibble: 4 × 14
#> seasonId scoringPeriodId teamId abbrev waiverRank acquisitionBudgetSpent acquisitions
#> <int> <int> <int> <fct> <int> <int> <int>
#> 1 2026 1 1 AUS 1 0 0
#> 2 2026 1 2 BOS 3 0 0
#> 3 2026 1 3 CHI 4 0 0
#> 4 2026 1 4 DEN 2 0 0
#> # ℹ 7 more variables: drops <int>, misc <int>, moveToActive <int>, moveToIR <int>,
#> # paid <dbl>, teamCharges <dbl>, trades <int>
draft_recap()
#> # A tibble: 64 × 15
#> seasonId autoDraftTypeId bidAmount pickId keeper lineupSlot nominatingTeamId
#> <int> <int> <int> <int> <lgl> <fct> <fct>
#> 1 2026 1 NA 1 FALSE RB NA
#> 2 2026 3 NA 2 FALSE RB NA
#> 3 2026 3 NA 3 FALSE WR NA
#> 4 2026 3 NA 4 FALSE WR NA
#> 5 2026 1 NA 5 FALSE RB NA
#> 6 2026 3 NA 6 FALSE WR NA
#> 7 2026 3 NA 7 FALSE RB NA
#> 8 2026 3 NA 8 FALSE WR NA
#> 9 2026 1 NA 9 FALSE FLEX NA
#> 10 2026 3 NA 10 FALSE WR NA
#> # ℹ 54 more rows
#> # ℹ 8 more variables: overallPickNumber <int>, playerId <int>, reservedForKeeper <lgl>,
#> # roundId <int>, roundPickNumber <int>, teamId <int>, abbrev <fct>, tradeLocked <lgl>
recent_activity(scoringPeriodId = 1)
#> # A tibble: 64 × 13
#> bidAmount executionType id isActingAsTeamOwner isLeagueManager isPending items
#> <int> <chr> <chr> <lgl> <lgl> <lgl> <lis>
#> 1 0 EXECUTE 90bf9496-4… FALSE FALSE FALSE <df>
#> 2 0 EXECUTE 427e6b6c-b… FALSE FALSE FALSE <df>
#> 3 0 EXECUTE d67801e3-b… FALSE FALSE FALSE <df>
#> 4 0 EXECUTE 4b42f02b-6… FALSE FALSE FALSE <df>
#> 5 0 EXECUTE 7e2e26ef-a… FALSE FALSE FALSE <df>
#> 6 0 EXECUTE d316cb53-8… FALSE FALSE FALSE <df>
#> 7 0 EXECUTE 1fe241d8-5… FALSE FALSE FALSE <df>
#> 8 0 EXECUTE 72b5fc35-c… FALSE FALSE FALSE <df>
#> 9 0 EXECUTE 0b7456b1-9… FALSE FALSE FALSE <df>
#> 10 0 EXECUTE c6ffa20a-9… FALSE FALSE FALSE <df>
#> # ℹ 54 more rows
#> # ℹ 6 more variables: proposedDate <dttm>, scoringPeriodId <int>,
#> # skipTransactionCounters <lgl>, status <chr>, teamId <int>, type <chr>
list_players(limit = 10, proTeam = "MIA", status = "ALL")
#> # A tibble: 10 × 17
#> seasonId scoringPeriodId id firstName lastName proTeam defaultPosition
#> <int> <dbl> <int> <chr> <chr> <fct> <fct>
#> 1 2026 1 4429160 De'Von Achane MIA RB
#> 2 2026 1 4242512 Malik Willis MIA QB
#> 3 2026 1 4869645 Caleb Douglas MIA WR
#> 4 2026 1 4569603 Malik Washington MIA WR
#> 5 2026 1 4869961 Chris Bell MIA WR
#> 6 2026 1 4367209 Greg Dulcich MIA TE
#> 7 2026 1 4682745 Jaylen Wright MIA RB
#> 8 2026 1 4711533 Ollie Gordon II MIA RB
#> 9 2026 1 4249417 Jalen Tolbert MIA WR
#> 10 2026 1 -16015 Dolphins D/ST MIA D/ST
#> # ℹ 10 more variables: injuryStatus <chr>, percentStarted <dbl>, percentOwned <dbl>,
#> # percentChange <dbl>, auctionValueAverage <dbl>, averageDraftPosition <dbl>,
#> # projectedScore <dbl>, lastScore <dbl>, lastSeason <dbl>, currentSeason <dbl>
live_scoring()
#> # A tibble: 4 × 6
#> currentMatchupPeriod matchupId teamId abbrev totalPointsLive totalProjectedPointsLive
#> <int> <int> <int> <fct> <dbl> <dbl>
#> 1 1 1 1 AUS 1 140.
#> 2 1 1 3 CHI 0 128.
#> 3 1 2 2 BOS 1 137.
#> 4 1 2 4 DEN 0 142.
league_standings()
#> # A tibble: 4 × 17
#> seasonId scoringPeriodId teamId abbrev draftDayProjectedRank currentProjectedRank
#> <int> <int> <int> <fct> <int> <int>
#> 1 2026 1 1 AUS 2 2
#> 2 2026 1 2 BOS 3 3
#> 3 2026 1 3 CHI 4 4
#> 4 2026 1 4 DEN 1 1
#> # ℹ 11 more variables: playoffSeed <int>, rankCalculatedFinal <int>, gamesBack <dbl>,
#> # losses <int>, percentage <dbl>, pointsAgainst <dbl>, pointsFor <dbl>,
#> # streakLength <int>, streakType <chr>, ties <int>, wins <int>