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. Installation
library(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 |