Learn R Programming

ffscrapr

An R Client for Fantasy Football League APIs

Helps access various Fantasy Football APIs (currently MFL, Sleeper, Fleaflicker, and ESPN - perhaps eventually Yahoo and others) by handling authentication/rate-limiting/caching, forming appropriate calls, and returning tidy dataframes which can be easily connected to other data sources.

Installation

Install the stable version of this package from CRAN:

install.packages("ffscrapr")

Install the development version from either r-universe or GitHub:

install.packages("ffscrapr", repos = c("https://ffverse.r-universe.dev", getOption("repos")))

# pak is recommended, see https://github.com/r-lib/pak
pak::pak("ffverse/ffscrapr")

# can also use remotes
remotes::install_github("ffverse/ffscrapr")

Usage

All ffscrapr functions start with a connection object created by ff_connect(), which stores connection, authentication, and other user-defined parameters. This object is used by all other functions to help return the correct data.

library(ffscrapr)
ssb <- ff_connect(platform = "mfl", league_id = "54040", season = 2020)

# Get a summary of league settings
ff_league(ssb) %>% str()
#> tibble [1 × 17] (S3: tbl_df/tbl/data.frame)
#>  $ league_id        : chr "54040"
#>  $ league_name      : chr "The Super Smash Bros Dynasty League"
#>  $ season           : int 2020
#>  $ league_type      : chr NA
#>  $ franchise_count  : num 14
#>  $ qb_type          : chr "1QB"
#>  $ idp              : logi FALSE
#>  $ scoring_flags    : chr "0.5_ppr, TEPrem, PP1D"
#>  $ best_ball        : logi FALSE
#>  $ salary_cap       : logi FALSE
#>  $ player_copies    : num 1
#>  $ years_active     : chr "2018-2021"
#>  $ qb_count         : chr "1"
#>  $ roster_size      : num 33
#>  $ league_depth     : num 462
#>  $ draft_type       : chr " email draft"
#>  $ draft_player_pool: chr "Both"

# Get rosters
ff_rosters(ssb)
#> # A tibble: 417 × 11
#>   franchise_id franchise_name player_id player_name     pos   team    age
#>   <chr>        <chr>          <chr>     <chr>           <chr> <chr> <dbl>
#> 1 0001         Team Pikachu   13189     Engram, Evan    TE    NYG    28.4
#> 2 0001         Team Pikachu   11680     Landry, Jarvis  WR    CLE    30.2
#> 3 0001         Team Pikachu   13645     Smith, Tre'Quan WR    NOS    27.1
#> 4 0001         Team Pikachu   12110     Brate, Cameron  TE    TBB    31.6
#> 5 0001         Team Pikachu   13168     Reynolds, Josh  WR    LAR    28  
#> # … with 412 more rows, and 4 more variables: roster_status <chr>,
#> #   drafted <chr>, draft_year <chr>, draft_round <chr>
#> # ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

# Get transactions
ff_transactions(ssb)
#> # A tibble: 1,145 × 12
#>   timestamp           type  type_desc   franchise_id franchise_name
#>   <dttm>              <chr> <chr>       <chr>        <chr>         
#> 1 2021-02-12 14:32:39 TRADE traded_away 0008         Team Bowser   
#> 2 2021-02-12 14:32:39 TRADE traded_for  0008         Team Bowser   
#> 3 2021-02-12 14:32:39 TRADE traded_for  0008         Team Bowser   
#> 4 2021-02-12 14:32:39 TRADE traded_for  0008         Team Bowser   
#> 5 2021-02-12 14:32:39 TRADE traded_for  0008         Team Bowser   
#> # … with 1,140 more rows, and 7 more variables: player_id <chr>,
#> #   player_name <chr>, pos <chr>, team <chr>, bbid_spent <dbl>,
#> #   trade_partner <chr>, comments <chr>
#> # ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

Platform-specific guides on getting started with ffscrapr are here:

There are also some more advanced guides for custom API calls in the Articles section, as well as some guides on optimizing ffscrapr’s performance.

Support

The best places to get help on this package are:

Contributing

Many hands make light work! Here are some ways you can contribute to this project:

Terms of Use

The R code for this package is released as open source under the MIT license.

The APIs and data accessed by this package belong to their respective owners, and are governed by their terms of use.

Copy Link

Version

Install

install.packages('ffscrapr')

Monthly Downloads

461

Version

1.4.8

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Tan Ho

Last Published

February 12th, 2023

Functions in ffscrapr (1.4.8)

dp_cleannames

Clean Names
.espn_activity_map

ESPN Activity/Transaction Mapping
dp_clean_html

Remove HTML from string
dp_values

Import latest DynastyProcess values
espn_getendpoint_raw

GET ESPN endpoint (raw)
espn_potentialpoints

ESPN Potential Points
.retry_get

Create RETRY version of GET
ff_standings

Get Standings
dp_playerids

Import latest DynastyProcess player IDs
espn_getendpoint

GET ESPN fantasy league endpoint
ff_starter_positions

Get Starting Lineup Settings
espn_players

ESPN players library
.retry_post

Create RETRY version of POST
ff_rosters

Get League Rosters
ff_schedule

Get Schedule
espn_connect

Connect to ESPN League
dp_name_mapping

Alternate name mappings
ff_starters

Get Starting Lineups
ff_scoring

Get League Scoring Settings
fleaflicker_connect

Connect to Fleaflicker League
ff_template

Default conn objects
%>%

Pipe operator
ffscrapr-package

ffscrapr: API Client for Fantasy Football League Platforms
ff_scoringhistory

Get League-Specific Scoring History
mfl_connect

Connect to MFL League
mfl_allrules

MFL rules library - memoised via zzz.R
fleaflicker_userleagues

Fleaflicker - Get User Leagues
nflfastr_stat_mapping

Mappings for nflfastr to fantasy platform scoring
sleeper_connect

Connect to Sleeper League
nflfastr_weekly

Import latest nflfastr weekly stats
release_bullets

Release questions
ff_league

Get League Summary
sleeper_getendpoint

GET any Sleeper endpoint
mfl_getendpoint

GET any MFL endpoint
ff_draftpicks

Get Draft Picks
ff_connect

Connect to a League
ff_franchises

Get League Franchises
.fn_drop_nulls

Drop nulls from a list/vector
.fn_set_ratelimit

Set rate limit
fleaflicker_players

Fleaflicker players library
fleaflicker_getendpoint

GET any Fleaflicker endpoint
ff_draft

Get Draft Results
nflfastr_rosters

Import nflfastr roster data
mfl_players

MFL players library
set_unescaped_cookies

Add unescaped cookies
ffverse_sitrep

ffverse sitrep
ff_userleagues

Get User Leagues
ff_playerscores

Get Player Scoring History
ff_transactions

Get League Transactions
sleeper_userleagues

Sleeper - Get User Leagues
sleeper_players

Sleeper players library
.espn_lineupslot_map

ESPN Lineup Slot map
.ff_clear_cache

Empty Function Cache
.espn_pos_map

ESPN Primary Position map
.fn_choose_season

Choose current season
.as_datetime

date utils
.fn_set_useragent

Set user agent
.espn_team_map

ESPN Team ID map
.as_date

date utils
.espn_stat_map

ESPN Stat ID map
.sleeper_matchup

Individual sleeper matchup
.mfl_logincookie

Get MFL Login Cookie
.add_allplay

Add allplay from a standardised schedule output
.sleeper_userid

Get Sleeper User ID