I hadn't seen any examples of SAS code using the Census API yet, so I wanted to share my piece of code. This code only works with SAS9.4M4 or higher.
The example code underneath creates a table with the number of veterans for all tracts in New York State.
--- SAS Code ---
filename resp temp;%let myCensusKey = [CensusAPIKey]; /*use your API key here*/
%macro CensusAPIresponseHeaders(responseFile, outTable);
/*puts the results from a responsefile into a table and uses the first row from the response to create variable names */
libname temp JSON fileref=&responseFile;
data _null_; set temp.root (obs=1); array elemCols{*} element:; length rename $4000; do i=1 to dim(elemCols); rename=catx(' ',rename, catx('=','element'||compress(put(i,3.)),elemCols{i})); end; call symputx('rename',rename);run;
data &outTable; set temp.root (firstobs=2); rename &rename;run;
libname temp clear;%mend; proc http url="api.census.gov/.../acs5 method= "GET" out=resp;run;
%CensusAPIresponseHeaders(resp,ny_vets);
I have very much appreciated this macro and have used it repeatedly.
I wanted to pass along that I have made a couple amendments to deal with issues that have arisen.
The first issue is that it is easy…