| Type: | Package | 
| Title: | Interface with the Brickset API for Getting Data About LEGO Sets | 
| Version: | 2025.0.0 | 
| Date: | 2025-02-25 | 
| Description: | Interface with the 'Brickset' API https://brickset.com/article/52664/api-version-3-documentation for getting data about LEGO sets. Data sets that can be used for teaching and learning without the need of a 'Brickset' account and API key are also included. Includes all LEGO since through the end of 2023. | 
| License: | GPL (≥ 3) | 
| URL: | https://github.com/jbryer/brickset, https://jbryer.github.io/brickset/ | 
| BugReports: | https://github.com/jbryer/brickset/issues | 
| Depends: | R (≥ 4.1.0) | 
| Imports: | dplyr, httr, jsonlite, piggyback | 
| Suggests: | bookdown, DT, ggplot2, knitr, rmarkdown, scales, shiny | 
| VignetteBuilder: | knitr | 
| Encoding: | UTF-8 | 
| LazyData: | TRUE | 
| RoxygenNote: | 7.3.2 | 
| NeedsCompilation: | no | 
| Packaged: | 2025-02-25 18:12:40 UTC; jasonbryer | 
| Author: | Jason Bryer | 
| Maintainer: | Jason Bryer <jason@bryer.org> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-02-25 18:30:06 UTC | 
R package to interface with the Brickset API for getting data about LEGO.
Description
R package to interface with the Brickset API for getting data about LEGO.
Details
You can request an API key on the Brickset website here: https://brickset.com/tools/webservices/requestkey/
The API key can be passed as function parameter or may be set globally using:
options(brickset_key = YOUR_API_KEY)
Author(s)
See Also
Useful links:
- Report bugs at https://github.com/jbryer/brickset/issues 
Check the Brickset API key.
Description
You can request an API key on the Brickset website here: https://brickset.com/tools/webservices/requestkey/
Usage
checkKey(key = getOption("brickset_key"))
Arguments
| key | the Brickset API key | 
Details
The API key can be passed as function parameter or may be set globally using:
options(brickset_key = YOUR_API_KEY)
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation
Value
TRUE if the API key is valid.
Examples
## Not run: 
options(brickset_key = 'BRICKSET_KEY',
        brickset_username = 'BRICKSET_UERNAME',
        brickset_password = 'BRICKSET_PASSWORD')
checkKey() # Will return TRUE if the credentials are correct
## End(Not run)
Check the Brickset API key.
Description
You can request an API key on the Brickset website here: https://brickset.com/tools/webservices/requestkey/
Usage
checkUserHash(key = getOption("brickset_key"), userHash)
Arguments
| key | the API key | 
| userHash | the user hash returned from login. | 
Details
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Value
TRUE if the API key is fine.
Downloads a pre-built reviews data frame.
Description
This function will return a data frame with all the reviews as of last package
build. Since this data frame is larger than what is allowed in CRAN packages,
the data files are saved as releases on Github. The piggyback::pb_upload()
function is used to upload the data frame.
Usage
download_reviews(dest = tempdir(), ...)
Arguments
| dest | directory to download the  | 
| ... | other parameters passed to  | 
Details
To see what versions are available use the piggyback::pb_list(repo = 'jbryer/brickset')
function call. By default the latest version will be returned. For reproducibility
you can use the tag parameter to return a specific version of the data frame.
Value
a data frame with all the reviews as of the tag date.
Download list of instructions for given set.
Description
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Usage
getInstructions(setID, setNumber, key = getOption("brickset_key"), ...)
Arguments
| setID | the ID of the set (see  | 
| setNumber | the set number from on the LEGO box | 
| key | the Brickset API key. | 
| ... | other parameters passed to  | 
Value
a data.frame with the instructions.
Get information about frequency of API usage for the given API key.
Description
Provides information about how frequently the API key has been used.
Usage
getKeyUsageStats(key = getOption("brickset_key"))
Arguments
| key | the API key | 
Value
a data.frame with the number of times the key has been used.
- dateStamp
- The date 
- count
- The number of times the key was used for the given date 
Examples
## Not run: 
options(brickset_key = 'BRICKSET_KEY',
        brickset_username = 'BRICKSET_UERNAME',
        brickset_password = 'BRICKSET_PASSWORD')
getKeyUsageStats()
## End(Not run)
Downloads reviews for a LEGO set.
Description
Downloads reviews for a LEGO set.
Usage
getReviews(setID, key = getOption("brickset_key"), ...)
Arguments
| setID | the ID of the set (see  | 
| key | the Brickset API key. | 
| ... | other parameters passed to  | 
Value
a data.frame with the reviews.
- author
- Author of the review 
- datePosted
- Date of the review 
- title
- Title of the review 
- review
- The text of the review 
- HTML
- TRUE if the review contains HTML 
- overall
- overall rating by the reviewer 
- parts
- rating for the parts 
- buildingExperience
- rating for the building experience 
- playability
- rating for the playability 
- valueForMoney
- rating for the value for money 
Examples
## Not run: 
options(brickset_key = 'BRICKSET_KEY',
        brickset_username = 'BRICKSET_UERNAME',
        brickset_password = 'BRICKSET_PASSWORD')
getReviews('31728') # Will return TRUE if the credentials are correct
## End(Not run)
Downloads LEGO data from Brickset.
Description
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Usage
getSets(year, key = getOption("brickset_key"), ...)
Arguments
| year | the year of data to download. | 
| key | the Brickset key. | 
| ... | other parameters passed to  | 
Value
a data.frame with all sets from the given year.
- setID
- integer; 20420 unique values 
- number
- character; 18958 unique values 
- numberVariant
- integer; 25 unique values 
- name
- character; 17057 unique values 
- year
- integer; 55 unique values 
- theme
- character; 163 unique values 
- themeGroup
- character; 17 unique values 
- subtheme
- character; 1000 unique values 
- category
- character; 7 unique values 
- released
- logical; 2 unique values 
- pieces
- integer; 1543 unique values 
- minifigs
- integer; 34 unique values 
- bricksetURL
- character; 20420 unique values 
- rating
- numeric; 29 unique values 
- reviewCount
- integer; 64 unique values 
- packagingType
- character; 19 unique values 
- availability
- character; 11 unique values 
- agerange_min
- integer; 18 unique values 
- thumbnailURL
- character; 19365 unique values 
- imageURL
- character; 19365 unique values 
- US_retailPrice
- numeric; 173 unique values 
- US_dateFirstAvailable
- Date; 1090 unique values 
- US_dateLastAvailable
- Date; 2324 unique values 
- UK_retailPrice
- numeric; 224 unique values 
- UK_dateFirstAvailable
- Date; 1019 unique values 
- UK_dateLastAvailable
- Date; 2224 unique values 
- CA_retailPrice
- numeric; 188 unique values 
- CA_dateFirstAvailable
- Date; 851 unique values 
- CA_dateLastAvailable
- Date; 2005 unique values 
- DE_retailPrice
- numeric; 179 unique values 
- DE_dateFirstAvailable
- Date; 607 unique values 
- DE_dateLastAvailable
- Date; 1402 unique values 
- height
- numeric; 264 unique values 
- width
- numeric; 317 unique values 
- depth
- numeric; 307 unique values 
- weight
- numeric; 1192 unique values 
Returns a table of sub-themes for a given theme with number of sets and years active.
Description
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Usage
getSubthemes(theme, key = getOption("brickset_key"), ...)
Arguments
| theme | the theme. | 
| key | the Brickset API key. | 
| ... | other parameters passed to  | 
Value
a data.frame with the subthemes.
Returns a table of themes with number of sets and years active.
Description
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Usage
getThemes(key = getOption("brickset_key"), ...)
Arguments
| key | the Brickset API key. | 
| ... | other parameters passed to  | 
Value
a data.frame with the themes.
Examples
## Not run: 
options(brickset_key = 'BRICKSET_KEY',
        brickset_username = 'BRICKSET_UERNAME',
        brickset_password = 'BRICKSET_PASSWORD')
getThemes()
## End(Not run)
Returns the user hash from Brickset.
Description
Many of the Brickset API calls require a user to login. This function wraps
the login function to managing the user hash returned from
login across multiple API calls. It will also ensure that the hash is still
valid and if it expired a new hash will be requested.
Usage
getUserHash(
  username = getOption("brickset_username"),
  password = getOption("brickset_password"),
  key = getOption("brickset_key")
)
Arguments
| username | the Brickset username. | 
| password | the Brickset password. | 
| key | the Brickset API key. | 
Details
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Value
the user hash for the current API session.
Get a list of years for a given theme, with the total number of sets in each.
Description
Get a list of years for a given theme, with the total number of sets in each.
Usage
getYears(theme, key = getOption("brickset_key"), ...)
Arguments
| theme | the theme | 
| key | the Brickset API key. | 
| ... | other parameters passed to  | 
Value
a data.frame with the years of a given theme.
- theme
- Name of the theme 
- year
- Year 
- setCount
- Number of sets released in the given year and theme 
Examples
## Not run: 
options(brickset_key = 'BRICKSET_KEY',
        brickset_username = 'BRICKSET_UERNAME',
        brickset_password = 'BRICKSET_PASSWORD')
getYears('Architecture')
## End(Not run)
Lego sets from 1970 through 2024.
Description
This dataset was built using the getSets function. For working
with the LEGO sets data frame this pre-built data is preferred as it will
minimize the API requests. Note that the only disadvantage is that the
rating and reviewCount may be out-of-date and inaccurate. The
remaining variables are relatively static.
Format
A data.frame.
- setID
- integer; 20420 unique values 
- number
- character; 18958 unique values 
- numberVariant
- integer; 25 unique values 
- name
- character; 17057 unique values 
- year
- integer; 55 unique values 
- theme
- character; 163 unique values 
- themeGroup
- character; 17 unique values 
- subtheme
- character; 1000 unique values 
- category
- character; 7 unique values 
- released
- logical; 2 unique values 
- pieces
- integer; 1543 unique values 
- minifigs
- integer; 34 unique values 
- bricksetURL
- character; 20420 unique values 
- rating
- numeric; 29 unique values 
- reviewCount
- integer; 64 unique values 
- packagingType
- character; 19 unique values 
- availability
- character; 11 unique values 
- agerange_min
- integer; 18 unique values 
- thumbnailURL
- character; 19365 unique values 
- imageURL
- character; 19365 unique values 
- US_retailPrice
- numeric; 173 unique values 
- US_dateFirstAvailable
- Date; 1090 unique values 
- US_dateLastAvailable
- Date; 2324 unique values 
- UK_retailPrice
- numeric; 224 unique values 
- UK_dateFirstAvailable
- Date; 1019 unique values 
- UK_dateLastAvailable
- Date; 2224 unique values 
- CA_retailPrice
- numeric; 188 unique values 
- CA_dateFirstAvailable
- Date; 851 unique values 
- CA_dateLastAvailable
- Date; 2005 unique values 
- DE_retailPrice
- numeric; 179 unique values 
- DE_dateFirstAvailable
- Date; 607 unique values 
- DE_dateLastAvailable
- Date; 1402 unique values 
- height
- numeric; 264 unique values 
- width
- numeric; 317 unique values 
- depth
- numeric; 307 unique values 
- weight
- numeric; 1192 unique values 
Source
Login to the Brickset API.
Description
Brickset API documentation is available here: https://brickset.com/article/52664/api-version-3-documentation/
Usage
login(
  username = getOption("brickset_username"),
  password = getOption("brickset_password"),
  key = getOption("brickset_key")
)
Arguments
| username | the Brickset username. | 
| password | the Brickset password. | 
| key | the Brickset API key. | 
Value
the user hash used for other API calls.