An official website of the United States government
Accessing the Public Data API with ROn This Page:The following code is compatible with versions 2.0 and 1.0 of the Public Data API. Installationlibrary(devtools) install_github("mikeasilva/blsAPI") Description+Package: blsAPI +Title: Requests data from the BLS API +Version: 0.1 +Authors@R: "Michael Silva [aut, cre]" +Description: Allows users to request data for one or multiple series through + the BLS API. Users provide parameters as specified in + https://www.bls.gov/developers/api_signature.htm and the function returns a + JSON string. +Depends: + R (>= 3.1.1) +License: What license is it under? +LazyData: true Namespace+# Generated by roxygen2 (4.0.1): do not edit by hand + +export(blsAPI) R/blsAPI-package.r+#' blsAPI. +#' +#' @name blsAPI +#' @docType package +NULL R/blsAPI.R+## BLS API.R +# +#' This function allows users to request data from the BLS API. +#' See https://www.bls.gov/developers/ and https://www.bls.gov/developers/api_signature.htm for more details. +#' @param data Information to send to the API. +#' @keywords bls api economics +#' @export +#' @examples +#' ## These examples are taken from https://www.bls.gov/developers/api_signature.htm +#' +#' ## Single Series request +#' response <- blsAPI('LAUCN040010000000005') +#' json <- fromJSON(response) +#' +#' ## Multiple Series +#' payload <- list('seriesid'=c('LAUCN040010000000005','LAUCN040010000000006')) +#' response <- blsAPI(payload) +#' json <- fromJSON(response) +#' +#' ## One or More Series, Specifying Years +#' payload <- list('seriesid'=c('LAUCN040010000000005','LAUCN040010000000006'), 'startyear'='2010', 'endyear'='2012') +#' response <- blsAPI(payload) +#' json <- fromJSON(response) + +blsAPI <- function(data=NA){ + require(rjson) + require(RCurl) + h = basicTextGatherer() + h$reset() + if(is.na(data)){ + message('blsAPI: No parameters specified.') + } + else{ + ## Parameters specified so make the request + if(is.list(data)){ + ## Multiple Series or One or More Series, Specifying Years request + curlPerform(url='https://api.bls.gov/publicAPI/v1/timeseries/data/', + httpheader=c('Content-Type' = "application/json;"), + postfields=toJSON(data), + verbose = FALSE, + writefunction = h$update + ) + }else{ + ## Single Series request + curlPerform(url=paste0('https://api.bls.gov/publicAPI/v1/timeseries/data/',data), + verbose = FALSE, + writefunction = h$update + ) + } + } + h$value() +} No newline at end of file man/blsAPI.Rd+% Generated by roxygen2 (4.0.1): do not edit by hand +\docType{package} +\name{blsAPI} +\alias{blsAPI} +\alias{blsAPI-package} +\title{blsAPI} +\usage{ +blsAPI(data = NA) +} +\arguments{ +\item{data}{Information to send to the API.} +} +\description{ +This function allows users to request data from the BLS API. +See https://www.bls.gov/developers/ and https://www.bls.gov/developers/api_signature.htm for more details. +} +\examples{ +## These examples are taken from https://www.bls.gov/developers/api_signature.htm + +## Single Series request +response <- blsAPI('LAUCN040010000000005') +json <- fromJSON(response) + +## Multiple Series +payload <- list('seriesid'=c('LAUCN040010000000005','LAUCN040010000000006')) +response <- blsAPI(payload) +json <- fromJSON(response) + +## One or More Series, Specifying Years +payload <- list('seriesid'=c('LAUCN040010000000005','LAUCN040010000000006'), 'startyear'='2010', 'endyear'='2012') +response <- blsAPI(payload) +json <- fromJSON(response) +} +\keyword{api} +\keyword{bls} +\keyword{economics}
Acknowledgments:The BLS API Team thanks Michael Silva for contributing the above sample R Script.
Last Modified Date: October 16, 2014 |