You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

// vim:filetype=javascript
const defaultSeriesURL = "https://api.bls.gov/publicAPI/v2/timeseries/data/";
const defaultSeriesID = "CUUR0200SA0";
const defaultStartYear = "2014";
function CURRENTCPI(blsToken, options) {
var seriesURL = options?.seriesURL || defaultSeriesURL;
var seriesID = options?.seriesID || defaultSeriesID;
var startYear = options?.startYear || defaultStartYear;
var endYear = options?.endYear || new Date().getFullYear().toString();
var reqOptions = {
"method": "post",
"payload": JSON.stringify({
"seriesid": [seriesID],
"startyear": startYear,
"endyear": endYear
}),
"contentType": "application/json",
"headers": {
"Authorization": "token "+blsToken,
"Content-Type": "application/json"
}
};
var resp = UrlFetchApp.fetch(seriesURL, reqOptions);
var rawData = resp.getContentText().toString().trim();
var parsedData = JSON.parse(rawData);
var respData = parsedData.Results.series[0].data;
var rows = [["year", "period", "period_name", "value"]];
for (var i = 0; i < respData.length; i++) {
rows.push([
respData[i].year,
respData[i].period,
respData[i].periodName,
respData[i].value
]);
}
return rows;
}