Kaynağa Gözat

add SelectObject api coded by zhanghang

taowei.wtw 6 yıl önce
ebeveyn
işleme
ca1c1ae1ed

+ 9 - 0
oss/const.go

@@ -184,3 +184,12 @@ const (
 
 	Version = "v2.0.4" // Go SDK version
 )
+
+// FrameType
+const (
+	DataFrameType        = 8388609
+	ContinuousFrameType  = 8388612
+	EndFrameType         = 8388613
+	MetaEndFrameCSVType  = 8388614
+	MetaEndFrameJSONType = 8388615
+)

+ 627 - 0
oss/select_csv_objcet_test.go

@@ -0,0 +1,627 @@
+package oss
+
+import (
+	"io/ioutil"
+	"os"
+	"strconv"
+	"strings"
+	"io"
+
+	. "gopkg.in/check.v1"
+)
+
+type OssSelectCsvSuite struct {
+	client *Client
+	bucket *Bucket
+}
+
+var _ = Suite(&OssSelectCsvSuite{})
+
+func (s *OssSelectCsvSuite) SetUpSuite(c *C) {
+	client, err := New(endpoint, accessID, accessKey)
+	c.Assert(err, IsNil)
+	s.client = client
+	s.client.Config.LogLevel = Error // Debug
+	// s.client.Config.Timeout = 5
+	err = s.client.CreateBucket(bucketName)
+	c.Assert(err, IsNil)
+	bucket, err := s.client.Bucket(bucketName)
+	c.Assert(err, IsNil)
+	s.bucket = bucket
+
+	testLogger.Println("test select csv started")
+}
+
+func (s *OssSelectCsvSuite) TearDownSuite(c *C) {
+	// Delete objects
+	marker := Marker("")
+	for {
+		lor, err := s.bucket.ListObjects(marker)
+		c.Assert(err, IsNil)
+		for _, object := range lor.Objects {
+			err = s.bucket.DeleteObject(object.Key)
+			c.Assert(err, IsNil)
+		}
+		marker = Marker(lor.NextMarker)
+		if !lor.IsTruncated {
+			break
+		}
+	}
+
+	err := s.client.DeleteBucket(bucketName)
+	c.Assert(err, IsNil)
+
+	testLogger.Println("test select csv completed")
+}
+
+func (s *OssSelectCsvSuite) SetUpTest(c *C) {
+	testLogger.Println("test func", c.TestName(), "start")
+}
+
+func (s *OssSelectCsvSuite) TearDownTest(c *C) {
+	testLogger.Println("test func", c.TestName(), "succeed")
+}
+
+// TestCreateSelectObjectMeta
+func (s *OssSelectCsvSuite) TestCreateSelectCsvObjectMeta(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	csvMeta := CsvMetaRequest{}
+	var bo bool
+	csvMeta.OverwriteIfExists = &bo
+	res, err := s.bucket.CreateSelectCsvObjectMeta(key, csvMeta)
+	c.Assert(err, IsNil)
+	l, err := readCsvLine(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(l))
+
+	bo = true
+	csvMeta.OverwriteIfExists = &bo
+	csvMeta.InputSerialization.CSV.RecordDelimiter = "\n"
+	csvMeta.InputSerialization.CSV.FieldDelimiter = ","
+	csvMeta.InputSerialization.CSV.QuoteCharacter = "\""
+	res, err = s.bucket.CreateSelectCsvObjectMeta(key, csvMeta)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(l))
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectIsEmpty(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	csvMeta := CsvMetaRequest{}
+	_, err = s.bucket.CreateSelectCsvObjectMeta(key, csvMeta)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression = "select Year, StateAbbr, CityName, PopulationCount from ossobject where CityName != ''"
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	p := make([]byte, 512)
+	n, err := body.Read(p)
+	c.Assert(err, IsNil)
+	c.Assert(n, Equals, 512)
+	p1 := make([]byte, 3)
+	_, err = body.Read(p1)
+	c.Assert(err, IsNil)
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err, IsNil)
+	str, err := readCsvIsEmpty(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(string(p)+string(p1)+string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectObjectIntoFile(c *C) {
+	var bo bool = true
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	csvMeta := CsvMetaRequest{
+		InputSerialization: InputSerialization {
+			CSV: CSV {
+				RecordDelimiter: "\n",
+				FieldDelimiter: ",",
+				QuoteCharacter: "\"",
+			},
+		},
+		OverwriteIfExists: &bo,
+	}
+	res, err := s.bucket.CreateSelectCsvObjectMeta(key, csvMeta)
+	c.Assert(err, IsNil)
+	l, err := readCsvLine(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(l))
+
+	selReq := SelectRequest{
+		Expression:"select * from ossobject",
+		InputSerializationSelect: InputSerializationSelect {
+			CsvBodyInput :CSVSelectInput{
+				FileHeaderInfo: "None",
+				CommentCharacter: "#",
+				RecordDelimiter: "\n",
+				FieldDelimiter: ",",
+				QuoteCharacter:"\"",
+				Range:"",
+			},
+		},
+	}
+	outfile := "sample_data_out.csv"
+	err = s.bucket.SelectObjectIntoFile(key, outfile, selReq)
+	c.Assert(err, IsNil)
+
+	fd1, err := os.Open(outfile)
+	c.Assert(err,IsNil)
+	defer fd1.Close()
+	fd2, err := os.Open(localCsvFile)
+	c.Assert(err,IsNil)
+	defer fd2.Close()
+	str1, err := ioutil.ReadAll(fd1)
+	c.Assert(err,IsNil)
+	str2 ,err := ioutil.ReadAll(fd2)
+	c.Assert(err,IsNil)
+	c.Assert(string(str1), Equals, string(str2))
+	
+	err = os.Remove(outfile)
+	c.Assert(err, IsNil)
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectRange(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	csvMeta := CsvMetaRequest{}
+	_,err = s.bucket.CreateSelectCsvObjectMeta(key, csvMeta)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression = "select Year,StateAbbr, CityName, Short_Question_Text from ossobject"
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	selReq.InputSerializationSelect.CsvBodyInput.Range = "0-2"
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+	rets, err := ioutil.ReadAll(body)
+
+	str,err := readCsvRange(localCsvFile, 0, 2)
+	c.Assert(err, IsNil)
+	c.Assert(string(rets), Equals, str)
+	
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectLike(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  "select Year, StateAbbr, CityName, Short_Question_Text from ossobject where Measure like '%blood pressure%Years'"
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	str, err := readCsvLike(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectIntAggregation(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select avg(cast(year as int)), max(cast(year as int)), min(cast(year as int)) from ossobject where year = 2015`
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+
+	c.Assert(string(ts), Equals, "2015,2015,2015\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectFloatAggregation(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select avg(cast(data_value as double)), max(cast(data_value as double)), sum(cast(data_value as double)) from ossobject`
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	strR := string(ts)
+	c.Assert(err, IsNil)
+
+	avg, max, sum , err := readCsvFloatAgg(localCsvFile)
+	c.Assert(err, IsNil)
+	
+	s1 := strconv.FormatFloat(avg, 'f', 5, 32) + ","
+	s1 += strconv.FormatFloat(max, 'f', 5, 32) + ","
+	s1 += strconv.FormatFloat(sum, 'f', 5, 32) + ","
+	retS := ""
+	for _, v := range strings.Split(strR[:len(strR)-1], ",") {
+		vv, err := strconv.ParseFloat(v, 64)
+		c.Assert(err, IsNil)
+		retS += strconv.FormatFloat(vv, 'f', 5, 32) + ","
+	}
+	c.Assert(s1, Equals, retS)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectConcat(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select Year,StateAbbr, CityName, Short_Question_Text from ossobject where (data_value || data_value_unit) = '14.8%'`
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+
+	str, err := readCsvConcat(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectComplicateConcat(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `
+	select 
+		Year,StateAbbr, CityName, Short_Question_Text, data_value, 
+		data_value_unit, category, high_confidence_limit 
+	from 
+		ossobject 
+	where 
+		data_value > 14.8 and 
+		data_value_unit = '%' or 
+		Measure like '%18 Years' and 
+		Category = 'Unhealthy Behaviors' or 
+		high_confidence_limit > 70.0 `
+	
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+
+	str, err := readCsvComplicateCondition(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectInvalidSql(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select * from ossobject where avg(cast(year as int)) > 2016`
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  ``
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  `select year || CityName from ossobject`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  `select * from ossobject group by CityName`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  `select * from ossobject order by _1`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  `select * from ossobject oss join s3object s3 on oss.CityName = s3.CityName`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression =  `select _1 from ossobject`
+	ret, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	_, err = ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithOutputDelimiters(c *C) {
+	key := "sample_data.csv"
+	content := "abc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select _1, _2 from ossobject `
+	selReq.OutputSerializationSelect.CsvBodyOutput.RecordDelimiter = "\r\n"
+	selReq.OutputSerializationSelect.CsvBodyOutput.FieldDelimiter = "|"
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "abc|def\r\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithCrc(c *C) {
+	key := "sample_data.csv"
+	content := "abc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select * from ossobject`
+	bo := true
+	selReq.OutputSerializationSelect.EnablePayloadCrc = &bo
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, content)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithSkipPartialData(c *C) {
+	key := "sample_data.csv"
+	content := "abc,def\nefg\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select _1, _2 from ossobject`
+	bo := true
+	selReq.SelectOptions.SkipPartialDataRecord = &bo
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "abc,def\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithOutputRaw(c *C) {
+	key := "sample_data.csv"
+	content := "abc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select _1 from ossobject`
+	bo := true
+	selReq.OutputSerializationSelect.OutputRawData = &bo
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "abc\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithKeepColumns(c *C) {
+	key := "sample_data.csv"
+	content := "abc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select _1 from ossobject`
+	bo := true
+	selReq.OutputSerializationSelect.KeepAllColumns = &bo
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "abc,\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectWithOutputHeader(c *C) {
+	key := "sample_data.csv"
+	content := "name,job\nabc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select name from ossobject`
+	bo := true
+	selReq.OutputSerializationSelect.OutputHeader = &bo
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "name\nabc\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectCsvSuite) TestSelectCsvObjectRead(c *C) {
+	key := "sample_data.csv"
+	content := "name,job\nabc,def\n"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select name from ossobject`
+	bo := true
+	selReq.OutputSerializationSelect.OutputHeader = &bo
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	selReq.OutputSerializationSelect.EnablePayloadCrc = &bo
+
+	ret,err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+
+	// case 1: read length > data length
+	p := make([]byte, 512)
+	n, err := ret.Read(p[:20])
+	if err != nil && err != io.EOF {
+		c.Assert(err, IsNil)
+	}
+	c.Assert(string(p[:n]), Equals, "name\nabc\n")
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "")
+
+	// case 2: read length = data length
+	ret,err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	n, err = ret.Read(p[:9])
+	if err != nil && err != io.EOF {
+		c.Assert(err, IsNil)
+	}
+	c.Assert(string(p[:n]), Equals, "name\nabc\n")
+	ts, err = ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "")
+
+	// case 3: read length > one frame length and read length < two frame, (this data = 2 * frame length)
+	ret,err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	n, err = ret.Read(p[:7])
+	if err != nil && err != io.EOF {
+		c.Assert(err, IsNil)
+	}
+	c.Assert(string(p[:n]), Equals, "name\nab")
+	ts, err = ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "c\n")
+
+	// case 4: read length = a frame length (this data = 2 * frame length)
+	ret,err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	n, err = ret.Read(p[:5])
+	if err != nil && err != io.EOF {
+		c.Assert(err, IsNil)
+	}
+	c.Assert(string(p[:n]), Equals, "name\n")
+	ts, err = ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "abc\n")
+
+	// case 5: read length < a frame length (this data = 2 * frame length)
+	ret,err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	n, err = ret.Read(p[:3])
+	if err != nil && err != io.EOF {
+		c.Assert(err, IsNil)
+	}
+	c.Assert(string(p[:n]), Equals, "nam")
+	ts, err = ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, "e\nabc\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+// OssProgressListener is the progress listener
+type OssSelectProgressListener struct {
+}
+// ProgressChanged handles progress event
+func (listener *OssSelectProgressListener) ProgressChanged(event *ProgressEvent) {
+	switch event.EventType {
+	case TransferStartedEvent:
+		testLogger.Printf("Transfer Started.\n")
+	case TransferDataEvent:
+		testLogger.Printf("Transfer Data, This time consumedBytes: %d \n", event.ConsumedBytes)
+	case TransferCompletedEvent:
+		testLogger.Printf("Transfer Completed, This time consumedBytes: %d.\n", event.ConsumedBytes)
+	case TransferFailedEvent:
+		testLogger.Printf("Transfer Failed, This time consumedBytes: %d.\n", event.ConsumedBytes)
+	default:
+	}
+}
+
+func(s *OssSelectCsvSuite) TestSelectCsvObjectConcatProgress(c *C) {
+	key := "sample_data.csv"
+	localCsvFile := "../sample/sample_data.csv"
+	err := s.bucket.PutObjectFromFile(key, localCsvFile)
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression =  `select Year,StateAbbr, CityName, Short_Question_Text from ossobject where (data_value || data_value_unit) = '14.8%'`
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	ret,err := s.bucket.SelectObject(key, selReq, Progress(&OssSelectProgressListener{}))
+	c.Assert(err, IsNil)
+	defer ret.Close()
+	ts, err := ioutil.ReadAll(ret)
+	c.Assert(err, IsNil)
+
+	str, err := readCsvConcat(localCsvFile)
+	c.Assert(err, IsNil)
+	c.Assert(string(ts), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}

+ 488 - 0
oss/select_json_object_test.go

@@ -0,0 +1,488 @@
+package oss
+
+import (
+	. "gopkg.in/check.v1"
+	"os"
+	"io/ioutil"
+	"strings"
+	"net/http"
+)
+
+type OssSelectJsonSuite struct {
+	client *Client
+	bucket *Bucket
+}
+
+var _ = Suite(&OssSelectJsonSuite{})
+
+func (s *OssSelectJsonSuite) SetUpSuite(c *C) {
+	client, err := New(endpoint, accessID, accessKey)
+	c.Assert(err, IsNil)
+	s.client = client
+	s.client.Config.LogLevel = Error // Debug
+	err = s.client.CreateBucket(bucketName)
+	c.Assert(err, IsNil)
+	bucket, err := s.client.Bucket(bucketName)
+	c.Assert(err, IsNil)
+	s.bucket = bucket
+
+	testLogger.Println("test select json started")
+}
+
+func(s *OssSelectJsonSuite) TearDownSuite(c *C){
+	// Delete objects
+	marker := Marker("")
+	for {
+		lor, err := s.bucket.ListObjects(marker)
+		c.Assert(err, IsNil)
+		for _, object := range lor.Objects {
+			err = s.bucket.DeleteObject(object.Key)
+			c.Assert(err, IsNil)
+		}
+		marker = Marker(lor.NextMarker)
+		if !lor.IsTruncated {
+			break
+		}
+	}
+
+	err := s.client.DeleteBucket(bucketName)
+	c.Assert(err, IsNil)
+
+	testLogger.Println("test select json completed")
+}
+
+func (s *OssSelectJsonSuite) SetUpTest(c *C) {
+	testLogger.Println("test func", c.TestName(), "start")
+}
+
+func (s *OssSelectJsonSuite) TearDownTest(c *C) {
+	testLogger.Println("test func", c.TestName(), "succeed")
+}
+
+func (s *OssSelectJsonSuite) TestCreateSelectJsonObjectMeta(c *C){
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+	jsonMeta := JsonMetaRequest{
+		InputSerialization: InputSerialization {
+			JSON: JSON {
+				JSONType:"LINES",
+			},
+		},
+	}
+	res,err := s.bucket.CreateSelectJsonObjectMeta(key, jsonMeta)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(100))
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonDocument(c *C){
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression = "select * from ossobject.objects[*] where party = 'Democrat'"
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "DOCUMENT"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+
+	var responseHeader http.Header
+	body, err := s.bucket.SelectObject(key, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	defer body.Close()
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	p := make([]byte, 512)
+	n, err := body.Read(p)
+	c.Assert(err, IsNil)
+	c.Assert(n, Equals, 512)
+	p1 := make([]byte, 3)
+	_, err = body.Read(p1)
+	c.Assert(err, IsNil)
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str,err := readJsonDocument("../sample/sample_json.json")
+	c.Assert(err, IsNil)
+	c.Assert(string(p) + string(p1) + string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonLines(c *C) {
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression = "select * from ossobject where party = 'Democrat'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+
+	var responseHeader http.Header
+	body, err := s.bucket.SelectObject(key, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	defer body.Close()
+	
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str,err := readJsonDocument("../sample/sample_json.json")
+	c.Assert(string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonLinesIntoFile(c *C) {
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+	
+	jsonMeta := JsonMetaRequest{
+		InputSerialization: InputSerialization {
+			JSON: JSON {
+				JSONType:"LINES",
+			},
+		},
+	}
+	res,err := s.bucket.CreateSelectJsonObjectMeta(key, jsonMeta)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(100))
+
+	selReq := SelectRequest{}
+	selReq.Expression = "select * from ossobject where party = 'Democrat'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+
+	var responseHeader http.Header
+	outfile := "sample_json_out.json"
+	err = s.bucket.SelectObjectIntoFile(key, outfile, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	_, err = os.Stat(outfile)
+	c.Assert(err,IsNil)
+	err = os.Remove(outfile)
+	c.Assert(err, IsNil)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonDocumentIntoFile(c *C) {
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = "select * from ossobject.objects[*] where party = 'Democrat'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "DOCUMENT"
+
+	var responseHeader http.Header
+	outfile := "sample_json_out.json"
+	err = s.bucket.SelectObjectIntoFile(key, outfile, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	_, err = os.Stat(outfile)
+	c.Assert(err,IsNil)
+	err = os.Remove(outfile)
+	c.Assert(err, IsNil)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonLinesLike(c *C) {
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+	selReq := SelectRequest{}
+	selReq.Expression = "select person.firstname, person.lastname from ossobject where person.birthday like '1959%'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+
+	jsonMeta := JsonMetaRequest{
+		InputSerialization: InputSerialization {
+			JSON: JSON {
+				JSONType:"LINES",
+			},
+		},
+	}
+	res,err := s.bucket.CreateSelectJsonObjectMeta(key, jsonMeta)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(100))
+
+	var responseHeader http.Header
+	body, err := s.bucket.SelectObject(key, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	defer body.Close()
+	
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str,err := readJsonLinesLike("../sample/sample_json.json")
+	c.Assert(string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonLinesRange(c *C) {
+	key := "sample_json_lines.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+	jsonMeta := JsonMetaRequest{
+		InputSerialization: InputSerialization {
+			JSON: JSON {
+				JSONType:"LINES",
+			},
+		},
+	}
+	res,err := s.bucket.CreateSelectJsonObjectMeta(key, jsonMeta)
+	c.Assert(err, IsNil)
+	c.Assert(res.RowsCount, Equals, int64(100))
+
+	selReq := SelectRequest{}
+	selReq.Expression = "select person.firstname as aaa as firstname, person.lastname, extra from ossobject'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+	selReq.InputSerializationSelect.JsonBodyInput.Range = "0-1"
+	
+	var responseHeader http.Header
+	body, err := s.bucket.SelectObject(key, selReq, GetResponseHeader(&responseHeader))
+	c.Assert(err, IsNil)
+	defer body.Close()
+	
+	requestId := GetRequestId(responseHeader)
+	c.Assert(len(requestId) > 0, Equals, true)
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str,err := readJsonLinesRange("../sample/sample_json.json", 0, 2)
+	c.Assert(string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonDocumentIntAggregation(c *C) {
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = `
+	select 
+		avg(cast(person.cspanid as int)), max(cast(person.cspanid as int)), 
+		min(cast(person.cspanid as int)) 
+	from 
+		ossobject.objects[*] 
+	where 
+		person.cspanid = 1011723
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "Document"
+	
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	c.Assert(string(rets), Equals, "{\"_1\":1011723,\"_2\":1011723,\"_3\":1011723},")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonDocumentFloatAggregation(c *C) {
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = `
+	select 
+		avg(cast(person.cspanid as double)), max(cast(person.cspanid as double)), 
+		min(cast(person.cspanid as double)) 
+	from 
+		ossobject.objects[*]
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "Document"
+	
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	testLogger.Println(string(rets))
+	// avg, max, min, err := readJsonFloatAggregation("../sample/sample_json.json")
+	// fmt.Println(string(rets), "\n", avg, max, min)
+	// retsArr := strings.Split(string(rets), ":")
+	// s1 := strconv.FormatFloat(avg, 'f', 6, 64) + ","
+	// s1 += strconv.FormatFloat(max, 'f', 6, 64) + ","
+	// s1 += strconv.FormatFloat(min, 'f', 6, 64) + ","
+	// retS := ""
+	// l := len(retsArr[1])
+	// vv, err := strconv.ParseFloat(retsArr[1][:l-35], 64)
+	// c.Assert(err, IsNil)
+	// retS += strconv.FormatFloat(vv, 'f', 6, 64) + ","
+	// l = len(retsArr[2])
+	// vv, err = strconv.ParseFloat(retsArr[2][:l-6], 64)
+	// c.Assert(err, IsNil)
+	// retS += strconv.FormatFloat(vv, 'f', 6, 64) + ","
+	// l = len(retsArr[3])
+	// vv, err = strconv.ParseFloat(retsArr[3][:l-2], 64)
+	// c.Assert(err, IsNil)
+	// retS += strconv.FormatFloat(vv, 'f', 6, 64) + ","
+	// c.Assert(retS, Equals, s1)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonDocumentConcat(c *C) {
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = `
+	select 
+		person 
+	from 
+		ossobject.objects[*] 
+	where 
+		(person.firstname || person.lastname) = 'JohnKennedy'
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "Document"
+	
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str, err := readJsonDocumentConcat("../sample/sample_json.json")
+	c.Assert(err,IsNil)
+	c.Assert(string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonComplicateConcat(c *C) {
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = `
+	select 
+		person.firstname, person.lastname, congress_numbers 
+	from
+		ossobject 
+	where
+		startdate > '2017-01-01' and 
+		senator_rank = 'junior' or 
+		state = 'CA' and 
+		party = 'Republican'
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+	
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	str, err := readJsonComplicateConcat("../sample/sample_json.json")
+	c.Assert(err,IsNil)
+	c.Assert(string(rets), Equals, str)
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonLineInvalidSql(c *C) {
+	key := "sample_json.json"
+	err := s.bucket.PutObjectFromFile(key, "../sample/sample_json_lines.json")
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+	
+	selReq.Expression = `select * from ossobject where avg(cast(person.birthday as int)) > 2016`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression = ``
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression = `select person.lastname || person.firstname from ossobject`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression = `select * from ossobject group by person.firstname`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression = `select * from ossobject order by _1`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	selReq.Expression = `select * from ossobject oss join s3object s3 on oss.CityName = s3.CityName`
+	_, err = s.bucket.SelectObject(key, selReq)
+	c.Assert(err, NotNil)
+
+	err = s.bucket.PutObjectFromFile(key, "../sample/sample_json.json")
+	c.Assert(err, IsNil)
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "DOCUMENT"
+	selReq.Expression = `select _1 from ossobject.objects[*]`
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}
+
+func (s *OssSelectJsonSuite) TestSelectJsonParseNumAsString(c *C) {
+	key := "sample_json.json"
+	content := "{\"a\":123456789.123456789}"
+	err := s.bucket.PutObject(key, strings.NewReader(content))
+	c.Assert(err, IsNil)
+
+	selReq := SelectRequest{}
+	selReq.Expression = `select a from ossobject where cast(a as decimal) = 123456789.1234567890`
+	bo := true
+	selReq.InputSerializationSelect.JsonBodyInput.ParseJSONNumberAsString = &bo
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "DOCUMENT"
+	
+	body, err := s.bucket.SelectObject(key, selReq)
+	c.Assert(err, IsNil)
+	defer body.Close()
+
+	rets, err := ioutil.ReadAll(body)
+	c.Assert(err,IsNil)
+	c.Assert(string(rets), Equals, "{\"a\":123456789.123456789}\n")
+
+	err = s.bucket.DeleteObject(key)
+	c.Assert(err, IsNil)
+}

+ 197 - 0
oss/select_object.go

@@ -0,0 +1,197 @@
+package oss
+
+import (
+	"bytes"
+	"encoding/xml"
+	"hash/crc32"
+	"io"
+	"io/ioutil"
+	"net/http"
+	"os"
+	"strings"
+)
+
+// CreateSelectCsvObjectMeta is Creating csv object meta
+//
+// key        		the object key.
+// csvMeta	  		the csv file meta
+// options    		the options for create csv Meta  of the object.
+//
+// MetaEndFrameCSV 	the csv file meta info
+// error    		it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) CreateSelectCsvObjectMeta(key string, csvMeta CsvMetaRequest, options ...Option) (MetaEndFrameCSV, error) {
+	var endFrame MetaEndFrameCSV
+	params := map[string]interface{}{}
+	params["x-oss-process"] = "csv/meta"
+
+	csvMeta.encodeBase64()
+	bs, err := xml.Marshal(csvMeta)
+	if err != nil {
+		return endFrame, err
+	}
+	buffer := new(bytes.Buffer)
+	buffer.Write(bs)
+
+	resp, err := bucket.DoPostSelectObject(key, params, buffer, options...)
+	if err != nil {
+		return endFrame, err
+	}
+	defer resp.Body.Close()
+
+	_, err = ioutil.ReadAll(resp)
+
+	return resp.Frame.MetaEndFrameCSV, err
+}
+
+// CreateSelectJsonObjectMeta is Creating json object meta
+//
+// key        			the object key.
+// csvMeta	  			the json file meta
+// options    			the options for create json Meta  of the object.
+//
+// MetaEndFrameJSON 	the json file meta info
+// error    			it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) CreateSelectJsonObjectMeta(key string, jsonMeta JsonMetaRequest, options ...Option) (MetaEndFrameJSON, error) {
+	var endFrame MetaEndFrameJSON
+	params := map[string]interface{}{}
+	params["x-oss-process"] = "json/meta"
+
+	bs, err := xml.Marshal(jsonMeta)
+	if err != nil {
+		return endFrame, err
+	}
+	buffer := new(bytes.Buffer)
+	buffer.Write(bs)
+
+	resp, err := bucket.DoPostSelectObject(key, params, buffer, options...)
+	if err != nil {
+		return endFrame, err
+	}
+	defer resp.Body.Close()
+
+	_, err = ioutil.ReadAll(resp)
+
+	return resp.Frame.MetaEndFrameJSON, err
+}
+
+// SelectObject is the select object api, approve csv and json file.
+//
+// key        		the object key.
+// selectReq	  	the request data for select object
+// options    		the options for select file of the object.
+//
+// o.ReadCloser 	reader instance for reading data from response. It must be called close() after the usage and only valid when error is nil.
+// error    		it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) SelectObject(key string, selectReq SelectRequest, options ...Option) (io.ReadCloser, error) {
+	params := map[string]interface{}{}
+	if selectReq.InputSerializationSelect.JsonBodyInput.JsonIsEmpty() {
+		params["x-oss-process"] = "csv/select" // default select csv file
+	} else {
+		params["x-oss-process"] = "json/select"
+	}
+	selectReq.encodeBase64()
+	bs, err := xml.Marshal(selectReq)
+	if err != nil {
+		return nil, err
+	}
+	buffer := new(bytes.Buffer)
+	buffer.Write(bs)
+	resp, err := bucket.DoPostSelectObject(key, params, buffer, options...)
+	if err != nil {
+		return nil, err
+	}
+	if selectReq.OutputSerializationSelect.EnablePayloadCrc != nil && *selectReq.OutputSerializationSelect.EnablePayloadCrc == true {
+		resp.Frame.EnablePayloadCrc = true
+	}
+	resp.Frame.OutputRawData = strings.ToUpper(resp.Headers.Get("x-oss-select-output-raw")) == "TRUE"
+
+	return resp, err
+}
+
+// DoPostSelectObject is the SelectObject/CreateMeta api, approve csv and json file.
+//
+// key        			the object key.
+// params	  			the resource of oss approve csv/meta, json/meta, csv/select, json/select.
+// buf					the request data trans to buffer.
+// options    			the options for select file of the object.
+//
+// SelectObjectResponse 	the response of select object.
+// error    			it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) DoPostSelectObject(key string, params map[string]interface{}, buf *bytes.Buffer, options ...Option) (*SelectObjectResponse, error) {
+	resp, err := bucket.do("POST", key, params, options, buf, nil)
+	if err != nil {
+		return nil, err
+	}
+
+	result := &SelectObjectResponse{
+		Body:       resp.Body,
+		StatusCode: resp.StatusCode,
+		Frame:      SelectObjectResult{},
+	}
+	result.Headers = resp.Headers
+	// result.Frame = SelectObjectResult{}
+	result.ReadTimeOut = bucket.getConfig().Timeout
+
+	// Progress
+	listener := getProgressListener(options)
+
+	// CRC32
+	crcCalc := crc32.NewIEEE()
+	result.WriterForCheckCrc32 = crcCalc
+	result.Body = TeeReader(resp.Body, nil, 0, listener, nil)
+
+	err = checkRespCode(resp.StatusCode, []int{http.StatusPartialContent, http.StatusOK})
+
+	return result, err
+}
+
+// SelectObjectIntoFile is the selectObject to file api
+//
+// key        	the object key.
+// fileName	  	saving file's name to localstation.
+// selectReq	  	the request data for select object
+// options 		the options for select file of the object.
+//
+// error    	it's nil if no error, otherwise it's an error object.
+//
+func (bucket Bucket) SelectObjectIntoFile(key, fileName string, selectReq SelectRequest, options ...Option) error {
+	tempFilePath := fileName + TempFileSuffix
+
+	params := map[string]interface{}{}
+	if selectReq.InputSerializationSelect.JsonBodyInput.JsonIsEmpty() {
+		params["x-oss-process"] = "csv/select" // default select csv file
+	} else {
+		params["x-oss-process"] = "json/select"
+	}
+	selectReq.encodeBase64()
+	bs, err := xml.Marshal(selectReq)
+	if err != nil {
+		return err
+	}
+	buffer := new(bytes.Buffer)
+	buffer.Write(bs)
+	resp, err := bucket.DoPostSelectObject(key, params, buffer, options...)
+	if err != nil {
+		return err
+	}
+	defer resp.Close()
+
+	// If the local file does not exist, create a new one. If it exists, overwrite it.
+	fd, err := os.OpenFile(tempFilePath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, FilePermMode)
+	if err != nil {
+		return err
+	}
+
+	// Copy the data to the local file path.
+	_, err = io.Copy(fd, resp)
+	fd.Close()
+	if err != nil {
+		return err
+	}
+
+	return os.Rename(tempFilePath, fileName)
+}

+ 542 - 0
oss/select_object_read_file_test.go

@@ -0,0 +1,542 @@
+package oss
+
+import (
+	"bufio"
+	"io"
+	"os"
+	"strings"
+	"strconv"
+	"regexp"
+	"encoding/json"
+	"encoding/csv"
+)
+
+func handleError(err error) error {
+	if err == nil {
+		return nil
+	}
+	return err
+}
+
+func readCsvLine(fileName string) (int, error) {
+	file, err := os.Open(fileName)
+	if err != nil {
+		return 0,err
+	}
+	defer file.Close()
+	rd := csv.NewReader(file)
+	rc, err := rd.ReadAll()
+	return len(rc), err
+}
+func readCsvIsEmpty(fileName string) (string, error) {
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	defer file.Close()
+	var out string
+	var i, index int
+	var indexYear, indexStateAbbr, indexCityName, indexPopulationCount int
+
+	rd := bufio.NewReader(file)
+	for {
+		line, err := rd.ReadString('\n') // read a line
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			return "",err
+		}
+
+		sptLint := strings.Split(line, ",")
+		if i == 0 {
+			i = 1
+			for _, val := range sptLint {
+				switch val {
+				case "Year":
+					indexYear = index
+				case "StateAbbr":
+					indexStateAbbr = index
+				case "CityName":
+					indexCityName = index
+				case "PopulationCount":
+					indexPopulationCount = index
+				}
+				index++
+			}
+		} else {
+			if sptLint[indexCityName] != "" {
+				outLine := sptLint[indexYear] + "," + sptLint[indexStateAbbr] + "," + sptLint[indexCityName] + "," + sptLint[indexPopulationCount] + "\n"
+				out += outLine
+			}
+		}
+	}
+
+	return out, nil
+}
+
+func readCsvLike(fileName string) (string, error) {
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	defer file.Close()
+	var out string
+	var i, index int
+	var indexYear,indexStateAbbr,indexCityName,indexPopulationCount,indexMeasure int
+
+	rd := bufio.NewReader(file)
+	for {
+		line, err := rd.ReadString('\n') // read a line
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			return "",err
+		}
+
+		//utf8Lint := ConvertToString(line,"gbk", "utf-8")
+		sptLint := strings.Split(line[:(len(line)-1)], ",")
+		if i == 0 {
+			i = 1
+			for _, val := range sptLint {
+				switch val {
+				case "Year":indexYear = index
+				case "StateAbbr":indexStateAbbr = index
+				case "CityName":indexCityName = index
+				case "Short_Question_Text":indexPopulationCount = index
+				case "Measure":indexMeasure = index
+				}
+				index++
+			}
+		} else {
+			if sptLint[indexMeasure] != "" {
+				reg := regexp.MustCompile("^.*blood pressure.*Years$")
+				res := reg.FindAllString(sptLint[indexMeasure], -1)
+				if len(res) > 0 {
+					outLine := sptLint[indexYear] + "," +sptLint[indexStateAbbr] + "," +sptLint[indexCityName] + "," + sptLint[indexPopulationCount] + "\n"
+					out += outLine
+				}
+			}
+		}
+	}
+
+	return out, nil
+}
+
+func readCsvRange(fileName string, l int, r int) (string, error) {
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "", err
+	}
+	defer file.Close()
+	var out string
+	var i, index int
+	var indexYear,indexStateAbbr,indexCityName,indexPopulationCount int
+
+	rd := bufio.NewReader(file)
+	for j := 0; j < r + 1; j++ {
+		if j < l {
+			continue
+		}
+		line, err := rd.ReadString('\n') // read a line
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			return "", err
+		}
+
+		sptLint := strings.Split(line[:(len(line)-1)], ",")
+		if i == 0 {
+			i = 1
+			for _, val := range sptLint {
+				switch val {
+				case "Year":indexYear = index
+				case "StateAbbr":indexStateAbbr = index
+				case "CityName":indexCityName = index
+				case "Short_Question_Text":indexPopulationCount = index
+				}
+				index++
+			}
+		} else {
+			outLine := sptLint[indexYear] + "," +sptLint[indexStateAbbr] + "," +sptLint[indexCityName] + "," + sptLint[indexPopulationCount] + "\n"
+			out += outLine
+		}
+	}
+
+	return out, nil
+}
+
+func readCsvFloatAgg(fileName string) (avg, max, sum float64,  er error) {
+	file, err := os.Open(fileName)
+	if err != nil {
+		er = err
+		return
+	}
+	defer file.Close()
+	var i, index int
+	var indexDataValue int
+
+	rd := csv.NewReader(file)
+
+	for {
+		rc, err := rd.Read()
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			er = err
+			return
+		}
+		if i == 0 {
+			i=1
+			for index = 0; index < len(rc); index++ {
+				if rc[index] == "Data_Value" {
+					indexDataValue = index
+				}
+			}
+		} else {
+			if rc[indexDataValue] != "" {
+				s1, err := strconv.ParseFloat(rc[indexDataValue], 64)
+				if err != nil {
+					er = err
+					return
+				}
+				sum +=s1
+				if s1 > max {
+					max = s1
+				}
+				i++
+			}
+		}
+	}
+	avg = sum / float64(i-1)
+	return 
+}
+func readCsvConcat(fileName string) (string, error) {
+	var out string
+	file, err := os.Open(fileName)
+	if err != nil {
+		return out, err
+	}
+	defer file.Close()
+	var i int
+	var indexDataValue int
+	var indexYear,indexStateAbbr,indexCityName,indexShortQuestionText, indexDataValueUnit int
+	
+	rd := csv.NewReader(file)
+
+	for {
+		rc, err := rd.Read()
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			return out, err
+		}
+		if i == 0 {
+			for j, v := range rc {
+				switch v {
+					case "Year":indexYear = j
+					case "StateAbbr":indexStateAbbr = j
+					case "CityName":indexCityName = j
+					case "Short_Question_Text":indexShortQuestionText = j
+					case "Data_Value_Unit":indexDataValueUnit = j
+					case "Data_Value":indexDataValue = j
+				}
+			}
+		} else {
+			i++
+			if rc[indexDataValue] != "" || rc[indexDataValueUnit] != "" {
+				reg := regexp.MustCompile("^14.8.*$")
+				reD := reg.FindAllString(rc[indexDataValue], -1)
+				reDU := reg.FindAllString(rc[indexDataValueUnit], -1)
+				if len(reD) > 0 || len(reDU) > 0 {
+					outLine := rc[indexYear] + "," +rc[indexStateAbbr] + "," +rc[indexCityName] + "," + rc[indexShortQuestionText] + "\n"
+					out += outLine
+				}
+			}
+		}
+		i++
+	}
+	return out, nil
+}
+func readCsvComplicateCondition(fileName string)(string, error) {
+	var out string
+	file, err := os.Open(fileName)
+	if err != nil {
+		return out, err
+	}
+	defer file.Close()
+	var i int
+	var indexDataValue, indexCategory, indexHighConfidenceLimit, indexMeasure int
+	var indexYear,indexStateAbbr,indexCityName,indexShortQuestionText, indexDataValueUnit int
+	
+	rd := csv.NewReader(file)
+
+	for {
+		rc, err := rd.Read()
+		if io.EOF == err {
+			break
+		}
+		if err != nil {
+			return out, err
+		}
+		if i == 0 {
+			for j, v := range rc {
+				switch v {
+					case "Year":indexYear = j
+					case "StateAbbr":indexStateAbbr = j
+					case "CityName":indexCityName = j
+					case "Short_Question_Text":indexShortQuestionText = j
+					case "Data_Value_Unit":indexDataValueUnit = j
+					case "Data_Value":indexDataValue = j
+					case "Measure":indexMeasure = j
+					case "Category":indexCategory = j
+					case "High_Confidence_Limit":indexHighConfidenceLimit = j
+				}
+			}
+		} else {
+			reg := regexp.MustCompile("^.*18 Years$")
+			reM := reg.FindAllString(rc[indexMeasure], -1)
+			var dataV, limitV float64
+			if rc[indexDataValue] != "" {
+				dataV, err = strconv.ParseFloat(rc[indexDataValue], 64)
+				if err != nil {
+					return out, err
+				}
+			}
+			if rc[indexHighConfidenceLimit] != "" {
+				limitV, err = strconv.ParseFloat(rc[indexHighConfidenceLimit], 64)
+				if err != nil {
+					return out, err
+				}
+			}
+			if dataV > 14.8 && rc[indexDataValueUnit] == "%" || len(reM) > 0  && 
+				rc[indexCategory] == "Unhealthy Behaviors" || limitV > 70.0 {
+					outLine := rc[indexYear] + "," +rc[indexStateAbbr] + "," +rc[indexCityName] + "," + rc[indexShortQuestionText] + "," + rc[indexDataValue] + "," + rc[indexDataValueUnit] + "," + rc[indexCategory] + "," + rc[indexHighConfidenceLimit] + "\n"
+					out += outLine
+			}
+		}
+		i++
+	}
+	return out, nil
+}
+
+
+type Extra struct {
+	Address string `json:"address"`
+	ContactForm string `json:"contact_form"`
+	Fax string `json:"fax,omitempty"`
+	How string `json:"how,omitempty"`
+	Office string `json:"office"`
+	RssUrl string `json:"rss_url,omitempty"`
+}
+
+type Person struct {
+	Bioguideid string `json:"bioguideid"`
+	Birthday string `json:"birthday"`
+	Cspanid int `json:"cspanid"`
+	Firstname string `json:"firstname"`
+	Gender string `json:"gender"`
+	GenderLabel string `json:"gender_label"`
+	Lastname string `json:"lastname"`
+	Link string `json:"link"`
+	Middlename string `json:"middlename"`
+	Name string `json:"name"`
+	Namemod string `json:"namemod"`
+	Nickname string `json:"nickname"`
+	Osid string `json:"osid"`
+	Pvsid *string `json:"pvsid"`
+	Sortname string `json:"sortname"`
+	Twitterid *string `json:"twitterid"`
+	Youtubeid *string `json:"youtubeid"`
+}
+
+type JsonLineSt struct {
+	Caucus *string `json:"caucus"`
+	CongressNumbers []int `json:"congress_numbers"`
+	Current  bool `json:"current"`
+	Description string `json:"description"`
+	District *string `json:"district"`
+	Enddate string `json:"enddate"`
+	Extra Extra `json:"extra"`
+	LeadershipTitle *string `json:"leadership_title"`
+	Party string `json:"party"`
+	Person Person `json:"person"`
+	Phone string `json:"phone"`
+	RoleType string `json:"role_type"`
+	RoleTypeLabel string `json:"role_type_label"`
+	SenatorClass string `json:"senator_class"`
+	SenatorClassLabel string `json:"senator_class_label"`
+	SenatorRank string `json:"senator_rank"`
+	SenatorRankLabel string `json:"senator_rank_label"`
+	Startdate string `json:"startdate"`
+	State string `json:"state"`
+	Title string `json:"title"`
+	TitleLong string `json:"title_long"`
+	Website string `json:"website"`
+}
+type Metast struct {
+	limit int 
+	Offset int
+	TotalCount int
+}
+
+type JsonSt struct {
+	Meta Metast
+	Objects []JsonLineSt `json:"objects"`
+}
+
+func readJsonDocument(fileName string) (string, error){
+	var out string
+	var data JsonSt
+    file, err := os.Open(fileName)
+    if err != nil {
+	    return "",err
+    }
+    decoder := json.NewDecoder(file)
+    err = decoder.Decode(&data)
+    for _, v := range data.Objects {
+	    if v.Party == "Democrat"{
+	 	   lint, err := json.Marshal(v)
+	 	   if err != nil {
+	 		   return "",err
+	 	   }
+	 	   lints := strings.Replace(string(lint), "\\u0026", "&", -1)
+	 	   out += lints + ","
+	    }
+    }
+ 
+    return out, err
+}
+func readJsonLinesLike(fileName string) (string, error){
+	var out string
+ 	var data JsonSt
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	decoder := json.NewDecoder(file)
+	err = decoder.Decode(&data)
+	reg := regexp.MustCompile("^1959.*")
+	for _, v := range data.Objects {
+		reB := reg.FindAllString(v.Person.Birthday, -1)
+		if len(reB) > 0 {
+			lints := "{\"firstname\":\"" + v.Person.Firstname + "\",\"lastname\":\"" + v.Person.Lastname + "\"}"
+			out += lints + ","
+		}
+	}
+
+	return out, err
+}
+
+func readJsonLinesRange(fileName string, l, r int) (string, error){
+	var out string
+	var data JsonSt
+	var i int
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	decoder := json.NewDecoder(file)
+	err = decoder.Decode(&data)
+	for _, v := range data.Objects {
+		if i < l {
+			continue
+		}
+		if i >= r {
+			break
+		}
+		extrb, err := json.Marshal(v.Extra)
+	 	if err != nil {
+	 		return "",err
+	 	}
+		extr := strings.Replace(string(extrb), "\\u0026", "&", -1)
+		
+		lints := "{\"firstname\":\"" + v.Person.Firstname + "\",\"lastname\":\"" + v.Person.Lastname +
+			"\",\"extra\":" + extr + "}"
+		out += lints + ","
+		i++
+	}
+
+	return out, err
+}
+
+func readJsonFloatAggregation(fileName string) (float64, float64, float64, error){
+	var avg, max, min, sum float64
+	var data JsonSt
+	var i int
+	file, err := os.Open(fileName)
+	if err != nil {
+		return  avg, max, min, err
+	}
+	decoder := json.NewDecoder(file)
+	err = decoder.Decode(&data)
+	for _, v := range data.Objects {
+		if i == 0 {
+			min = float64(v.Person.Cspanid)
+		}
+		if max < float64(v.Person.Cspanid) {
+			max = float64(v.Person.Cspanid)
+		}
+		if min > float64(v.Person.Cspanid) {
+			min = float64(v.Person.Cspanid)
+		}
+		sum += float64(v.Person.Cspanid)
+		i++
+	}
+	avg = sum / float64(i)
+	return avg, max, min, err
+}
+
+func readJsonDocumentConcat(fileName string) (string, error){
+	var out string
+ 	var data JsonSt
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	decoder := json.NewDecoder(file)
+	err = decoder.Decode(&data)
+
+	for _, v := range data.Objects {
+		if v.Person.Firstname + v.Person.Lastname == "JohnKennedy" {
+			extrb, err := json.Marshal(v.Person)
+			if err != nil {
+				return "",err
+			}
+			extr := "{\"person\":" + strings.Replace(string(extrb), "\\u0026", "&", -1) + "}"
+			out += extr + ","
+		}
+	}
+
+	return out, err
+}
+
+func readJsonComplicateConcat(fileName string) (string, error){
+	var out string
+ 	var data JsonSt
+	file, err := os.Open(fileName)
+	if err != nil {
+		return "",err
+	}
+	decoder := json.NewDecoder(file)
+	err = decoder.Decode(&data)
+
+	for _, v := range data.Objects {
+		if v.Startdate > "2017-01-01" && v.SenatorRank == "junior" || 
+			v.State == "CA" && v.Party == "Repulican" {
+			cn := "["
+			for _,vv := range v.CongressNumbers {
+				cn += strconv.Itoa(vv) + ","
+			}
+			cn = cn[:len(cn)-1] + "]"
+			lints := "{\"firstname\":\"" + v.Person.Firstname + "\",\"lastname\":\"" + v.Person.Lastname + "\",\"congress_numbers\":" + cn + "}"
+			out += lints + ","
+		}
+	}
+
+	return out, err
+}

+ 364 - 0
oss/select_object_type.go

@@ -0,0 +1,364 @@
+package oss
+
+import (
+	"bytes"
+	"encoding/binary"
+	"fmt"
+	"hash"
+	"hash/crc32"
+	"io"
+	"net/http"
+	"time"
+)
+
+// The adapter class for Select object's response.
+// The response consists of frames. Each frame has the following format:
+
+// Type  |   Payload Length |  Header Checksum | Payload | Payload Checksum
+
+// |<4-->|  <--4 bytes------><---4 bytes-------><-n/a-----><--4 bytes--------->
+// And we have three kind of frames.
+// Data Frame:
+// Type:8388609
+// Payload:   Offset    |    Data
+//            <-8 bytes>
+
+// Continuous Frame
+// Type:8388612
+// Payload: Offset  (8-bytes)
+
+// End Frame
+// Type:8388613
+// Payload: Offset | total scanned bytes | http status code | error message
+//     <-- 8bytes--><-----8 bytes--------><---4 bytes-------><---variabe--->
+
+// SelectObjectResponse defines HTTP response from OSS SelectObject
+type SelectObjectResponse struct {
+	StatusCode          int
+	Headers             http.Header
+	Body                io.ReadCloser
+	Frame               SelectObjectResult
+	ReadTimeOut         uint
+	ClientCRC32         uint32
+	ServerCRC32         uint32
+	WriterForCheckCrc32 hash.Hash32
+	Finish              bool
+}
+
+func (sr *SelectObjectResponse) Read(p []byte) (n int, err error) {
+	n, err = sr.readFrames(p)
+	return
+}
+
+// Close http reponse body
+func (sr *SelectObjectResponse) Close() error {
+	return sr.Body.Close()
+}
+
+// PostSelectResult is the request of SelectObject
+type PostSelectResult struct {
+	Response *SelectObjectResponse
+}
+
+// readFrames is read Frame
+func (sr *SelectObjectResponse) readFrames(p []byte) (int, error) {
+	var nn int
+	var err error
+	var checkValid bool
+	if sr.Frame.OutputRawData == true {
+		nn, err = sr.Body.Read(p)
+		return nn, err
+	}
+
+	if sr.Finish {
+		return 0, io.EOF
+	}
+
+	for {
+		// if this Frame is Readed, then not reading Header
+		if sr.Frame.OpenLine != true {
+			err = sr.analysisHeader()
+			if err != nil {
+				return nn, err
+			}
+		}
+
+		if sr.Frame.FrameType == DataFrameType {
+			n, err := sr.analysisData(p[nn:])
+			if err != nil {
+				return nn, err
+			}
+			nn += n
+
+			// if this Frame is readed all data, then empty the Frame to read it with next frame
+			if sr.Frame.ConsumedBytesLength == sr.Frame.PayloadLength-8 {
+				checkValid, err = sr.checkPayloadSum()
+				if err != nil || !checkValid {
+					return nn, fmt.Errorf("%s", err.Error())
+				}
+				sr.emptyFrame()
+			}
+
+			if nn == len(p) {
+				return nn, nil
+			}
+		} else if sr.Frame.FrameType == ContinuousFrameType {
+			checkValid, err = sr.checkPayloadSum()
+			if err != nil || !checkValid {
+				return nn, fmt.Errorf("%s", err.Error())
+			}
+		} else if sr.Frame.FrameType == EndFrameType {
+			err = sr.analysisEndFrame()
+			if err != nil {
+				return nn, err
+			}
+			checkValid, err = sr.checkPayloadSum()
+			if checkValid {
+				sr.Finish = true
+			}
+			return nn, err
+		} else if sr.Frame.FrameType == MetaEndFrameCSVType {
+			err = sr.analysisMetaEndFrameCSV()
+			if err != nil {
+				return nn, err
+			}
+			checkValid, err = sr.checkPayloadSum()
+			if checkValid {
+				sr.Finish = true
+			}
+			return nn, err
+		} else if sr.Frame.FrameType == MetaEndFrameJSONType {
+			err = sr.analysisMetaEndFrameJSON()
+			if err != nil {
+				return nn, err
+			}
+			checkValid, err = sr.checkPayloadSum()
+			if checkValid {
+				sr.Finish = true
+			}
+			return nn, err
+		}
+	}
+	return nn, nil
+}
+
+type chanReadIO struct {
+	readLen int
+	err     error
+}
+
+func (sr *SelectObjectResponse) readLen(p []byte, timeOut time.Duration) (int, error) {
+	r := sr.Body
+	ch := make(chan chanReadIO, 1)
+	defer close(ch)
+	go func(p []byte) {
+		var needReadLength int
+		readChan := chanReadIO{}
+		needReadLength = len(p)
+		for {
+			n, err := r.Read(p[readChan.readLen:needReadLength])
+			readChan.readLen += n
+			if err != nil {
+				readChan.err = err
+				ch <- readChan
+				return
+			}
+
+			if readChan.readLen == needReadLength {
+				break
+			}
+		}
+		ch <- readChan
+	}(p)
+
+	select {
+	case <-time.After(time.Second * timeOut):
+		return 0, fmt.Errorf("requestId: %s, readLen timeout, timeout is %d(second),need read:%d", sr.Headers.Get(HTTPHeaderOssRequestID), timeOut, len(p))
+	case result := <-ch:
+		return result.readLen, result.err
+	}
+}
+
+// analysisHeader is reading selectObject response body's header
+func (sr *SelectObjectResponse) analysisHeader() error {
+	headFrameByte := make([]byte, 20)
+	_, err := sr.readLen(headFrameByte, time.Duration(sr.ReadTimeOut))
+	if err != nil {
+		return fmt.Errorf("requestId: %s, Read response frame header failure,err:%s", sr.Headers.Get(HTTPHeaderOssRequestID), err.Error())
+	}
+
+	frameTypeByte := headFrameByte[0:4]
+	sr.Frame.Version = frameTypeByte[0]
+	frameTypeByte[0] = 0
+	bytesToInt(frameTypeByte, &sr.Frame.FrameType)
+
+	if sr.Frame.FrameType != DataFrameType && sr.Frame.FrameType != ContinuousFrameType &&
+		sr.Frame.FrameType != EndFrameType && sr.Frame.FrameType != MetaEndFrameCSVType && sr.Frame.FrameType != MetaEndFrameJSONType {
+		return fmt.Errorf("requestId: %s, Unexpected frame type: %d", sr.Headers.Get(HTTPHeaderOssRequestID), sr.Frame.FrameType)
+	}
+
+	payloadLengthByte := headFrameByte[4:8]
+	bytesToInt(payloadLengthByte, &sr.Frame.PayloadLength)
+	headCheckSumByte := headFrameByte[8:12]
+	bytesToInt(headCheckSumByte, &sr.Frame.HeaderCheckSum)
+	byteOffset := headFrameByte[12:20]
+	bytesToInt(byteOffset, &sr.Frame.Offset)
+	sr.Frame.OpenLine = true
+
+	err = sr.writerCheckCrc32(byteOffset)
+	return err
+}
+
+// analysisData is reading the DataFrameType data of selectObject response body
+func (sr *SelectObjectResponse) analysisData(p []byte) (int, error) {
+	var needReadLength int32
+	lenP := int32(len(p))
+	restByteLength := sr.Frame.PayloadLength - 8 - sr.Frame.ConsumedBytesLength
+	if lenP <= restByteLength {
+		needReadLength = lenP
+	} else {
+		needReadLength = restByteLength
+	}
+	n, err := sr.readLen(p[:needReadLength], time.Duration(sr.ReadTimeOut))
+	if err != nil {
+		return n, fmt.Errorf("read frame data error,%s", err.Error())
+	}
+	sr.Frame.ConsumedBytesLength += int32(n)
+	err = sr.writerCheckCrc32(p[:n])
+	return n, err
+}
+
+// analysisEndFrame is reading the EndFrameType data of selectObject response body
+func (sr *SelectObjectResponse) analysisEndFrame() error {
+	var eF EndFrame
+	payLoadBytes := make([]byte, sr.Frame.PayloadLength-8)
+	_, err := sr.readLen(payLoadBytes, time.Duration(sr.ReadTimeOut))
+	if err != nil {
+		return fmt.Errorf("read end frame error:%s", err.Error())
+	}
+	bytesToInt(payLoadBytes[0:8], &eF.TotalScanned)
+	bytesToInt(payLoadBytes[8:12], &eF.HTTPStatusCode)
+	errMsgLength := sr.Frame.PayloadLength - 20
+	eF.ErrorMsg = string(payLoadBytes[12 : errMsgLength+12])
+	sr.Frame.EndFrame.TotalScanned = eF.TotalScanned
+	sr.Frame.EndFrame.HTTPStatusCode = eF.HTTPStatusCode
+	sr.Frame.EndFrame.ErrorMsg = eF.ErrorMsg
+	err = sr.writerCheckCrc32(payLoadBytes)
+	return err
+}
+
+// analysisMetaEndFrameCSV is reading the MetaEndFrameCSVType data of selectObject response body
+func (sr *SelectObjectResponse) analysisMetaEndFrameCSV() error {
+	var mCF MetaEndFrameCSV
+	payLoadBytes := make([]byte, sr.Frame.PayloadLength-8)
+	_, err := sr.readLen(payLoadBytes, time.Duration(sr.ReadTimeOut))
+	if err != nil {
+		return fmt.Errorf("read meta end csv frame error:%s", err.Error())
+	}
+
+	bytesToInt(payLoadBytes[0:8], &mCF.TotalScanned)
+	bytesToInt(payLoadBytes[8:12], &mCF.Status)
+	bytesToInt(payLoadBytes[12:16], &mCF.SplitsCount)
+	bytesToInt(payLoadBytes[16:24], &mCF.RowsCount)
+	bytesToInt(payLoadBytes[24:28], &mCF.ColumnsCount)
+	errMsgLength := sr.Frame.PayloadLength - 36
+	mCF.ErrorMsg = string(payLoadBytes[28 : errMsgLength+28])
+	sr.Frame.MetaEndFrameCSV.ErrorMsg = mCF.ErrorMsg
+	sr.Frame.MetaEndFrameCSV.TotalScanned = mCF.TotalScanned
+	sr.Frame.MetaEndFrameCSV.Status = mCF.Status
+	sr.Frame.MetaEndFrameCSV.SplitsCount = mCF.SplitsCount
+	sr.Frame.MetaEndFrameCSV.RowsCount = mCF.RowsCount
+	sr.Frame.MetaEndFrameCSV.ColumnsCount = mCF.ColumnsCount
+	err = sr.writerCheckCrc32(payLoadBytes)
+	return err
+}
+
+// analysisMetaEndFrameJSON is reading the MetaEndFrameJSONType data of selectObject response body
+func (sr *SelectObjectResponse) analysisMetaEndFrameJSON() error {
+	var mJF MetaEndFrameJSON
+	payLoadBytes := make([]byte, sr.Frame.PayloadLength-8)
+	_, err := sr.readLen(payLoadBytes, time.Duration(sr.ReadTimeOut))
+	if err != nil {
+		return fmt.Errorf("read meta end json frame error:%s", err.Error())
+	}
+
+	bytesToInt(payLoadBytes[0:8], &mJF.TotalScanned)
+	bytesToInt(payLoadBytes[8:12], &mJF.Status)
+	bytesToInt(payLoadBytes[12:16], &mJF.SplitsCount)
+	bytesToInt(payLoadBytes[16:24], &mJF.RowsCount)
+	errMsgLength := sr.Frame.PayloadLength - 32
+	mJF.ErrorMsg = string(payLoadBytes[24 : errMsgLength+24])
+	sr.Frame.MetaEndFrameJSON.ErrorMsg = mJF.ErrorMsg
+	sr.Frame.MetaEndFrameJSON.TotalScanned = mJF.TotalScanned
+	sr.Frame.MetaEndFrameJSON.Status = mJF.Status
+	sr.Frame.MetaEndFrameJSON.SplitsCount = mJF.SplitsCount
+	sr.Frame.MetaEndFrameJSON.RowsCount = mJF.RowsCount
+
+	err = sr.writerCheckCrc32(payLoadBytes)
+	return err
+}
+
+func (sr *SelectObjectResponse) checkPayloadSum() (bool, error) {
+	payLoadChecksumByte := make([]byte, 4)
+	n, err := sr.readLen(payLoadChecksumByte, time.Duration(sr.ReadTimeOut))
+	if n == 4 {
+		bytesToInt(payLoadChecksumByte, &sr.Frame.PayloadChecksum)
+		sr.ServerCRC32 = sr.Frame.PayloadChecksum
+		sr.ClientCRC32 = sr.WriterForCheckCrc32.Sum32()
+		if sr.Frame.EnablePayloadCrc == true && sr.ServerCRC32 != 0 && sr.ServerCRC32 != sr.ClientCRC32 {
+			return false, fmt.Errorf("RequestId: %s, Unexpected frame type: %d, client %d but server %d",
+				sr.Headers.Get(HTTPHeaderOssRequestID), sr.Frame.FrameType, sr.ClientCRC32, sr.ServerCRC32)
+		}
+		return true, err
+	}
+	return false, fmt.Errorf("RequestId:%s, read checksum error:%s", sr.Headers.Get(HTTPHeaderOssRequestID), err.Error())
+}
+
+func (sr *SelectObjectResponse) writerCheckCrc32(p []byte) (err error) {
+	err = nil
+	if sr.Frame.EnablePayloadCrc == true {
+		_, err = sr.WriterForCheckCrc32.Write(p)
+	}
+	return err
+}
+
+// emptyFrame is emptying SelectObjectResponse Frame information
+func (sr *SelectObjectResponse) emptyFrame() {
+	crcCalc := crc32.NewIEEE()
+	sr.WriterForCheckCrc32 = crcCalc
+	sr.Finish = false
+
+	sr.Frame.ConsumedBytesLength = 0
+	sr.Frame.OpenLine = false
+	sr.Frame.Version = byte(0)
+	sr.Frame.FrameType = 0
+	sr.Frame.PayloadLength = 0
+	sr.Frame.HeaderCheckSum = 0
+	sr.Frame.Offset = 0
+	sr.Frame.Data = ""
+
+	sr.Frame.EndFrame.TotalScanned = 0
+	sr.Frame.EndFrame.HTTPStatusCode = 0
+	sr.Frame.EndFrame.ErrorMsg = ""
+
+	sr.Frame.MetaEndFrameCSV.TotalScanned = 0
+	sr.Frame.MetaEndFrameCSV.Status = 0
+	sr.Frame.MetaEndFrameCSV.SplitsCount = 0
+	sr.Frame.MetaEndFrameCSV.RowsCount = 0
+	sr.Frame.MetaEndFrameCSV.ColumnsCount = 0
+	sr.Frame.MetaEndFrameCSV.ErrorMsg = ""
+
+	sr.Frame.MetaEndFrameJSON.TotalScanned = 0
+	sr.Frame.MetaEndFrameJSON.Status = 0
+	sr.Frame.MetaEndFrameJSON.SplitsCount = 0
+	sr.Frame.MetaEndFrameJSON.RowsCount = 0
+	sr.Frame.MetaEndFrameJSON.ErrorMsg = ""
+
+	sr.Frame.PayloadChecksum = 0
+}
+
+// bytesToInt byte's array trans to int
+func bytesToInt(b []byte, ret interface{}) {
+	binBuf := bytes.NewBuffer(b)
+	binary.Read(binBuf, binary.BigEndian, ret)
+}

+ 219 - 10
oss/type.go

@@ -1,6 +1,7 @@
 package oss
 
 import (
+	"encoding/base64"
 	"encoding/xml"
 	"fmt"
 	"net/url"
@@ -840,16 +841,16 @@ type RequestPaymentConfiguration struct {
 
 // BucketQoSConfiguration define QoS configuration
 type BucketQoSConfiguration struct {
-	XMLName                   xml.Name `xml:"QoSConfiguration"`	
-	TotalUploadBandwidth      *int      `xml:"TotalUploadBandwidth"`      // Total upload bandwidth
-	IntranetUploadBandwidth   *int      `xml:"IntranetUploadBandwidth"`   // Intranet upload bandwidth
-	ExtranetUploadBandwidth   *int      `xml:"ExtranetUploadBandwidth"`   // Extranet upload bandwidth
-	TotalDownloadBandwidth    *int      `xml:"TotalDownloadBandwidth"`    // Total download bandwidth
-	IntranetDownloadBandwidth *int      `xml:"IntranetDownloadBandwidth"` // Intranet download bandwidth
-	ExtranetDownloadBandwidth *int      `xml:"ExtranetDownloadBandwidth"` // Extranet download bandwidth
-	TotalQPS                  *int      `xml:"TotalQps"`                  // Total Qps
-	IntranetQPS               *int      `xml:"IntranetQps"`               // Intranet Qps
-	ExtranetQPS               *int      `xml:"ExtranetQps"`               // Extranet Qps
+	XMLName                   xml.Name `xml:"QoSConfiguration"`
+	TotalUploadBandwidth      *int     `xml:"TotalUploadBandwidth"`      // Total upload bandwidth
+	IntranetUploadBandwidth   *int     `xml:"IntranetUploadBandwidth"`   // Intranet upload bandwidth
+	ExtranetUploadBandwidth   *int     `xml:"ExtranetUploadBandwidth"`   // Extranet upload bandwidth
+	TotalDownloadBandwidth    *int     `xml:"TotalDownloadBandwidth"`    // Total download bandwidth
+	IntranetDownloadBandwidth *int     `xml:"IntranetDownloadBandwidth"` // Intranet download bandwidth
+	ExtranetDownloadBandwidth *int     `xml:"ExtranetDownloadBandwidth"` // Extranet download bandwidth
+	TotalQPS                  *int     `xml:"TotalQps"`                  // Total Qps
+	IntranetQPS               *int     `xml:"IntranetQps"`               // Intranet Qps
+	ExtranetQPS               *int     `xml:"ExtranetQps"`               // Extranet Qps
 }
 
 // UserQoSConfiguration define QoS and Range configuration
@@ -858,3 +859,211 @@ type UserQoSConfiguration struct {
 	Region  string   `xml:"Region,omitempty"` // Effective area of Qos configuration
 	BucketQoSConfiguration
 }
+
+//////////////////////////////////////////////////////////////
+/////////////////// Select OBject ////////////////////////////
+//////////////////////////////////////////////////////////////
+
+type CsvMetaRequest struct {
+	XMLName            xml.Name           `xml:"CsvMetaRequest"`
+	InputSerialization InputSerialization `xml:"InputSerialization"`
+	OverwriteIfExists  *bool              `xml:"OverwriteIfExists,omitempty"`
+}
+
+// encodeBase64 encode base64 of the CreateSelectObjectMeta api request params
+func (meta *CsvMetaRequest) encodeBase64() {
+	meta.InputSerialization.CSV.RecordDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(meta.InputSerialization.CSV.RecordDelimiter))
+	meta.InputSerialization.CSV.FieldDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(meta.InputSerialization.CSV.FieldDelimiter))
+	meta.InputSerialization.CSV.QuoteCharacter =
+		base64.StdEncoding.EncodeToString([]byte(meta.InputSerialization.CSV.QuoteCharacter))
+}
+
+type JsonMetaRequest struct {
+	XMLName            xml.Name           `xml:"JsonMetaRequest"`
+	InputSerialization InputSerialization `xml:"InputSerialization"`
+	OverwriteIfExists  *bool              `xml:"OverwriteIfExists,omitempty"`
+}
+
+type InputSerialization struct {
+	XMLName         xml.Name `xml:"InputSerialization"`
+	CSV             CSV      `xml:CSV,omitempty`
+	JSON            JSON     `xml:JSON,omitempty`
+	CompressionType string   `xml:"CompressionType,omitempty"`
+}
+type CSV struct {
+	XMLName         xml.Name `xml:"CSV"`
+	RecordDelimiter string   `xml:"RecordDelimiter,omitempty"`
+	FieldDelimiter  string   `xml:"FieldDelimiter,omitempty"`
+	QuoteCharacter  string   `xml:"QuoteCharacter,omitempty"`
+}
+
+type JSON struct {
+	XMLName  xml.Name `xml:"JSON"`
+	JSONType string   `xml:"Type,omitempty"`
+}
+
+// SelectRequest is for the SelectObject request params of json file
+type SelectRequest struct {
+	XMLName                   xml.Name                  `xml:"SelectRequest"`
+	Expression                string                    `xml:"Expression"`
+	InputSerializationSelect  InputSerializationSelect  `xml:"InputSerialization"`
+	OutputSerializationSelect OutputSerializationSelect `xml:"OutputSerialization"`
+	SelectOptions             SelectOptions             `xml:"Options,omitempty"`
+}
+type InputSerializationSelect struct {
+	XMLName         xml.Name        `xml:"InputSerialization"`
+	CsvBodyInput    CSVSelectInput  `xml:CSV,omitempty`
+	JsonBodyInput   JSONSelectInput `xml:JSON,omitempty`
+	CompressionType string          `xml:"CompressionType,omitempty"`
+}
+type CSVSelectInput struct {
+	XMLName          xml.Name `xml:"CSV"`
+	FileHeaderInfo   string   `xml:"FileHeaderInfo,omitempty"`
+	RecordDelimiter  string   `xml:"RecordDelimiter,omitempty"`
+	FieldDelimiter   string   `xml:"FieldDelimiter,omitempty"`
+	QuoteCharacter   string   `xml:"QuoteCharacter,omitempty"`
+	CommentCharacter string   `xml:"CommentCharacter,omitempty"`
+	Range            string   `xml:"Range,omitempty"`
+	SplitRange       string
+}
+type JSONSelectInput struct {
+	XMLName                 xml.Name `xml:"JSON"`
+	JSONType                string   `xml:"Type,omitempty"`
+	Range                   string   `xml:"Range,omitempty"`
+	ParseJSONNumberAsString *bool    `xml:"ParseJsonNumberAsString"`
+	SplitRange              string
+}
+
+func (jsonInput *JSONSelectInput) JsonIsEmpty() bool {
+	if jsonInput.JSONType != "" {
+		return false
+	}
+	return true
+}
+
+type OutputSerializationSelect struct {
+	XMLName          xml.Name         `xml:"OutputSerialization"`
+	CsvBodyOutput    CSVSelectOutput  `xml:CSV,omitempty`
+	JsonBodyOutput   JSONSelectOutput `xml:JSON,omitempty`
+	OutputRawData    *bool            `xml:"OutputRawData,omitempty"`
+	KeepAllColumns   *bool            `xml:"KeepAllColumns,omitempty"`
+	EnablePayloadCrc *bool            `xml:"EnablePayloadCrc,omitempty"`
+	OutputHeader     *bool            `xml:"OutputHeader,omitempty"`
+}
+type CSVSelectOutput struct {
+	XMLName         xml.Name `xml:"CSV"`
+	RecordDelimiter string   `xml:"RecordDelimiter,omitempty"`
+	FieldDelimiter  string   `xml:"FieldDelimiter,omitempty"`
+}
+type JSONSelectOutput struct {
+	XMLName         xml.Name `xml:"JSON"`
+	RecordDelimiter string   `xml:"RecordDelimiter,omitempty"`
+}
+
+func (selectReq *SelectRequest) encodeBase64() {
+	if selectReq.InputSerializationSelect.JsonBodyInput.JsonIsEmpty() {
+		selectReq.csvEncodeBase64()
+	} else {
+		selectReq.jsonEncodeBase64()
+	}
+}
+
+// csvEncodeBase64 encode base64 of the SelectObject api request params
+func (selectReq *SelectRequest) csvEncodeBase64() {
+	selectReq.Expression = base64.StdEncoding.EncodeToString([]byte(selectReq.Expression))
+	selectReq.InputSerializationSelect.CsvBodyInput.RecordDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.InputSerializationSelect.CsvBodyInput.RecordDelimiter))
+	selectReq.InputSerializationSelect.CsvBodyInput.FieldDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.InputSerializationSelect.CsvBodyInput.FieldDelimiter))
+	selectReq.InputSerializationSelect.CsvBodyInput.QuoteCharacter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.InputSerializationSelect.CsvBodyInput.QuoteCharacter))
+	selectReq.InputSerializationSelect.CsvBodyInput.CommentCharacter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.InputSerializationSelect.CsvBodyInput.CommentCharacter))
+	selectReq.OutputSerializationSelect.CsvBodyOutput.FieldDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.OutputSerializationSelect.CsvBodyOutput.FieldDelimiter))
+	selectReq.OutputSerializationSelect.CsvBodyOutput.RecordDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.OutputSerializationSelect.CsvBodyOutput.RecordDelimiter))
+
+	// handle Range
+	if selectReq.InputSerializationSelect.CsvBodyInput.Range != "" {
+		selectReq.InputSerializationSelect.CsvBodyInput.Range = "line-range=" + selectReq.InputSerializationSelect.CsvBodyInput.Range
+	}
+
+	if selectReq.InputSerializationSelect.CsvBodyInput.SplitRange != "" {
+		selectReq.InputSerializationSelect.CsvBodyInput.Range = "split-range=" + selectReq.InputSerializationSelect.CsvBodyInput.SplitRange
+	}
+}
+
+// jsonEncodeBase64 encode base64 of the SelectObject api request params
+func (selectReq *SelectRequest) jsonEncodeBase64() {
+	selectReq.Expression = base64.StdEncoding.EncodeToString([]byte(selectReq.Expression))
+	selectReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter =
+		base64.StdEncoding.EncodeToString([]byte(selectReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter))
+
+	// handle Range
+	if selectReq.InputSerializationSelect.JsonBodyInput.Range != "" {
+		selectReq.InputSerializationSelect.JsonBodyInput.Range = "line-range=" + selectReq.InputSerializationSelect.JsonBodyInput.Range
+	}
+
+	if selectReq.InputSerializationSelect.JsonBodyInput.SplitRange != "" {
+		selectReq.InputSerializationSelect.JsonBodyInput.Range = "split-range=" + selectReq.InputSerializationSelect.JsonBodyInput.SplitRange
+	}
+}
+
+// CsvOptions is a element in the SelectObject api request's params
+type SelectOptions struct {
+	XMLName                  xml.Name `xml:"Options"`
+	SkipPartialDataRecord    *bool    `xml:"SkipPartialDataRecord,omitempty"`
+	MaxSkippedRecordsAllowed string   `xml:"MaxSkippedRecordsAllowed,omitempty"`
+}
+
+// SelectObjectResult is the SelectObject api's return
+type SelectObjectResult struct {
+	Version          byte
+	FrameType        int32
+	PayloadLength    int32
+	HeaderCheckSum   uint32
+	Offset           uint64
+	Data             string           // DataFrame
+	EndFrame         EndFrame         // EndFrame
+	MetaEndFrameCSV  MetaEndFrameCSV  // MetaEndFrameCSV
+	MetaEndFrameJSON MetaEndFrameJSON // MetaEndFrameJSON
+	PayloadChecksum  uint32
+	ReadFlagInfo
+}
+
+// ReadFlagInfo if reading the frame data, recode the reading status
+type ReadFlagInfo struct {
+	OpenLine            bool
+	ConsumedBytesLength int32
+	EnablePayloadCrc    bool
+	OutputRawData       bool
+}
+
+// EndFrame is EndFrameType of SelectObject api
+type EndFrame struct {
+	TotalScanned   int64
+	HTTPStatusCode int32
+	ErrorMsg       string
+}
+
+// MetaEndFrameCSV is MetaEndFrameCSVType of CreateSelectObjectMeta
+type MetaEndFrameCSV struct {
+	TotalScanned int64
+	Status       int32
+	SplitsCount  int32
+	RowsCount    int64
+	ColumnsCount int32
+	ErrorMsg     string
+}
+
+// MetaEndFrameJSON is MetaEndFrameJSON of CreateSelectObjectMeta
+type MetaEndFrameJSON struct {
+	TotalScanned int64
+	Status       int32
+	SplitsCount  int32
+	RowsCount    int64
+	ErrorMsg     string
+}

+ 1 - 0
sample.go

@@ -37,6 +37,7 @@ var sampleMap = map[string]interface{}{
 	"ArchiveSample":               sample.ArchiveSample,
 	"ObjectTaggingSample":         sample.ObjectTaggingSample,
 	"BucketEncryptionSample":      sample.BucketEncryptionSample,
+        "SelectObjectSample":          sample.SelectObjectSample,
 }
 
 func main() {

+ 5 - 2
sample/config.go

@@ -26,6 +26,9 @@ const (
 	appendObjectKey string = "my-object-append"
 
 	// The local files to run sample code.
-	localFile     string = "sample/BingWallpaper-2015-11-07.jpg"
-	htmlLocalFile string = "sample/The Go Programming Language.html"
+	localFile     	   string = "sample/BingWallpaper-2015-11-07.jpg"
+	localCsvFile 	   string = "sample/sample_data.csv"
+	localJSONFile 	   string = "sample/sample_json.json"
+	localJSONLinesFile string = "sample/sample_json_lines.json"
+	htmlLocalFile 	   string = "sample/The Go Programming Language.html"
 )

+ 304 - 0
sample/sample_data.csv

@@ -0,0 +1,304 @@
+Year,StateAbbr,StateDesc,CityName,GeographicLevel,DataSource,Category,UniqueID,Measure,Data_Value_Unit,DataValueTypeID,Data_Value_Type,Data_Value,Low_Confidence_Limit,High_Confidence_Limit,Data_Value_Footnote_Symbol,Data_Value_Footnote,PopulationCount,GeoLocation,CategoryID,MeasureId,CityFIPS,TractFIPS,Short_Question_Text
+2015,US,United States,,US,BRFSS,Prevention,59,Current lack of health insurance among adults aged 18–64 Years,%,AgeAdjPrv,Age-adjusted prevalence,15.4,15.1,15.7,,,308745538,,PREVENT,ACCESS2,,,Health Insurance
+2015,US,United States,,US,BRFSS,Prevention,59,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,14.8,14.5,15.0,,,308745538,,PREVENT,ACCESS2,,,Health Insurance
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Arthritis among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,22.5,22.3,22.7,,,308745538,,HLTHOUT,ARTHRITIS,,,Arthritis
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,24.7,24.5,24.9,,,308745538,,HLTHOUT,ARTHRITIS,,,Arthritis
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Binge drinking among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,17.2,16.9,17.4,,,308745538,,UNHBEH,BINGE,,,Binge Drinking
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.3,16.1,16.5,,,308745538,,UNHBEH,BINGE,,,Binge Drinking
+2015,US,United States,,US,BRFSS,Health Outcomes,59,High blood pressure among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,29.4,29.2,29.7,,,308745538,,HLTHOUT,BPHIGH,,,High Blood Pressure
+2015,US,United States,,US,BRFSS,Health Outcomes,59,High blood pressure among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.9,31.6,32.2,,,308745538,,HLTHOUT,BPHIGH,,,High Blood Pressure
+2015,US,United States,,US,BRFSS,Prevention,59,Taking medicine for high blood pressure control among adults aged >=18 Years with high blood pressure,%,AgeAdjPrv,Age-adjusted prevalence,57.7,57.1,58.4,,,308745538,,PREVENT,BPMED,,,Taking BP Medication
+2015,US,United States,,US,BRFSS,Prevention,59,Taking medicine for high blood pressure control among adults aged >=18 Years with high blood pressure,%,CrdPrv,Crude prevalence,77.2,76.8,77.7,,,308745538,,PREVENT,BPMED,,,Taking BP Medication
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Cancer (excluding skin cancer) among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,6.0,5.9,6.1,,,308745538,,HLTHOUT,CANCER,,,Cancer (except skin)
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Cancer (excluding skin cancer) among adults aged >=18 Years,%,CrdPrv,Crude prevalence,6.6,6.5,6.8,,,308745538,,HLTHOUT,CANCER,,,Cancer (except skin)
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Current asthma among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,8.7,8.6,8.9,,,308745538,,HLTHOUT,CASTHMA,,,Current Asthma
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Current asthma among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.8,8.6,9.0,,,308745538,,HLTHOUT,CASTHMA,,,Current Asthma
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Coronary heart disease among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,5.6,5.5,5.8,,,308745538,,HLTHOUT,CHD,,,Coronary Heart Disease
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Coronary heart disease among adults aged >=18 Years,%,CrdPrv,Crude prevalence,6.3,6.2,6.5,,,308745538,,HLTHOUT,CHD,,,Coronary Heart Disease
+2015,US,United States,,US,BRFSS,Prevention,59,Visits to doctor for routine checkup within the past Year among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,68.6,68.3,68.9,,,308745538,,PREVENT,CHECKUP,,,Annual Checkup
+2015,US,United States,,US,BRFSS,Prevention,59,Visits to doctor for routine checkup within the past Year among adults aged >=18 Years,%,CrdPrv,Crude prevalence,70.0,69.7,70.3,,,308745538,,PREVENT,CHECKUP,,,Annual Checkup
+2015,US,United States,,US,BRFSS,Prevention,59,Cholesterol screening among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,75.2,74.9,75.5,,,308745538,,PREVENT,CHOLSCREEN,,,Cholesterol Screening
+2015,US,United States,,US,BRFSS,Prevention,59,Cholesterol screening among adults aged >=18 Years,%,CrdPrv,Crude prevalence,77.0,76.7,77.3,,,308745538,,PREVENT,CHOLSCREEN,,,Cholesterol Screening
+2014,US,United States,,US,BRFSS,Prevention,59,"Fecal occult blood test, sigmoidoscopy, or colonoscopy among adults aged 50–75 Years",%,AgeAdjPrv,Age-adjusted prevalence,64.0,63.5,64.5,,,308745538,,PREVENT,COLON_SCREEN,,,Colorectal Cancer Screening
+2014,US,United States,,US,BRFSS,Prevention,59,"Fecal occult blood test, sigmoidoscopy, or colonoscopy among adults aged 50–75 Years",%,CrdPrv,Crude prevalence,63.7,63.3,64.1,,,308745538,,PREVENT,COLON_SCREEN,,,Colorectal Cancer Screening
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Chronic obstructive pulmonary disease among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,5.7,5.6,5.9,,,308745538,,HLTHOUT,COPD,,,COPD
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Chronic obstructive pulmonary disease among adults aged >=18 Years,%,CrdPrv,Crude prevalence,6.3,6.2,6.4,,,308745538,,HLTHOUT,COPD,,,COPD
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Physical health not good for >=14 days among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,11.5,11.3,11.7,,,308745538,,HLTHOUT,PHLTH,,,Physical Health
+2014,US,United States,,US,BRFSS,Prevention,59,"Older adult men aged >=65 Years who are up to date on a core set of clinical preventive services: Flu shot past Year, PPV shot ever, Colorectal cancer screening",%,AgeAdjPrv,Age-adjusted prevalence,32.9,32.1,33.6,,,308745538,,PREVENT,COREM,,,Core preventive services for older men
+2014,US,United States,,US,BRFSS,Prevention,59,"Older adult men aged >=65 Years who are up to date on a core set of clinical preventive services: Flu shot past Year, PPV shot ever, Colorectal cancer screening",%,CrdPrv,Crude prevalence,32.3,31.5,33.0,,,308745538,,PREVENT,COREM,,,Core preventive services for older men
+2014,US,United States,,US,BRFSS,Prevention,59,"Older adult women aged >=65 Years who are up to date on a core set of clinical preventive services: Flu shot past Year, PPV shot ever, Colorectal cancer screening, and Mammogram past 2 Years",%,AgeAdjPrv,Age-adjusted prevalence,30.7,30.2,31.4,,,308745538,,PREVENT,COREW,,,Core preventive services for older women
+2014,US,United States,,US,BRFSS,Prevention,59,"Older adult women aged >=65 Years who are up to date on a core set of clinical preventive services: Flu shot past Year, PPV shot ever, Colorectal cancer screening, and Mammogram past 2 Years",%,CrdPrv,Crude prevalence,30.7,30.1,31.3,,,308745538,,PREVENT,COREW,,,Core preventive services for older women
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Current smoking among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,17.1,16.8,17.3,,,308745538,,UNHBEH,CSMOKING,,,Current Smoking
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Current smoking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.8,16.6,17.0,,,308745538,,UNHBEH,CSMOKING,,,Current Smoking
+2014,US,United States,,US,BRFSS,Prevention,59,Visits to dentist or dental clinic among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,64.1,63.8,64.4,,,308745538,,PREVENT,DENTAL,,,Dental Visit
+2014,US,United States,,US,BRFSS,Prevention,59,Visits to dentist or dental clinic among adults aged >=18 Years,%,CrdPrv,Crude prevalence,64.4,64.1,64.7,,,308745538,,PREVENT,DENTAL,,,Dental Visit
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Diagnosed diabetes among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,9.3,9.2,9.5,,,308745538,,HLTHOUT,DIABETES,,,Diabetes
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Diagnosed diabetes among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.4,10.3,10.6,,,308745538,,HLTHOUT,DIABETES,,,Diabetes
+2015,US,United States,,US,BRFSS,Health Outcomes,59,High cholesterol among adults aged >=18 Years who have been screened in the past 5 Years,%,AgeAdjPrv,Age-adjusted prevalence,31.1,30.8,31.4,,,308745538,,HLTHOUT,HIGHCHOL,,,High Cholesterol
+2015,US,United States,,US,BRFSS,Health Outcomes,59,High cholesterol among adults aged >=18 Years who have been screened in the past 5 Years,%,CrdPrv,Crude prevalence,37.1,36.8,37.4,,,308745538,,HLTHOUT,HIGHCHOL,,,High Cholesterol
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Chronic kidney disease among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,2.5,2.4,2.6,,,308745538,,HLTHOUT,KIDNEY,,,Chronic Kidney Disease
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Chronic kidney disease among adults aged >=18 Years,%,CrdPrv,Crude prevalence,2.7,2.6,2.8,,,308745538,,HLTHOUT,KIDNEY,,,Chronic Kidney Disease
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,No leisure-time physical activity among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,25.5,25.2,25.8,,,308745538,,UNHBEH,LPA,,,Physical Inactivity
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,No leisure-time physical activity among adults aged >=18 Years,%,CrdPrv,Crude prevalence,25.9,25.6,26.1,,,308745538,,UNHBEH,LPA,,,Physical Inactivity
+2014,US,United States,,US,BRFSS,Prevention,59,Mammography use among women aged 50–74 Years,%,AgeAdjPrv,Age-adjusted prevalence,75.5,75.1,75.9,,,308745538,,PREVENT,MAMMOUSE,,,Mammography
+2014,US,United States,,US,BRFSS,Prevention,59,Mammography use among women aged 50–74 Years,%,CrdPrv,Crude prevalence,75.8,75.4,76.2,,,308745538,,PREVENT,MAMMOUSE,,,Mammography
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Mental health not good for >=14 days among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,11.6,11.4,11.8,,,308745538,,HLTHOUT,MHLTH,,,Mental Health
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Mental health not good for >=14 days among adults aged >=18 Years,%,CrdPrv,Crude prevalence,11.4,11.3,11.6,,,308745538,,HLTHOUT,MHLTH,,,Mental Health
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Obesity among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,28.7,28.4,29.0,,,308745538,,UNHBEH,OBESITY,,,Obesity
+2015,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Obesity among adults aged >=18 Years,%,CrdPrv,Crude prevalence,28.8,28.6,29.1,,,308745538,,UNHBEH,OBESITY,,,Obesity
+2014,US,United States,,US,BRFSS,Prevention,59,Papanicolaou smear use among adult women aged 21–65 Years,%,AgeAdjPrv,Age-adjusted prevalence,81.1,80.6,81.6,,,308745538,,PREVENT,PAPTEST,,,Pap Smear Test
+2014,US,United States,,US,BRFSS,Prevention,59,Papanicolaou smear use among adult women aged 21–65 Years,%,CrdPrv,Crude prevalence,81.8,81.3,82.2,,,308745538,,PREVENT,PAPTEST,,,Pap Smear Test
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Physical health not good for >=14 days among adults aged >=18 Years,%,CrdPrv,Crude prevalence,12.0,11.8,12.2,,,308745538,,HLTHOUT,PHLTH,,,Physical Health
+2014,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Sleeping less than 7 hours among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,35.1,34.8,35.5,,,308745538,,UNHBEH,SLEEP,,,Sleep < 7 hours
+2014,US,United States,,US,BRFSS,Unhealthy Behaviors,59,Sleeping less than 7 hours among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.8,34.5,35.1,,,308745538,,UNHBEH,SLEEP,,,Sleep < 7 hours
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Stroke among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,2.8,2.7,2.8,,,308745538,,HLTHOUT,STROKE,,,Stroke
+2015,US,United States,,US,BRFSS,Health Outcomes,59,Stroke among adults aged >=18 Years,%,CrdPrv,Crude prevalence,3.0,3.0,3.1,,,308745538,,HLTHOUT,STROKE,,,Stroke
+2014,US,United States,,US,BRFSS,Health Outcomes,59,All teeth lost among adults aged >=65 Years,%,AgeAdjPrv,Age-adjusted prevalence,15.4,15.0,15.8,,,308745538,,HLTHOUT,TEETHLOST,,,Teeth Loss
+2014,US,United States,,US,BRFSS,Health Outcomes,59,All teeth lost among adults aged >=65 Years,%,CrdPrv,Crude prevalence,14.9,14.6,15.3,,,308745538,,HLTHOUT,TEETHLOST,,,Teeth Loss
+2015,AL,Alabama,Birmingham,City,BRFSS,Prevention,0107000,Current lack of health insurance among adults aged 18–64 Years,%,AgeAdjPrv,Age-adjusted prevalence,19.8,19.5,20.2,,,212237,"(33.5275663773, -86.7988174678)",PREVENT,ACCESS2,0107000,,Health Insurance
+2015,AL,Alabama,Birmingham,City,BRFSS,Prevention,0107000,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,19.6,19.2,20.0,,,212237,"(33.5275663773, -86.7988174678)",PREVENT,ACCESS2,0107000,,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000100,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,23.9,21.2,27.2,,,3042,"(33.5794328326, -86.7228323926)",PREVENT,ACCESS2,0107000,01073000100,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000300,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,28.8,25.4,32.4,,,2735,"(33.5428208686, -86.752433978)",PREVENT,ACCESS2,0107000,01073000300,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000400,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.1,22.6,29.9,,,3338,"(33.5632449633, -86.7640474064)",PREVENT,ACCESS2,0107000,01073000400,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,28.1,24.6,32.0,,,2864,"(33.5442404594, -86.7749130719)",PREVENT,ACCESS2,0107000,01073000500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000700,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,31.8,27.0,36.7,,,2577,"(33.5525406139, -86.8016893706)",PREVENT,ACCESS2,0107000,01073000700,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073000800,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,22.4,19.1,26.1,,,3859,"(33.549697789, -86.8330944744)",PREVENT,ACCESS2,0107000,01073000800,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001100,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,16.8,13.7,20.5,,,5354,"(33.5429143325, -86.8756782852)",PREVENT,ACCESS2,0107000,01073001100,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,24.6,22.2,27.2,,,2876,"(33.5278767706, -86.8604161686)",PREVENT,ACCESS2,0107000,01073001200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001400,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,22.0,18.4,25.7,,,2181,"(33.5261497258, -86.835146606)",PREVENT,ACCESS2,0107000,01073001400,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.3,23.1,29.4,,,3189,"(33.5298727342, -86.8197191685)",PREVENT,ACCESS2,0107000,01073001500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001600,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.8,22.9,30.8,,,3390,"(33.5372993423, -86.8036590482)",PREVENT,ACCESS2,0107000,01073001600,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073001902,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.9,24.1,29.8,,,1894,"(33.5532050997, -86.7429801603)",PREVENT,ACCESS2,0107000,01073001902,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002000,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,24.4,20.8,28.2,,,3885,"(33.5541574106, -86.7167229915)",PREVENT,ACCESS2,0107000,01073002000,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002100,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.5,18.1,25.0,,,3186,"(33.5650015942, -86.7101024766)",PREVENT,ACCESS2,0107000,01073002100,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.7,18.7,25.0,,,2630,"(33.5521301205, -86.7276759508)",PREVENT,ACCESS2,0107000,01073002200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002303,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,27.0,23.7,30.7,,,2936,"(33.5383153207, -86.7270445428)",PREVENT,ACCESS2,0107000,01073002303,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002305,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,9.9,8.2,12.1,,,2952,"(33.5333415976, -86.7479566084)",PREVENT,ACCESS2,0107000,01073002305,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002306,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,9.5,8.1,11.2,,,3257,"(33.5213873564, -86.7490031289)",PREVENT,ACCESS2,0107000,01073002306,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002400,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,25.1,22.4,27.8,,,3629,"(33.5260748309, -86.7830315488)",PREVENT,ACCESS2,0107000,01073002400,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002700,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,20.7,16.8,24.9,,,3992,"(33.5176008419, -86.8106887452)",PREVENT,ACCESS2,0107000,01073002700,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073002900,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,25.7,21.5,29.9,,,2064,"(33.5132498864, -86.83004749)",PREVENT,ACCESS2,0107000,01073002900,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003001,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.4,15.3,22.4,,,3779,"(33.5125158094, -86.8577164946)",PREVENT,ACCESS2,0107000,01073003001,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003002,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.3,21.7,31.3,,,2203,"(33.512258109, -86.8441439907)",PREVENT,ACCESS2,0107000,01073003002,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003100,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,23.2,20.2,26.7,,,3637,"(33.5059655756, -86.8745506086)",PREVENT,ACCESS2,0107000,01073003100,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,28.7,25.0,32.8,,,931,"(33.5094018502, -86.8859081961)",PREVENT,ACCESS2,0107000,01073003200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003300,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,22.2,19.1,25.7,,,947,"(33.5171261108, -86.8913819749)",PREVENT,ACCESS2,0107000,01073003300,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003400,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.8,23.0,30.9,,,2477,"(33.5052229234, -86.9014844656)",PREVENT,ACCESS2,0107000,01073003400,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,22.3,19.1,25.7,,,2780,"(33.5065714011, -86.9195910063)",PREVENT,ACCESS2,0107000,01073003500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003600,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,17.0,14.5,19.6,,,4683,"(33.48476397, -86.8981392947)",PREVENT,ACCESS2,0107000,01073003600,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003700,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.6,19.2,23.9,,,5063,"(33.4969018589, -86.8907729426)",PREVENT,ACCESS2,0107000,01073003700,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003802,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,19.0,16.7,21.6,,,5409,"(33.4785707794, -86.890000907)",PREVENT,ACCESS2,0107000,01073003802,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003803,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,20.9,17.7,24.2,,,4199,"(33.485945214, -86.869692186)",PREVENT,ACCESS2,0107000,01073003803,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073003900,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,29.9,26.9,33.0,,,1783,"(33.4989959327, -86.8647600038)",PREVENT,ACCESS2,0107000,01073003900,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004000,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,25.8,21.4,30.3,,,3772,"(33.4953246015, -86.8516232073)",PREVENT,ACCESS2,0107000,01073004000,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,23.4,20.8,26.1,,,2341,"(33.5007439361, -86.8270720379)",PREVENT,ACCESS2,0107000,01073004200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,22.7,19.3,27.4,,,5003,"(33.5041857556, -86.8033798346)",PREVENT,ACCESS2,0107000,01073004500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004701,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,10.6,8.6,13.4,,,3480,"(33.5075242148, -86.7836675838)",PREVENT,ACCESS2,0107000,01073004701,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004702,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,7.1,6.1,8.7,,,2944,"(33.5119902661, -86.7694550989)",PREVENT,ACCESS2,0107000,01073004702,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004800,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,8.7,7.3,10.3,,,1861,"(33.4989064008, -86.78269914)",PREVENT,ACCESS2,0107000,01073004800,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004901,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,11.0,9.1,13.2,,,1167,"(33.4971595645, -86.7917440668)",PREVENT,ACCESS2,0107000,01073004901,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073004902,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,15.2,12.5,18.5,,,3146,"(33.4935824043, -86.8009294603)",PREVENT,ACCESS2,0107000,01073004902,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005000,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,17.9,15.4,20.7,,,3482,"(33.4866689795, -86.8173262831)",PREVENT,ACCESS2,0107000,01073005000,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005101,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,30.5,26.5,34.4,,,1507,"(33.4945909008, -86.834763936)",PREVENT,ACCESS2,0107000,01073005101,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005103,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,17.5,14.4,20.7,,,2587,"(33.485714885, -86.8327817467)",PREVENT,ACCESS2,0107000,01073005103,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005104,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,24.9,21.3,28.9,,,2881,"(33.4749941816, -86.8335421747)",PREVENT,ACCESS2,0107000,01073005104,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,20.2,16.4,24.2,,,3740,"(33.4806708775, -86.8508671514)",PREVENT,ACCESS2,0107000,01073005200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005302,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,12.8,10.9,15.1,,,3463,"(33.5766456449, -86.6965590316)",PREVENT,ACCESS2,0107000,01073005302,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,26.5,22.9,30.7,,,1824,"(33.5670293898, -86.8005567213)",PREVENT,ACCESS2,0107000,01073005500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005600,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,12.3,10.0,15.0,,,4367,"(33.5200981234, -86.7272063198)",PREVENT,ACCESS2,0107000,01073005600,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005701,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.9,15.7,22.3,,,2372,"(33.4629543329, -86.8898406628)",PREVENT,ACCESS2,0107000,01073005701,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005702,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,19.8,16.4,23.3,,,3413,"(33.4698691385, -86.874290602)",PREVENT,ACCESS2,0107000,01073005702,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005800,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,19.3,16.4,22.3,,,4216,"(33.479062325, -86.8128063089)",PREVENT,ACCESS2,0107000,01073005800,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005903,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,15.9,13.9,18.0,,,4933,"(33.597162309, -86.6766736351)",PREVENT,ACCESS2,0107000,01073005903,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005905,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.4,18.2,24.7,,,5039,"(33.603988456, -86.7008123418)",PREVENT,ACCESS2,0107000,01073005905,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005907,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,12.5,10.3,14.9,,,1975,"(33.6142861501, -86.6691996417)",PREVENT,ACCESS2,0107000,01073005907,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005908,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,20.9,18.1,23.7,,,1621,"(33.6182924432, -86.6801483084)",PREVENT,ACCESS2,0107000,01073005908,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005909,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,14.4,11.8,17.5,,,2524,"(33.611811773, -86.7214221514)",PREVENT,ACCESS2,0107000,01073005909,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073005910,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,14.7,12.6,17.1,,,4612,"(33.6299017499, -86.7194311229)",PREVENT,ACCESS2,0107000,01073005910,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.8,18.2,25.9,,,114,"(33.4363786806, -86.9128923072)",PREVENT,ACCESS2,0107000,01073010500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010701,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.5,14.4,23.6,,,74,"(33.473886155, -86.8146487762)",PREVENT,ACCESS2,0107000,01073010701,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010706,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,13.5,11.0,16.3,,,1528,"(33.4443709442, -86.8405352645)",PREVENT,ACCESS2,0107000,01073010706,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010801,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,5.2,4.4,6.3,,,168,"(33.514097853, -86.7466971362)",PREVENT,ACCESS2,0107000,01073010801,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010802,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,5.0,3.9,6.5,,,172,"(33.4885493477, -86.780843024)",PREVENT,ACCESS2,0107000,01073010802,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010803,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,11.3,9.0,14.0,,,514,"(33.5229093892, -86.7102618642)",PREVENT,ACCESS2,0107000,01073010803,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073010805,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,7.3,5.5,9.9,,,86,"(33.4952792472, -86.6987184974)",PREVENT,ACCESS2,0107000,01073010805,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011104,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,13.6,11.4,16.1,,,1688,"(33.6159436433, -86.6557892507)",PREVENT,ACCESS2,0107000,01073011104,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011107,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,42,"(33.5804845249, -86.6301110961)",PREVENT,ACCESS2,0107000,01073011107,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011108,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,9,"(33.6050742596, -86.6316729386)",PREVENT,ACCESS2,0107000,01073011108,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011207,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,17.7,15.1,20.6,,,815,"(33.6718848706, -86.6772510465)",PREVENT,ACCESS2,0107000,01073011207,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011209,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,20.2,17.2,24.2,,,1062,"(33.6557189992, -86.7050698349)",PREVENT,ACCESS2,0107000,01073011209,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011210,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.5,17.0,26.7,,,1385,"(33.6641893755, -86.6956170686)",PREVENT,ACCESS2,0107000,01073011210,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011803,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.1,15.4,21.3,,,928,"(33.6252575173, -86.6998610409)",PREVENT,ACCESS2,0107000,01073011803,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011804,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.3,15.2,21.9,,,1157,"(33.6474916175, -86.7042974424)",PREVENT,ACCESS2,0107000,01073011804,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011901,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,6,"(33.6355414646, -86.736946691)",PREVENT,ACCESS2,0107000,01073011901,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073011904,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,14.4,12.1,16.8,,,1915,"(33.593140185, -86.7357930541)",PREVENT,ACCESS2,0107000,01073011904,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012001,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,14.5,12.5,16.7,,,304,"(33.5919486112, -86.864384068)",PREVENT,ACCESS2,0107000,01073012001,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012002,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,44,"(33.5859234197, -86.8357007188)",PREVENT,ACCESS2,0107000,01073012002,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012200,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,23,"(33.5967441904, -87.0879396857)",PREVENT,ACCESS2,0107000,01073012200,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012302,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,12.7,10.6,15.2,,,144,"(33.5542816352, -87.0544691416)",PREVENT,ACCESS2,0107000,01073012302,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012305,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,12.5,10.2,15.1,,,403,"(33.4695358064, -86.96831739)",PREVENT,ACCESS2,0107000,01073012305,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012401,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,11.4,8.9,14.2,,,1066,"(33.5571951048, -86.8777935049)",PREVENT,ACCESS2,0107000,01073012401,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012402,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,16.7,14.6,19.0,,,418,"(33.549984172, -86.8994543327)",PREVENT,ACCESS2,0107000,01073012402,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012500,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.0,17.6,24.4,,,410,"(33.529160486, -86.9346476445)",PREVENT,ACCESS2,0107000,01073012500,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012602,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,17.5,15.7,19.6,,,371,"(33.570164674, -86.666430582)",PREVENT,ACCESS2,0107000,01073012602,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012701,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,44,"(33.5484078071, -86.6323773455)",PREVENT,ACCESS2,0107000,01073012701,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012703,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,11.3,8.6,14.9,,,498,"(33.4681180943, -86.6671888213)",PREVENT,ACCESS2,0107000,01073012703,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012704,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,8.9,6.8,11.5,,,113,"(33.5034195908, -86.6180983403)",PREVENT,ACCESS2,0107000,01073012704,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012803,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,8.6,6.7,11.2,,,1261,"(33.4439425865, -86.7212936938)",PREVENT,ACCESS2,0107000,01073012803,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073012910,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,9,"(33.4345805042, -86.7263292059)",PREVENT,ACCESS2,0107000,01073012910,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073013002,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.3,17.1,25.6,,,1514,"(33.46604181, -86.8567287797)",PREVENT,ACCESS2,0107000,01073013002,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073013100,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,21.8,18.8,24.9,,,4424,"(33.44880214, -86.8878401579)",PREVENT,ACCESS2,0107000,01073013100,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073013300,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,23.5,19.5,27.5,,,1782,"(33.4396443569, -86.9248768665)",PREVENT,ACCESS2,0107000,01073013300,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073013901,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,18.0,14.8,21.7,,,952,"(33.4729384906, -86.9547337648)",PREVENT,ACCESS2,0107000,01073013901,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073014302,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,10.0,8.3,12.1,,,2778,"(33.4244658829, -86.8841474217)",PREVENT,ACCESS2,0107000,01073014302,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01073014413,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,7.6,5.9,9.8,,,397,"(33.4226593117, -86.8508620751)",PREVENT,ACCESS2,0107000,01073014413,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01117030213,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,9.3,7.7,11.4,,,644,"(33.4395975193, -86.6735959359)",PREVENT,ACCESS2,0107000,01117030213,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01117030217,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,16,"(33.4556995763, -86.6520208639)",PREVENT,ACCESS2,0107000,01117030217,Health Insurance
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Prevention,0107000-01117030303,Current lack of health insurance among adults aged 18–64 Years,%,CrdPrv,Crude prevalence,9.9,8.1,12.0,,,968,"(33.4258661239, -86.713819356)",PREVENT,ACCESS2,0107000,01117030303,Health Insurance
+2015,AL,Alabama,Birmingham,City,BRFSS,Health Outcomes,0107000,Arthritis among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,31.0,30.8,31.1,,,212237,"(33.5275663773, -86.7988174678)",HLTHOUT,ARTHRITIS,0107000,,Arthritis
+2015,AL,Alabama,Birmingham,City,BRFSS,Health Outcomes,0107000,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,30.9,30.8,31.1,,,212237,"(33.5275663773, -86.7988174678)",HLTHOUT,ARTHRITIS,0107000,,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000100,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.5,31.5,33.6,,,3042,"(33.5794328326, -86.7228323926)",HLTHOUT,ARTHRITIS,0107000,01073000100,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000300,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.3,30.0,32.4,,,2735,"(33.5428208686, -86.752433978)",HLTHOUT,ARTHRITIS,0107000,01073000300,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000400,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.6,33.2,35.9,,,3338,"(33.5632449633, -86.7640474064)",HLTHOUT,ARTHRITIS,0107000,01073000400,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.8,36.3,39.2,,,2864,"(33.5442404594, -86.7749130719)",HLTHOUT,ARTHRITIS,0107000,01073000500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000700,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,38.5,37.1,39.9,,,2577,"(33.5525406139, -86.8016893706)",HLTHOUT,ARTHRITIS,0107000,01073000700,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073000800,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,38.0,36.5,39.3,,,3859,"(33.549697789, -86.8330944744)",HLTHOUT,ARTHRITIS,0107000,01073000800,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001100,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.0,32.4,35.5,,,5354,"(33.5429143325, -86.8756782852)",HLTHOUT,ARTHRITIS,0107000,01073001100,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.5,35.4,37.6,,,2876,"(33.5278767706, -86.8604161686)",HLTHOUT,ARTHRITIS,0107000,01073001200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001400,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.1,35.6,38.6,,,2181,"(33.5261497258, -86.835146606)",HLTHOUT,ARTHRITIS,0107000,01073001400,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,35.2,34.0,36.4,,,3189,"(33.5298727342, -86.8197191685)",HLTHOUT,ARTHRITIS,0107000,01073001500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001600,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,39.9,38.4,41.3,,,3390,"(33.5372993423, -86.8036590482)",HLTHOUT,ARTHRITIS,0107000,01073001600,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073001902,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,35.1,34.0,36.1,,,1894,"(33.5532050997, -86.7429801603)",HLTHOUT,ARTHRITIS,0107000,01073001902,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002000,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.3,34.9,37.7,,,3885,"(33.5541574106, -86.7167229915)",HLTHOUT,ARTHRITIS,0107000,01073002000,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002100,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,33.1,31.8,34.3,,,3186,"(33.5650015942, -86.7101024766)",HLTHOUT,ARTHRITIS,0107000,01073002100,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.4,31.2,33.6,,,2630,"(33.5521301205, -86.7276759508)",HLTHOUT,ARTHRITIS,0107000,01073002200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002303,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,33.4,32.2,34.6,,,2936,"(33.5383153207, -86.7270445428)",HLTHOUT,ARTHRITIS,0107000,01073002303,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002305,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,22.3,21.3,23.3,,,2952,"(33.5333415976, -86.7479566084)",HLTHOUT,ARTHRITIS,0107000,01073002305,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002306,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,26.9,25.9,27.9,,,3257,"(33.5213873564, -86.7490031289)",HLTHOUT,ARTHRITIS,0107000,01073002306,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002400,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.0,30.0,31.9,,,3629,"(33.5260748309, -86.7830315488)",HLTHOUT,ARTHRITIS,0107000,01073002400,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002700,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,27.2,25.9,28.5,,,3992,"(33.5176008419, -86.8106887452)",HLTHOUT,ARTHRITIS,0107000,01073002700,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073002900,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,38.7,37.0,40.3,,,2064,"(33.5132498864, -86.83004749)",HLTHOUT,ARTHRITIS,0107000,01073002900,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003001,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,24.3,23.6,25.0,,,3779,"(33.5125158094, -86.8577164946)",HLTHOUT,ARTHRITIS,0107000,01073003001,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003002,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,40.9,39.1,42.7,,,2203,"(33.512258109, -86.8441439907)",HLTHOUT,ARTHRITIS,0107000,01073003002,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003100,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.1,32.7,35.4,,,3637,"(33.5059655756, -86.8745506086)",HLTHOUT,ARTHRITIS,0107000,01073003100,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,39.0,37.6,40.3,,,931,"(33.5094018502, -86.8859081961)",HLTHOUT,ARTHRITIS,0107000,01073003200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003300,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,38.6,37.3,39.9,,,947,"(33.5171261108, -86.8913819749)",HLTHOUT,ARTHRITIS,0107000,01073003300,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003400,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.3,34.9,37.7,,,2477,"(33.5052229234, -86.9014844656)",HLTHOUT,ARTHRITIS,0107000,01073003400,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.8,31.5,34.0,,,2780,"(33.5065714011, -86.9195910063)",HLTHOUT,ARTHRITIS,0107000,01073003500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003600,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,33.4,32.1,34.7,,,4683,"(33.48476397, -86.8981392947)",HLTHOUT,ARTHRITIS,0107000,01073003600,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003700,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.2,30.1,32.1,,,5063,"(33.4969018589, -86.8907729426)",HLTHOUT,ARTHRITIS,0107000,01073003700,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003802,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.1,31.0,33.2,,,5409,"(33.4785707794, -86.890000907)",HLTHOUT,ARTHRITIS,0107000,01073003802,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003803,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.0,34.5,37.3,,,4199,"(33.485945214, -86.869692186)",HLTHOUT,ARTHRITIS,0107000,01073003803,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073003900,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.9,31.8,33.9,,,1783,"(33.4989959327, -86.8647600038)",HLTHOUT,ARTHRITIS,0107000,01073003900,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004000,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.8,36.4,39.3,,,3772,"(33.4953246015, -86.8516232073)",HLTHOUT,ARTHRITIS,0107000,01073004000,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.6,35.5,37.7,,,2341,"(33.5007439361, -86.8270720379)",HLTHOUT,ARTHRITIS,0107000,01073004200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,15.1,14.4,15.8,,,5003,"(33.5041857556, -86.8033798346)",HLTHOUT,ARTHRITIS,0107000,01073004500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004701,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,23.7,22.5,24.9,,,3480,"(33.5075242148, -86.7836675838)",HLTHOUT,ARTHRITIS,0107000,01073004701,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004702,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,27.0,25.9,28.1,,,2944,"(33.5119902661, -86.7694550989)",HLTHOUT,ARTHRITIS,0107000,01073004702,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004800,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,30.1,29.0,31.2,,,1861,"(33.4989064008, -86.78269914)",HLTHOUT,ARTHRITIS,0107000,01073004800,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004901,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,22.1,21.2,23.0,,,1167,"(33.4971595645, -86.7917440668)",HLTHOUT,ARTHRITIS,0107000,01073004901,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073004902,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,18.4,17.5,19.4,,,3146,"(33.4935824043, -86.8009294603)",HLTHOUT,ARTHRITIS,0107000,01073004902,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005000,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,19.6,18.7,20.4,,,3482,"(33.4866689795, -86.8173262831)",HLTHOUT,ARTHRITIS,0107000,01073005000,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005101,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.6,35.3,37.8,,,1507,"(33.4945909008, -86.834763936)",HLTHOUT,ARTHRITIS,0107000,01073005101,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005103,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,40.1,38.6,41.7,,,2587,"(33.485714885, -86.8327817467)",HLTHOUT,ARTHRITIS,0107000,01073005103,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005104,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,18.9,18.0,19.8,,,2881,"(33.4749941816, -86.8335421747)",HLTHOUT,ARTHRITIS,0107000,01073005104,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.9,36.1,39.7,,,3740,"(33.4806708775, -86.8508671514)",HLTHOUT,ARTHRITIS,0107000,01073005200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005302,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,33.2,31.8,34.5,,,3463,"(33.5766456449, -86.6965590316)",HLTHOUT,ARTHRITIS,0107000,01073005302,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,36.7,35.4,37.9,,,1824,"(33.5670293898, -86.8005567213)",HLTHOUT,ARTHRITIS,0107000,01073005500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005600,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.8,30.3,33.2,,,4367,"(33.5200981234, -86.7272063198)",HLTHOUT,ARTHRITIS,0107000,01073005600,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005701,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,35.8,34.1,37.3,,,2372,"(33.4629543329, -86.8898406628)",HLTHOUT,ARTHRITIS,0107000,01073005701,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005702,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.8,36.0,39.3,,,3413,"(33.4698691385, -86.874290602)",HLTHOUT,ARTHRITIS,0107000,01073005702,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005800,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,18.4,17.7,19.1,,,4216,"(33.479062325, -86.8128063089)",HLTHOUT,ARTHRITIS,0107000,01073005800,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005903,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.2,31.1,33.3,,,4933,"(33.597162309, -86.6766736351)",HLTHOUT,ARTHRITIS,0107000,01073005903,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005905,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.2,32.9,35.4,,,5039,"(33.603988456, -86.7008123418)",HLTHOUT,ARTHRITIS,0107000,01073005905,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005907,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,30.1,28.9,31.3,,,1975,"(33.6142861501, -86.6691996417)",HLTHOUT,ARTHRITIS,0107000,01073005907,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005908,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.5,31.5,33.5,,,1621,"(33.6182924432, -86.6801483084)",HLTHOUT,ARTHRITIS,0107000,01073005908,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005909,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,28.0,26.5,29.4,,,2524,"(33.611811773, -86.7214221514)",HLTHOUT,ARTHRITIS,0107000,01073005909,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073005910,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,28.0,26.8,29.1,,,4612,"(33.6299017499, -86.7194311229)",HLTHOUT,ARTHRITIS,0107000,01073005910,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,41.3,39.4,43.1,,,114,"(33.4363786806, -86.9128923072)",HLTHOUT,ARTHRITIS,0107000,01073010500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010701,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,15.1,14.0,16.3,,,74,"(33.473886155, -86.8146487762)",HLTHOUT,ARTHRITIS,0107000,01073010701,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010706,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,15.3,14.6,16.0,,,1528,"(33.4443709442, -86.8405352645)",HLTHOUT,ARTHRITIS,0107000,01073010706,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010801,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,24.9,23.9,26.2,,,168,"(33.514097853, -86.7466971362)",HLTHOUT,ARTHRITIS,0107000,01073010801,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010802,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,33.2,31.7,35.0,,,172,"(33.4885493477, -86.780843024)",HLTHOUT,ARTHRITIS,0107000,01073010802,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010803,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,23.8,22.6,25.0,,,514,"(33.5229093892, -86.7102618642)",HLTHOUT,ARTHRITIS,0107000,01073010803,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073010805,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,32.0,30.1,34.0,,,86,"(33.4952792472, -86.6987184974)",HLTHOUT,ARTHRITIS,0107000,01073010805,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011104,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,29.8,28.5,31.1,,,1688,"(33.6159436433, -86.6557892507)",HLTHOUT,ARTHRITIS,0107000,01073011104,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011107,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,42,"(33.5804845249, -86.6301110961)",HLTHOUT,ARTHRITIS,0107000,01073011107,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011108,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,9,"(33.6050742596, -86.6316729386)",HLTHOUT,ARTHRITIS,0107000,01073011108,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011207,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,25.3,24.3,26.2,,,815,"(33.6718848706, -86.6772510465)",HLTHOUT,ARTHRITIS,0107000,01073011207,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011209,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,27.2,26.1,28.3,,,1062,"(33.6557189992, -86.7050698349)",HLTHOUT,ARTHRITIS,0107000,01073011209,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011210,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,23.8,22.3,25.3,,,1385,"(33.6641893755, -86.6956170686)",HLTHOUT,ARTHRITIS,0107000,01073011210,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011803,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,28.2,27.0,29.4,,,928,"(33.6252575173, -86.6998610409)",HLTHOUT,ARTHRITIS,0107000,01073011803,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011804,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,25.8,24.6,27.0,,,1157,"(33.6474916175, -86.7042974424)",HLTHOUT,ARTHRITIS,0107000,01073011804,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011901,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,6,"(33.6355414646, -86.736946691)",HLTHOUT,ARTHRITIS,0107000,01073011901,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073011904,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,34.8,33.3,36.3,,,1915,"(33.593140185, -86.7357930541)",HLTHOUT,ARTHRITIS,0107000,01073011904,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012001,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,44.8,42.9,46.6,,,304,"(33.5919486112, -86.864384068)",HLTHOUT,ARTHRITIS,0107000,01073012001,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012002,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,44,"(33.5859234197, -86.8357007188)",HLTHOUT,ARTHRITIS,0107000,01073012002,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012200,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,23,"(33.5967441904, -87.0879396857)",HLTHOUT,ARTHRITIS,0107000,01073012200,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012302,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,26.3,25.2,27.5,,,144,"(33.5542816352, -87.0544691416)",HLTHOUT,ARTHRITIS,0107000,01073012302,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012305,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,30.5,28.6,32.2,,,403,"(33.4695358064, -86.96831739)",HLTHOUT,ARTHRITIS,0107000,01073012305,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012401,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,27.4,25.6,29.4,,,1066,"(33.5571951048, -86.8777935049)",HLTHOUT,ARTHRITIS,0107000,01073012401,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012402,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.9,30.8,33.0,,,418,"(33.549984172, -86.8994543327)",HLTHOUT,ARTHRITIS,0107000,01073012402,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012500,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,37.9,36.5,39.4,,,410,"(33.529160486, -86.9346476445)",HLTHOUT,ARTHRITIS,0107000,01073012500,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012602,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,35.4,34.5,36.3,,,371,"(33.570164674, -86.666430582)",HLTHOUT,ARTHRITIS,0107000,01073012602,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012701,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,44,"(33.5484078071, -86.6323773455)",HLTHOUT,ARTHRITIS,0107000,01073012701,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012703,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,14.8,13.8,15.9,,,498,"(33.4681180943, -86.6671888213)",HLTHOUT,ARTHRITIS,0107000,01073012703,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012704,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,27.0,25.2,29.0,,,113,"(33.5034195908, -86.6180983403)",HLTHOUT,ARTHRITIS,0107000,01073012704,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012803,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,11.9,11.1,12.7,,,1261,"(33.4439425865, -86.7212936938)",HLTHOUT,ARTHRITIS,0107000,01073012803,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073012910,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,9,"(33.4345805042, -86.7263292059)",HLTHOUT,ARTHRITIS,0107000,01073012910,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073013002,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,41.0,39.1,42.9,,,1514,"(33.46604181, -86.8567287797)",HLTHOUT,ARTHRITIS,0107000,01073013002,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073013100,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,38.7,37.5,39.9,,,4424,"(33.44880214, -86.8878401579)",HLTHOUT,ARTHRITIS,0107000,01073013100,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073013300,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,39.2,37.6,40.7,,,1782,"(33.4396443569, -86.9248768665)",HLTHOUT,ARTHRITIS,0107000,01073013300,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073013901,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,35.0,33.4,36.6,,,952,"(33.4729384906, -86.9547337648)",HLTHOUT,ARTHRITIS,0107000,01073013901,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073014302,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,19.0,18.1,19.8,,,2778,"(33.4244658829, -86.8841474217)",HLTHOUT,ARTHRITIS,0107000,01073014302,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01073014413,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,17.7,16.9,18.6,,,397,"(33.4226593117, -86.8508620751)",HLTHOUT,ARTHRITIS,0107000,01073014413,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01117030213,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,20.3,19.1,21.5,,,644,"(33.4395975193, -86.6735959359)",HLTHOUT,ARTHRITIS,0107000,01117030213,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01117030217,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,,,,*,Estimates suppressed for population less than 50,16,"(33.4556995763, -86.6520208639)",HLTHOUT,ARTHRITIS,0107000,01117030217,Arthritis
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Health Outcomes,0107000-01117030303,Arthritis among adults aged >=18 Years,%,CrdPrv,Crude prevalence,12.8,12.1,13.6,,,968,"(33.4258661239, -86.713819356)",HLTHOUT,ARTHRITIS,0107000,01117030303,Arthritis
+2015,AL,Alabama,Birmingham,City,BRFSS,Unhealthy Behaviors,0107000,Binge drinking among adults aged >=18 Years,%,AgeAdjPrv,Age-adjusted prevalence,11.2,11.1,11.3,,,212237,"(33.5275663773, -86.7988174678)",UNHBEH,BINGE,0107000,,Binge Drinking
+2015,AL,Alabama,Birmingham,City,BRFSS,Unhealthy Behaviors,0107000,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,11.3,11.3,11.4,,,212237,"(33.5275663773, -86.7988174678)",UNHBEH,BINGE,0107000,,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000100,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.1,9.7,10.5,,,3042,"(33.5794328326, -86.7228323926)",UNHBEH,BINGE,0107000,01073000100,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000300,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.8,10.3,11.2,,,2735,"(33.5428208686, -86.752433978)",UNHBEH,BINGE,0107000,01073000300,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000400,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.5,9.0,10.0,,,3338,"(33.5632449633, -86.7640474064)",UNHBEH,BINGE,0107000,01073000400,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000500,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.6,8.1,9.0,,,2864,"(33.5442404594, -86.7749130719)",UNHBEH,BINGE,0107000,01073000500,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000700,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,7.4,6.9,7.9,,,2577,"(33.5525406139, -86.8016893706)",UNHBEH,BINGE,0107000,01073000700,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073000800,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.9,8.5,9.3,,,3859,"(33.549697789, -86.8330944744)",UNHBEH,BINGE,0107000,01073000800,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001100,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.6,9.2,10.1,,,5354,"(33.5429143325, -86.8756782852)",UNHBEH,BINGE,0107000,01073001100,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001200,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.4,9.1,9.7,,,2876,"(33.5278767706, -86.8604161686)",UNHBEH,BINGE,0107000,01073001200,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001400,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.9,8.5,9.3,,,2181,"(33.5261497258, -86.835146606)",UNHBEH,BINGE,0107000,01073001400,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001500,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.4,9.1,9.8,,,3189,"(33.5298727342, -86.8197191685)",UNHBEH,BINGE,0107000,01073001500,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001600,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.2,7.7,8.6,,,3390,"(33.5372993423, -86.8036590482)",UNHBEH,BINGE,0107000,01073001600,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073001902,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.3,8.9,9.8,,,1894,"(33.5532050997, -86.7429801603)",UNHBEH,BINGE,0107000,01073001902,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002000,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.1,8.7,9.6,,,3885,"(33.5541574106, -86.7167229915)",UNHBEH,BINGE,0107000,01073002000,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002100,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.0,9.6,10.6,,,3186,"(33.5650015942, -86.7101024766)",UNHBEH,BINGE,0107000,01073002100,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002200,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.1,9.7,10.6,,,2630,"(33.5521301205, -86.7276759508)",UNHBEH,BINGE,0107000,01073002200,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002303,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.9,8.5,9.4,,,2936,"(33.5383153207, -86.7270445428)",UNHBEH,BINGE,0107000,01073002303,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002305,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.3,15.8,16.7,,,2952,"(33.5333415976, -86.7479566084)",UNHBEH,BINGE,0107000,01073002305,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002306,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,15.6,15.2,16.1,,,3257,"(33.5213873564, -86.7490031289)",UNHBEH,BINGE,0107000,01073002306,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002400,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,11.1,10.8,11.5,,,3629,"(33.5260748309, -86.7830315488)",UNHBEH,BINGE,0107000,01073002400,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002700,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,13.6,13.0,14.2,,,3992,"(33.5176008419, -86.8106887452)",UNHBEH,BINGE,0107000,01073002700,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002900,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.3,7.8,8.8,,,2064,"(33.5132498864, -86.83004749)",UNHBEH,BINGE,0107000,01073002900,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003001,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,14.3,13.3,15.3,,,3779,"(33.5125158094, -86.8577164946)",UNHBEH,BINGE,0107000,01073003001,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003002,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,7.4,7.0,7.8,,,2203,"(33.512258109, -86.8441439907)",UNHBEH,BINGE,0107000,01073003002,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003100,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.5,9.1,10.0,,,3637,"(33.5059655756, -86.8745506086)",UNHBEH,BINGE,0107000,01073003100,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003200,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,7.6,7.3,8.0,,,931,"(33.5094018502, -86.8859081961)",UNHBEH,BINGE,0107000,01073003200,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003300,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.4,8.0,8.9,,,947,"(33.5171261108, -86.8913819749)",UNHBEH,BINGE,0107000,01073003300,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073002305,Obesity among adults aged >=18 Years,%,CrdPrv,Crude prevalence,31.7,30.4,33.0,,,2952,"(33.5333415976, -86.7479566084)",UNHBEH,OBESITY,0107000,01073002305,Obesity
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003400,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.8,8.3,9.3,,,2477,"(33.5052229234, -86.9014844656)",UNHBEH,BINGE,0107000,01073003400,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003500,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.0,9.5,10.5,,,2780,"(33.5065714011, -86.9195910063)",UNHBEH,BINGE,0107000,01073003500,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003600,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.9,9.4,10.3,,,4683,"(33.48476397, -86.8981392947)",UNHBEH,BINGE,0107000,01073003600,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003700,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.3,9.9,10.7,,,5063,"(33.4969018589, -86.8907729426)",UNHBEH,BINGE,0107000,01073003700,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003802,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,10.3,9.9,10.7,,,5409,"(33.4785707794, -86.890000907)",UNHBEH,BINGE,0107000,01073003802,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003803,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.2,8.7,9.7,,,4199,"(33.485945214, -86.869692186)",UNHBEH,BINGE,0107000,01073003803,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073003900,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.5,9.1,9.8,,,1783,"(33.4989959327, -86.8647600038)",UNHBEH,BINGE,0107000,01073003900,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004000,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,8.5,8.0,9.0,,,3772,"(33.4953246015, -86.8516232073)",UNHBEH,BINGE,0107000,01073004000,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004200,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,9.1,8.8,9.4,,,2341,"(33.5007439361, -86.8270720379)",UNHBEH,BINGE,0107000,01073004200,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004500,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,13.8,12.9,14.8,,,5003,"(33.5041857556, -86.8033798346)",UNHBEH,BINGE,0107000,01073004500,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004701,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.4,15.7,17.2,,,3480,"(33.5075242148, -86.7836675838)",UNHBEH,BINGE,0107000,01073004701,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004702,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,15.3,14.9,15.7,,,2944,"(33.5119902661, -86.7694550989)",UNHBEH,BINGE,0107000,01073004702,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004800,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,14.1,13.7,14.5,,,1861,"(33.4989064008, -86.78269914)",UNHBEH,BINGE,0107000,01073004800,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004901,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,17.0,16.4,17.7,,,1167,"(33.4971595645, -86.7917440668)",UNHBEH,BINGE,0107000,01073004901,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073004902,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.3,15.6,17.1,,,3146,"(33.4935824043, -86.8009294603)",UNHBEH,BINGE,0107000,01073004902,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073005000,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,16.1,15.6,16.7,,,3482,"(33.4866689795, -86.8173262831)",UNHBEH,BINGE,0107000,01073005000,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073005101,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,7.9,7.5,8.3,,,1507,"(33.4945909008, -86.834763936)",UNHBEH,BINGE,0107000,01073005101,Binge Drinking
+2015,AL,Alabama,Birmingham,Census Tract,BRFSS,Unhealthy Behaviors,0107000-01073005103,Binge drinking among adults aged >=18 Years,%,CrdPrv,Crude prevalence,7.7,7.4,8.0,,,2587,"(33.485714885, -86.8327817467)",UNHBEH,BINGE,0107000,01073005103,Binge Drinking

+ 5154 - 0
sample/sample_json.json

@@ -0,0 +1,5154 @@
+{
+    "meta": {
+        "limit": 100,
+        "offset": 0,
+        "total_count": 100
+    },
+    "objects": [
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Wisconsin",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "709 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.baldwin.senate.gov/feedback",
+                "fax": "202-225-6942",
+                "office": "709 Hart Senate Office Building",
+                "rss_url": "http://www.baldwin.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "B001230",
+                "birthday": "1962-02-11",
+                "cspanid": 57884,
+                "firstname": "Tammy",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Baldwin",
+                "link": "https://www.govtrack.us/congress/members/tammy_baldwin/400013",
+                "middlename": "",
+                "name": "Sen. Tammy Baldwin [D-WI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00004367",
+                "pvsid": "3470",
+                "sortname": "Baldwin, Tammy (Sen.) [D-WI]",
+                "twitterid": "SenatorBaldwin",
+                "youtubeid": "witammybaldwin"
+            },
+            "phone": "202-224-5653",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "WI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.baldwin.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Ohio",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "713 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.brown.senate.gov/contact/",
+                "fax": "202-228-6321",
+                "office": "713 Hart Senate Office Building",
+                "rss_url": "http://www.brown.senate.gov/rss/feeds/?type=all&amp;"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "B000944",
+                "birthday": "1952-11-09",
+                "cspanid": 5051,
+                "firstname": "Sherrod",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Brown",
+                "link": "https://www.govtrack.us/congress/members/sherrod_brown/400050",
+                "middlename": "",
+                "name": "Sen. Sherrod Brown [D-OH]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00003535",
+                "pvsid": "27018",
+                "sortname": "Brown, Sherrod (Sen.) [D-OH]",
+                "twitterid": "SenSherrodBrown",
+                "youtubeid": "SherrodBrownOhio"
+            },
+            "phone": "202-224-2315",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "OH",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.brown.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Maryland",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "509 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.cardin.senate.gov/contact/",
+                "fax": "202-224-1651",
+                "office": "509 Hart Senate Office Building",
+                "rss_url": "http://www.cardin.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C000141",
+                "birthday": "1943-10-05",
+                "cspanid": 4004,
+                "firstname": "Benjamin",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Cardin",
+                "link": "https://www.govtrack.us/congress/members/benjamin_cardin/400064",
+                "middlename": "L.",
+                "name": "Sen. Benjamin Cardin [D-MD]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00001955",
+                "pvsid": "26888",
+                "sortname": "Cardin, Benjamin (Sen.) [D-MD]",
+                "twitterid": "SenatorCardin",
+                "youtubeid": "senatorcardin"
+            },
+            "phone": "202-224-4524",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MD",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cardin.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Arizona",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "413 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.flake.senate.gov/public/index.cfm/contact-jeff",
+                "fax": "202-226-4386",
+                "office": "413 Russell Senate Office Building",
+                "rss_url": "http://www.flake.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "F000444",
+                "birthday": "1962-12-31",
+                "cspanid": 87582,
+                "firstname": "Jeff",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Flake",
+                "link": "https://www.govtrack.us/congress/members/jeff_flake/400134",
+                "middlename": "",
+                "name": "Sen. Jeff Flake [R-AZ]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009573",
+                "pvsid": "28128",
+                "sortname": "Flake, Jeff (Sen.) [R-AZ]",
+                "twitterid": "JeffFlake",
+                "youtubeid": "flakeoffice"
+            },
+            "phone": "202-224-4521",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "AZ",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.flake.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for New Jersey",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "528 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.menendez.senate.gov/contact",
+                "fax": "202-228-2197",
+                "office": "528 Hart Senate Office Building",
+                "rss_url": "http://www.menendez.senate.gov/rss/feeds/index.cfm?type=news"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M000639",
+                "birthday": "1954-01-01",
+                "cspanid": 29608,
+                "firstname": "Robert",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Menéndez",
+                "link": "https://www.govtrack.us/congress/members/robert_menendez/400272",
+                "middlename": "",
+                "name": "Sen. Robert “Bob” Menéndez [D-NJ]",
+                "namemod": "",
+                "nickname": "Bob",
+                "osid": "N00000699",
+                "pvsid": "26961",
+                "sortname": "Menéndez, Robert “Bob” (Sen.) [D-NJ]",
+                "twitterid": "SenatorMenendez",
+                "youtubeid": "SenatorMenendezNJ"
+            },
+            "phone": "202-224-4744",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "NJ",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.menendez.senate.gov"
+        },
+        {
+            "caucus": "Democrat",
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Vermont",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "332 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.sanders.senate.gov/contact/",
+                "fax": "202-228-0776",
+                "office": "332 Dirksen Senate Office Building",
+                "rss_url": "http://www.sanders.senate.gov/rss/"
+            },
+            "leadership_title": null,
+            "party": "Independent",
+            "person": {
+                "bioguideid": "S000033",
+                "birthday": "1941-09-08",
+                "cspanid": 994,
+                "firstname": "Bernard",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Sanders",
+                "link": "https://www.govtrack.us/congress/members/bernard_sanders/400357",
+                "middlename": "",
+                "name": "Sen. Bernard “Bernie” Sanders [I-VT]",
+                "namemod": "",
+                "nickname": "Bernie",
+                "osid": "N00000528",
+                "pvsid": "27110",
+                "sortname": "Sanders, Bernard “Bernie” (Sen.) [I-VT]",
+                "twitterid": "SenSanders",
+                "youtubeid": "senatorsanders"
+            },
+            "phone": "202-224-5141",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "VT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.sanders.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Washington",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "511 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.cantwell.senate.gov/public/index.cfm/email-maria",
+                "fax": "202-228-0514",
+                "office": "511 Hart Senate Office Building",
+                "rss_url": "http://www.cantwell.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C000127",
+                "birthday": "1958-10-13",
+                "cspanid": 26137,
+                "firstname": "Maria",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Cantwell",
+                "link": "https://www.govtrack.us/congress/members/maria_cantwell/300018",
+                "middlename": "",
+                "name": "Sen. Maria Cantwell [D-WA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00007836",
+                "pvsid": "27122",
+                "sortname": "Cantwell, Maria (Sen.) [D-WA]",
+                "twitterid": "SenatorCantwell",
+                "youtubeid": "SenatorCantwell"
+            },
+            "phone": "202-224-3441",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "WA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cantwell.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Delaware",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "513 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.carper.senate.gov/public/index.cfm/email-senator-carper",
+                "fax": "202-228-2190",
+                "office": "513 Hart Senate Office Building",
+                "rss_url": "http://www.carper.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C000174",
+                "birthday": "1947-01-23",
+                "cspanid": 663,
+                "firstname": "Thomas",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Carper",
+                "link": "https://www.govtrack.us/congress/members/thomas_carper/300019",
+                "middlename": "Richard",
+                "name": "Sen. Thomas Carper [D-DE]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00012508",
+                "pvsid": "22421",
+                "sortname": "Carper, Thomas (Sen.) [D-DE]",
+                "twitterid": "SenatorCarper",
+                "youtubeid": "senatorcarper"
+            },
+            "phone": "202-224-2441",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "DE",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.carper.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for California",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "331 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.feinstein.senate.gov/public/index.cfm/e-mail-me",
+                "fax": "202-228-3954",
+                "office": "331 Hart Senate Office Building",
+                "rss_url": "http://www.feinstein.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "F000062",
+                "birthday": "1933-06-22",
+                "cspanid": 13061,
+                "firstname": "Dianne",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Feinstein",
+                "link": "https://www.govtrack.us/congress/members/dianne_feinstein/300043",
+                "middlename": "",
+                "name": "Sen. Dianne Feinstein [D-CA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00007364",
+                "pvsid": "53273",
+                "sortname": "Feinstein, Dianne (Sen.) [D-CA]",
+                "twitterid": "SenFeinstein",
+                "youtubeid": "SenatorFeinstein"
+            },
+            "phone": "202-224-3841",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "CA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.feinstein.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Utah",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "104 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.hatch.senate.gov/public/index.cfm/contact?p=Email-Orrin",
+                "fax": "202-224-6331",
+                "office": "104 Hart Senate Office Building",
+                "rss_url": "http://www.hatch.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "H000338",
+                "birthday": "1934-03-22",
+                "cspanid": 189,
+                "firstname": "Orrin",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Hatch",
+                "link": "https://www.govtrack.us/congress/members/orrin_hatch/300052",
+                "middlename": "G.",
+                "name": "Sen. Orrin Hatch [R-UT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009869",
+                "pvsid": "53352",
+                "sortname": "Hatch, Orrin (Sen.) [R-UT]",
+                "twitterid": "SenOrrinHatch",
+                "youtubeid": "SenatorOrrinHatch"
+            },
+            "phone": "202-224-5251",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "UT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.hatch.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Florida",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "716 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.billnelson.senate.gov/contact-bill",
+                "fax": "202-228-2183",
+                "office": "716 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "N000032",
+                "birthday": "1942-09-29",
+                "cspanid": 1931,
+                "firstname": "Bill",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Nelson",
+                "link": "https://www.govtrack.us/congress/members/bill_nelson/300078",
+                "middlename": "",
+                "name": "Sen. Bill Nelson [D-FL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009926",
+                "pvsid": "1606",
+                "sortname": "Nelson, Bill (Sen.) [D-FL]",
+                "twitterid": "SenBillNelson",
+                "youtubeid": "senbillnelson"
+            },
+            "phone": "202-224-5274",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "FL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.billnelson.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Michigan",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "731 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.stabenow.senate.gov/contact",
+                "fax": "202-228-0325",
+                "office": "731 Hart Senate Office Building",
+                "rss_url": "http://stabenow.senate.gov/rss/?p=news"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "S000770",
+                "birthday": "1950-04-29",
+                "cspanid": 45451,
+                "firstname": "Debbie",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Stabenow",
+                "link": "https://www.govtrack.us/congress/members/debbie_stabenow/300093",
+                "middlename": "Ann",
+                "name": "Sen. Debbie Stabenow [D-MI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00004118",
+                "pvsid": "515",
+                "sortname": "Stabenow, Debbie (Sen.) [D-MI]",
+                "twitterid": "SenStabenow",
+                "youtubeid": "senatorstabenow"
+            },
+            "phone": "202-224-4822",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.stabenow.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Connecticut",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "136 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.murphy.senate.gov/contact",
+                "fax": "202-225-5933",
+                "office": "136 Hart Senate Office Building",
+                "rss_url": "http://www.theday.com/article/20121216/nws12/312169935/1069/rss"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M001169",
+                "birthday": "1973-08-03",
+                "cspanid": 1021270,
+                "firstname": "Christopher",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Murphy",
+                "link": "https://www.govtrack.us/congress/members/christopher_murphy/412194",
+                "middlename": "S.",
+                "name": "Sen. Christopher Murphy [D-CT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027566",
+                "pvsid": "17189",
+                "sortname": "Murphy, Christopher (Sen.) [D-CT]",
+                "twitterid": "senmurphyoffice",
+                "youtubeid": "senchrismurphy"
+            },
+            "phone": "202-224-4041",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "CT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.murphy.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Hawaii",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "730 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.hirono.senate.gov/contact",
+                "fax": "202-225-4987",
+                "office": "730 Hart Senate Office Building",
+                "rss_url": "http://www.hirono.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "H001042",
+                "birthday": "1947-11-03",
+                "cspanid": 91216,
+                "firstname": "Mazie",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Hirono",
+                "link": "https://www.govtrack.us/congress/members/mazie_hirono/412200",
+                "middlename": "K.",
+                "name": "Sen. Mazie Hirono [D-HI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00028139",
+                "pvsid": "1677",
+                "sortname": "Hirono, Mazie (Sen.) [D-HI]",
+                "twitterid": "MazieHirono",
+                "youtubeid": "CongresswomanHirono"
+            },
+            "phone": "202-224-6361",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "HI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.hirono.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Indiana",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "720 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.donnelly.senate.gov/contact/email-joe",
+                "fax": "202-225-6798",
+                "office": "720 Hart Senate Office Building",
+                "rss_url": "http://www.donnelly.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "D000607",
+                "birthday": "1955-09-28",
+                "cspanid": 1012000,
+                "firstname": "Joe",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Donnelly",
+                "link": "https://www.govtrack.us/congress/members/joe_donnelly/412205",
+                "middlename": "",
+                "name": "Sen. Joe Donnelly [D-IN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00026586",
+                "pvsid": "34212",
+                "sortname": "Donnelly, Joe (Sen.) [D-IN]",
+                "twitterid": "SenDonnelly",
+                "youtubeid": "sendonnelly"
+            },
+            "phone": "202-224-4814",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "IN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.donnelly.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Nevada",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "324 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.heller.senate.gov/public/index.cfm/contact-form",
+                "fax": "202-228-6753",
+                "office": "324 Hart Senate Office Building",
+                "rss_url": "http://www.heller.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "H001041",
+                "birthday": "1960-05-10",
+                "cspanid": 1012368,
+                "firstname": "Dean",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Heller",
+                "link": "https://www.govtrack.us/congress/members/dean_heller/412218",
+                "middlename": "",
+                "name": "Sen. Dean Heller [R-NV]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027522",
+                "pvsid": "2291",
+                "sortname": "Heller, Dean (Sen.) [R-NV]",
+                "twitterid": "SenDeanHeller",
+                "youtubeid": "SenDeanHeller"
+            },
+            "phone": "202-224-6244",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "NV",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.heller.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for New York",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "478 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.gillibrand.senate.gov/contact/email-me",
+                "fax": "202-228-0282",
+                "office": "478 Russell Senate Office Building",
+                "rss_url": "http://www.gillibrand.senate.gov/rss/"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "G000555",
+                "birthday": "1966-12-09",
+                "cspanid": 1022862,
+                "firstname": "Kirsten",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Gillibrand",
+                "link": "https://www.govtrack.us/congress/members/kirsten_gillibrand/412223",
+                "middlename": "E.",
+                "name": "Sen. Kirsten Gillibrand [D-NY]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027658",
+                "pvsid": "65147",
+                "sortname": "Gillibrand, Kirsten (Sen.) [D-NY]",
+                "twitterid": "SenGillibrand",
+                "youtubeid": "KirstenEGillibrand"
+            },
+            "phone": "202-224-4451",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "NY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.gillibrand.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Minnesota",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "302 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.klobuchar.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-2186",
+                "office": "302 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "K000367",
+                "birthday": "1960-05-25",
+                "cspanid": 83701,
+                "firstname": "Amy",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Klobuchar",
+                "link": "https://www.govtrack.us/congress/members/amy_klobuchar/412242",
+                "middlename": "Jean",
+                "name": "Sen. Amy Klobuchar [D-MN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027500",
+                "pvsid": "65092",
+                "sortname": "Klobuchar, Amy (Sen.) [D-MN]",
+                "twitterid": "SenAmyKlobuchar",
+                "youtubeid": "senatorklobuchar"
+            },
+            "phone": "202-224-3244",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.klobuchar.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Missouri",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "503 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.mccaskill.senate.gov/contact",
+                "fax": "202-228-6326",
+                "office": "503 Hart Senate Office Building",
+                "rss_url": "http://mccaskill.senate.gov/rss/?p=news"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M001170",
+                "birthday": "1953-07-24",
+                "cspanid": 44501,
+                "firstname": "Claire",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "McCaskill",
+                "link": "https://www.govtrack.us/congress/members/claire_mccaskill/412243",
+                "middlename": "",
+                "name": "Sen. Claire McCaskill [D-MO]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027694",
+                "pvsid": "2109",
+                "sortname": "McCaskill, Claire (Sen.) [D-MO]",
+                "twitterid": "McCaskillOffice",
+                "youtubeid": "SenatorMcCaskill"
+            },
+            "phone": "202-224-6154",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MO",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.mccaskill.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Montana",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "311 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.tester.senate.gov/?p=email_senator",
+                "fax": "202-224-8594",
+                "office": "311 Hart Senate Office Building",
+                "rss_url": "http://www.tester.senate.gov/rss/?p=hot_topic"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "T000464",
+                "birthday": "1956-08-21",
+                "cspanid": 1020176,
+                "firstname": "Jon",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Tester",
+                "link": "https://www.govtrack.us/congress/members/jon_tester/412244",
+                "middlename": "",
+                "name": "Sen. Jon Tester [D-MT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027605",
+                "pvsid": "20928",
+                "sortname": "Tester, Jon (Sen.) [D-MT]",
+                "twitterid": "SenatorTester",
+                "youtubeid": "senatorjontester"
+            },
+            "phone": "202-224-2644",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.tester.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Pennsylvania",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "393 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.casey.senate.gov/contact/",
+                "fax": "202-228-0604",
+                "office": "393 Russell Senate Office Building",
+                "rss_url": "http://www.casey.senate.gov/rss/feeds/?all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C001070",
+                "birthday": "1960-04-13",
+                "cspanid": 47036,
+                "firstname": "Robert",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Casey",
+                "link": "https://www.govtrack.us/congress/members/robert_casey/412246",
+                "middlename": "P.",
+                "name": "Sen. Robert “Bob” Casey [D-PA]",
+                "namemod": "Jr.",
+                "nickname": "Bob",
+                "osid": "N00027503",
+                "pvsid": "2541",
+                "sortname": "Casey, Robert “Bob” (Sen.) [D-PA]",
+                "twitterid": "SenBobCasey",
+                "youtubeid": "SenatorBobCasey"
+            },
+            "phone": "202-224-6324",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "PA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.casey.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Rhode Island",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "530 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.whitehouse.senate.gov/contact/email-sheldon",
+                "fax": "202-228-6362",
+                "office": "530 Hart Senate Office Building",
+                "rss_url": "http://www.whitehouse.senate.gov/rss/feeds/?type=all&amp;cachebuster=1"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "W000802",
+                "birthday": "1955-10-20",
+                "cspanid": 92235,
+                "firstname": "Sheldon",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Whitehouse",
+                "link": "https://www.govtrack.us/congress/members/sheldon_whitehouse/412247",
+                "middlename": "",
+                "name": "Sen. Sheldon Whitehouse [D-RI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027533",
+                "pvsid": "2572",
+                "sortname": "Whitehouse, Sheldon (Sen.) [D-RI]",
+                "twitterid": "SenWhitehouse",
+                "youtubeid": "SenatorWhitehouse"
+            },
+            "phone": "202-224-2921",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "RI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.whitehouse.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Tennessee",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "425 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.corker.senate.gov/public/index.cfm/emailme",
+                "fax": "202-228-0566",
+                "office": "425 Dirksen Senate Office Building",
+                "rss_url": "http://www.corker.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001071",
+                "birthday": "1952-08-24",
+                "cspanid": 1021114,
+                "firstname": "Bob",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Corker",
+                "link": "https://www.govtrack.us/congress/members/bob_corker/412248",
+                "middlename": "",
+                "name": "Sen. Bob Corker [R-TN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027441",
+                "pvsid": "65905",
+                "sortname": "Corker, Bob (Sen.) [R-TN]",
+                "twitterid": "SenBobCorker",
+                "youtubeid": "senatorcorker"
+            },
+            "phone": "202-224-3344",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "TN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.corker.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Wyoming",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "307 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.barrasso.senate.gov/public/index.cfm/contact-form",
+                "fax": "202-224-1724",
+                "office": "307 Dirksen Senate Office Building",
+                "rss_url": "http://www.barrasso.senate.gov/public/index.cfm?FuseAction=Rss.Feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "B001261",
+                "birthday": "1952-07-21",
+                "cspanid": 1024777,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Barrasso",
+                "link": "https://www.govtrack.us/congress/members/john_barrasso/412251",
+                "middlename": "A.",
+                "name": "Sen. John Barrasso [R-WY]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00006236",
+                "pvsid": "52662",
+                "sortname": "Barrasso, John (Sen.) [R-WY]",
+                "twitterid": "SenJohnBarrasso",
+                "youtubeid": "barrassowyo"
+            },
+            "phone": "202-224-6441",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "WY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.barrasso.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for New Mexico",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "303 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.heinrich.senate.gov/contact",
+                "fax": "202-225-4975",
+                "office": "303 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "H001046",
+                "birthday": "1971-10-17",
+                "cspanid": 1030686,
+                "firstname": "Martin",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Heinrich",
+                "link": "https://www.govtrack.us/congress/members/martin_heinrich/412281",
+                "middlename": "",
+                "name": "Sen. Martin Heinrich [D-NM]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00029835",
+                "pvsid": "74517",
+                "sortname": "Heinrich, Martin (Sen.) [D-NM]",
+                "twitterid": "MartinHeinrich",
+                "youtubeid": "SenMartinHeinrich"
+            },
+            "phone": "202-224-5521",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "NM",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.heinrich.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for West Virginia",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "306 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.manchin.senate.gov/public/index.cfm/contact-form",
+                "fax": "202-228-0002",
+                "office": "306 Hart Senate Office Building",
+                "rss_url": "http://www.manchin.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M001183",
+                "birthday": "1947-08-24",
+                "cspanid": 62864,
+                "firstname": "Joe",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Manchin",
+                "link": "https://www.govtrack.us/congress/members/joe_manchin/412391",
+                "middlename": "",
+                "name": "Sen. Joe Manchin [D-WV]",
+                "namemod": "III",
+                "nickname": "",
+                "osid": "N00032838",
+                "pvsid": "7547",
+                "sortname": "Manchin, Joe (Sen.) [D-WV]",
+                "twitterid": "Sen_JoeManchin",
+                "youtubeid": "SenatorJoeManchin"
+            },
+            "phone": "202-224-3954",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "WV",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.manchin.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Massachusetts",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "317 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.warren.senate.gov/?p=email_senator",
+                "fax": "202-228-2072",
+                "office": "317 Hart Senate Office Building",
+                "rss_url": "http://www.warren.senate.gov/rss/?p=hot_topic"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "W000817",
+                "birthday": "1949-06-22",
+                "cspanid": 1023023,
+                "firstname": "Elizabeth",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Warren",
+                "link": "https://www.govtrack.us/congress/members/elizabeth_warren/412542",
+                "middlename": "",
+                "name": "Sen. Elizabeth Warren [D-MA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033492",
+                "pvsid": "141272",
+                "sortname": "Warren, Elizabeth (Sen.) [D-MA]",
+                "twitterid": "SenWarren",
+                "youtubeid": "senelizabethwarren"
+            },
+            "phone": "202-224-4543",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.warren.senate.gov"
+        },
+        {
+            "caucus": "Democrat",
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Maine",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "133 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.king.senate.gov/contact",
+                "fax": "202-224-1946",
+                "office": "133 Hart Senate Office Building",
+                "rss_url": "http://www.king.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Independent",
+            "person": {
+                "bioguideid": "K000383",
+                "birthday": "1944-03-31",
+                "cspanid": 37413,
+                "firstname": "Angus",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "King",
+                "link": "https://www.govtrack.us/congress/members/angus_king/412545",
+                "middlename": "",
+                "name": "Sen. Angus King [I-ME]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00034580",
+                "pvsid": "22381",
+                "sortname": "King, Angus (Sen.) [I-ME]",
+                "twitterid": "SenAngusKing",
+                "youtubeid": "SenatorAngusKing"
+            },
+            "phone": "202-224-5344",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "ME",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.king.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for North Dakota",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "516 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.heitkamp.senate.gov/public/index.cfm/contact",
+                "fax": "202-224-7776",
+                "office": "516 Hart Senate Office Building",
+                "rss_url": "http://www.heitkamp.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "H001069",
+                "birthday": "1955-10-30",
+                "cspanid": 95414,
+                "firstname": "Heidi",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Heitkamp",
+                "link": "https://www.govtrack.us/congress/members/heidi_heitkamp/412554",
+                "middlename": "",
+                "name": "Sen. Heidi Heitkamp [D-ND]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033782",
+                "pvsid": "41716",
+                "sortname": "Heitkamp, Heidi (Sen.) [D-ND]",
+                "twitterid": "SenatorHeitkamp",
+                "youtubeid": "senatorheidiheitkamp"
+            },
+            "phone": "202-224-2043",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "ND",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.heitkamp.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Nebraska",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "454 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.fischer.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-1325",
+                "office": "454 Russell Senate Office Building",
+                "rss_url": "http://www.fischer.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "F000463",
+                "birthday": "1951-03-01",
+                "cspanid": 1034067,
+                "firstname": "Deb",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Fischer",
+                "link": "https://www.govtrack.us/congress/members/deb_fischer/412556",
+                "middlename": "",
+                "name": "Sen. Deb Fischer [R-NE]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033443",
+                "pvsid": "41963",
+                "sortname": "Fischer, Deb (Sen.) [R-NE]",
+                "twitterid": "SenatorFischer",
+                "youtubeid": "senatordebfischer"
+            },
+            "phone": "202-224-6551",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "NE",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.fischer.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Texas",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "404 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.cruz.senate.gov/?p=form&id=16",
+                "fax": "202-228-3398",
+                "office": "404 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001098",
+                "birthday": "1970-12-22",
+                "cspanid": 1019953,
+                "firstname": "Ted",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Cruz",
+                "link": "https://www.govtrack.us/congress/members/ted_cruz/412573",
+                "middlename": "",
+                "name": "Sen. Ted Cruz [R-TX]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033085",
+                "pvsid": "135705",
+                "sortname": "Cruz, Ted (Sen.) [R-TX]",
+                "twitterid": "SenTedCruz",
+                "youtubeid": "sentedcruz"
+            },
+            "phone": "202-224-5922",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "TX",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cruz.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Virginia",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "231 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.kaine.senate.gov/contact",
+                "fax": "202-228-6363",
+                "office": "231 Russell Senate Office Building",
+                "rss_url": "http://www.kaine.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "K000384",
+                "birthday": "1958-02-26",
+                "cspanid": 49219,
+                "firstname": "Timothy",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Kaine",
+                "link": "https://www.govtrack.us/congress/members/timothy_kaine/412582",
+                "middlename": "",
+                "name": "Sen. Timothy Kaine [D-VA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033177",
+                "pvsid": "50772",
+                "sortname": "Kaine, Timothy (Sen.) [D-VA]",
+                "twitterid": null,
+                "youtubeid": "SenatorTimKaine"
+            },
+            "phone": "202-224-4024",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2013-01-03",
+            "state": "VA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.kaine.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                113,
+                114,
+                115
+            ],
+            "current": true,
+            "description": "Senior Senator for Mississippi",
+            "district": null,
+            "enddate": "2019-01-03",
+            "extra": {
+                "address": "555 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.wicker.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-0378",
+                "office": "555 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "W000437",
+                "birthday": "1951-07-05",
+                "cspanid": 18203,
+                "firstname": "Roger",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Wicker",
+                "link": "https://www.govtrack.us/congress/members/roger_wicker/400432",
+                "middlename": "F.",
+                "name": "Sen. Roger Wicker [R-MS]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00003280",
+                "pvsid": "21926",
+                "sortname": "Wicker, Roger (Sen.) [R-MS]",
+                "twitterid": "SenatorWicker",
+                "youtubeid": "SenatorWicker"
+            },
+            "phone": "202-224-6253",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class1",
+            "senator_class_label": "Class 1",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2013-01-03",
+            "state": "MS",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.wicker.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Tennessee",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "455 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.alexander.senate.gov/public/index.cfm?p=Email",
+                "fax": "202-228-3398",
+                "office": "455 Dirksen Senate Office Building",
+                "rss_url": "http://www.alexander.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "A000360",
+                "birthday": "1940-07-03",
+                "cspanid": 5,
+                "firstname": "Lamar",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Alexander",
+                "link": "https://www.govtrack.us/congress/members/lamar_alexander/300002",
+                "middlename": "",
+                "name": "Sen. Lamar Alexander [R-TN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009888",
+                "pvsid": "15691",
+                "sortname": "Alexander, Lamar (Sen.) [R-TN]",
+                "twitterid": "SenAlexander",
+                "youtubeid": "lamaralexander"
+            },
+            "phone": "202-224-4944",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "TN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.alexander.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Maine",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "413 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.collins.senate.gov/contact",
+                "fax": "202-224-2693",
+                "office": "413 Dirksen Senate Office Building",
+                "rss_url": "http://www.collins.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001035",
+                "birthday": "1952-12-07",
+                "cspanid": 45738,
+                "firstname": "Susan",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Collins",
+                "link": "https://www.govtrack.us/congress/members/susan_collins/300025",
+                "middlename": "M.",
+                "name": "Sen. Susan Collins [R-ME]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00000491",
+                "pvsid": "379",
+                "sortname": "Collins, Susan (Sen.) [R-ME]",
+                "twitterid": "SenatorCollins",
+                "youtubeid": "SenatorSusanCollins"
+            },
+            "phone": "202-224-2523",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "ME",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.collins.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Texas",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "517 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.cornyn.senate.gov/contact",
+                "fax": "202-228-2856",
+                "office": "517 Hart Senate Office Building",
+                "rss_url": "http://www.cornyn.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": "Majority Whip",
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001056",
+                "birthday": "1952-02-02",
+                "cspanid": 93131,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Cornyn",
+                "link": "https://www.govtrack.us/congress/members/john_cornyn/300027",
+                "middlename": "",
+                "name": "Sen. John Cornyn [R-TX]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00024852",
+                "pvsid": "15375",
+                "sortname": "Cornyn, John (Sen.) [R-TX]",
+                "twitterid": "JohnCornyn",
+                "youtubeid": "senjohncornyn"
+            },
+            "phone": "202-224-2934",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "TX",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cornyn.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Illinois",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "711 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.durbin.senate.gov/contact/",
+                "fax": "202-228-0400",
+                "office": "711 Hart Senate Office Building",
+                "rss_url": "http://durbin.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": "Minority Whip",
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "D000563",
+                "birthday": "1944-11-21",
+                "cspanid": 6741,
+                "firstname": "Richard",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Durbin",
+                "link": "https://www.govtrack.us/congress/members/richard_durbin/300038",
+                "middlename": "J.",
+                "name": "Sen. Richard Durbin [D-IL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00004981",
+                "pvsid": "26847",
+                "sortname": "Durbin, Richard (Sen.) [D-IL]",
+                "twitterid": "SenatorDurbin",
+                "youtubeid": "SenatorDurbin"
+            },
+            "phone": "202-224-2152",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "IL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.durbin.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Wyoming",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "379A Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.enzi.senate.gov/public/index.cfm/contact?p=e-mail-senator-enzi",
+                "fax": "202-228-0359",
+                "office": "379a Russell Senate Office Building",
+                "rss_url": "http://www.enzi.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "E000285",
+                "birthday": "1944-02-01",
+                "cspanid": 45824,
+                "firstname": "Michael",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Enzi",
+                "link": "https://www.govtrack.us/congress/members/michael_enzi/300041",
+                "middlename": "B.",
+                "name": "Sen. Michael Enzi [R-WY]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00006249",
+                "pvsid": "558",
+                "sortname": "Enzi, Michael (Sen.) [R-WY]",
+                "twitterid": "SenatorEnzi",
+                "youtubeid": "senatorenzi"
+            },
+            "phone": "202-224-3424",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "WY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.enzi.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for South Carolina",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "290 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.lgraham.senate.gov/public/index.cfm/e-mail-senator-graham",
+                "fax": "202-224-3808",
+                "office": "290 Russell Senate Office Building",
+                "rss_url": "http://www.lgraham.senate.gov/public/index.cfm?FuseAction=Rss.Feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "G000359",
+                "birthday": "1955-07-09",
+                "cspanid": 36782,
+                "firstname": "Lindsey",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Graham",
+                "link": "https://www.govtrack.us/congress/members/lindsey_graham/300047",
+                "middlename": "O.",
+                "name": "Sen. Lindsey Graham [R-SC]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009975",
+                "pvsid": "21992",
+                "sortname": "Graham, Lindsey (Sen.) [R-SC]",
+                "twitterid": "GrahamBlog",
+                "youtubeid": "USSenLindseyGraham"
+            },
+            "phone": "202-224-5972",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "SC",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.lgraham.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Oklahoma",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "205 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.inhofe.senate.gov/contact",
+                "fax": "202-228-0380",
+                "office": "205 Russell Senate Office Building",
+                "rss_url": "http://www.inhofe.senate.gov/rss/feeds/?type=all&amp;cachebuster=eea6c4d7%2d939c%2d5c1e%2db6c7aa3b8b291208"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "I000024",
+                "birthday": "1934-11-17",
+                "cspanid": 5619,
+                "firstname": "James",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Inhofe",
+                "link": "https://www.govtrack.us/congress/members/james_inhofe/300055",
+                "middlename": "M.",
+                "name": "Sen. James “Jim” Inhofe [R-OK]",
+                "namemod": "",
+                "nickname": "Jim",
+                "osid": "N00005582",
+                "pvsid": "27027",
+                "sortname": "Inhofe, James “Jim” (Sen.) [R-OK]",
+                "twitterid": "InhofePress",
+                "youtubeid": "jiminhofepressoffice"
+            },
+            "phone": "202-224-4721",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "OK",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.inhofe.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Kentucky",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "317 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.mcconnell.senate.gov/public/index.cfm?p=contact",
+                "fax": "202-224-2499",
+                "office": "317 Russell Senate Office Building",
+                "rss_url": "http://www.mcconnell.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": "Majority Leader",
+            "party": "Republican",
+            "person": {
+                "bioguideid": "M000355",
+                "birthday": "1942-02-20",
+                "cspanid": 2351,
+                "firstname": "Mitch",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "McConnell",
+                "link": "https://www.govtrack.us/congress/members/mitch_mcconnell/300072",
+                "middlename": "",
+                "name": "Sen. Mitch McConnell [R-KY]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00003389",
+                "pvsid": "53298",
+                "sortname": "McConnell, Mitch (Sen.) [R-KY]",
+                "twitterid": "McConnellPress",
+                "youtubeid": null
+            },
+            "phone": "202-224-2541",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "KY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.mcconnell.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Rhode Island",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "728 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.reed.senate.gov/contact/",
+                "fax": "202-224-4680",
+                "office": "728 Hart Senate Office Building",
+                "rss_url": "https://www.reed.senate.gov//rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "R000122",
+                "birthday": "1949-11-12",
+                "cspanid": 24239,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Reed",
+                "link": "https://www.govtrack.us/congress/members/john_reed/300081",
+                "middlename": "F.",
+                "name": "Sen. John “Jack” Reed [D-RI]",
+                "namemod": "",
+                "nickname": "Jack",
+                "osid": "N00000362",
+                "pvsid": "27060",
+                "sortname": "Reed, John “Jack” (Sen.) [D-RI]",
+                "twitterid": "SenJackReed",
+                "youtubeid": "SenatorReed"
+            },
+            "phone": "202-224-4642",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "RI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.reed.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Kansas",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "109 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.roberts.senate.gov/public/?p=EmailPat",
+                "fax": "202-224-3514",
+                "office": "109 Hart Senate Office Building",
+                "rss_url": "http://www.roberts.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "R000307",
+                "birthday": "1936-04-20",
+                "cspanid": 16354,
+                "firstname": "Pat",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Roberts",
+                "link": "https://www.govtrack.us/congress/members/pat_roberts/300083",
+                "middlename": "",
+                "name": "Sen. Pat Roberts [R-KS]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00005285",
+                "pvsid": "26866",
+                "sortname": "Roberts, Pat (Sen.) [R-KS]",
+                "twitterid": "SenPatRoberts",
+                "youtubeid": "SenPatRoberts"
+            },
+            "phone": "202-224-4774",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "KS",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.roberts.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for West Virginia",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "172 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.capito.senate.gov/contact/contact-shelley",
+                "fax": "202-225-7856",
+                "office": "172 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001047",
+                "birthday": "1953-11-26",
+                "cspanid": 83737,
+                "firstname": "Shelley",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Capito",
+                "link": "https://www.govtrack.us/congress/members/shelley_capito/400061",
+                "middlename": "Moore",
+                "name": "Sen. Shelley Capito [R-WV]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009771",
+                "pvsid": "11701",
+                "sortname": "Capito, Shelley (Sen.) [R-WV]",
+                "twitterid": "SenCapito",
+                "youtubeid": null
+            },
+            "phone": "202-224-6472",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "WV",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.capito.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Massachusetts",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "255 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.markey.senate.gov/contact",
+                "office": "255 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M000133",
+                "birthday": "1946-07-11",
+                "cspanid": 260,
+                "firstname": "Edward",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Markey",
+                "link": "https://www.govtrack.us/congress/members/edward_markey/400253",
+                "middlename": "J.",
+                "name": "Sen. Edward “Ed” Markey [D-MA]",
+                "namemod": "",
+                "nickname": "Ed",
+                "osid": "N00000270",
+                "pvsid": "26900",
+                "sortname": "Markey, Edward “Ed” (Sen.) [D-MA]",
+                "twitterid": "SenMarkey",
+                "youtubeid": "RepMarkey"
+            },
+            "phone": "202-224-2742",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "MA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.markey.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for New Mexico",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "531 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.tomudall.senate.gov/?p=contact",
+                "fax": "202-228-3261",
+                "office": "531 Hart Senate Office Building",
+                "rss_url": "http://tomudall.senate.gov/rss/?p=blog"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "U000039",
+                "birthday": "1948-05-18",
+                "cspanid": 10075,
+                "firstname": "Tom",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Udall",
+                "link": "https://www.govtrack.us/congress/members/tom_udall/400413",
+                "middlename": "S.",
+                "name": "Sen. Tom Udall [D-NM]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00006561",
+                "pvsid": "22658",
+                "sortname": "Udall, Tom (Sen.) [D-NM]",
+                "twitterid": "SenatorTomUdall",
+                "youtubeid": "senatortomudall"
+            },
+            "phone": "202-224-6621",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "NM",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.tomudall.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Louisiana",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "520 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.cassidy.senate.gov/contact",
+                "fax": "202-225-7313",
+                "office": "520 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001075",
+                "birthday": "1957-09-28",
+                "cspanid": 1030546,
+                "firstname": "Bill",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Cassidy",
+                "link": "https://www.govtrack.us/congress/members/bill_cassidy/412269",
+                "middlename": "",
+                "name": "Sen. Bill Cassidy [R-LA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030245",
+                "pvsid": "69494",
+                "sortname": "Cassidy, Bill (Sen.) [R-LA]",
+                "twitterid": null,
+                "youtubeid": "SenatorBillCassidy"
+            },
+            "phone": "202-224-5824",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "LA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cassidy.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Michigan",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "724 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.peters.senate.gov/contact/email-gary",
+                "fax": "202-226-2356",
+                "office": "724 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "P000595",
+                "birthday": "1958-12-01",
+                "cspanid": 50199,
+                "firstname": "Gary",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Peters",
+                "link": "https://www.govtrack.us/congress/members/gary_peters/412305",
+                "middlename": "C.",
+                "name": "Sen. Gary Peters [D-MI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00029277",
+                "pvsid": "8749",
+                "sortname": "Peters, Gary (Sen.) [D-MI]",
+                "twitterid": "SenGaryPeters",
+                "youtubeid": "RepGaryPeters"
+            },
+            "phone": "202-224-6221",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "MI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.peters.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for Virginia",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "703 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.warner.senate.gov/public/index.cfm?p=Contact",
+                "fax": "202-224-6295",
+                "office": "703 Hart Senate Office Building",
+                "rss_url": "http://www.warner.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "W000805",
+                "birthday": "1954-12-15",
+                "cspanid": 7630,
+                "firstname": "Mark",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Warner",
+                "link": "https://www.govtrack.us/congress/members/mark_warner/412321",
+                "middlename": "",
+                "name": "Sen. Mark Warner [D-VA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00002097",
+                "pvsid": "535",
+                "sortname": "Warner, Mark (Sen.) [D-VA]",
+                "twitterid": "MarkWarner",
+                "youtubeid": "SenatorMarkWarner"
+            },
+            "phone": "202-224-2023",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "VA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.warner.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Idaho",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "483 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.risch.senate.gov/public/index.cfm?p=Email",
+                "fax": "202-224-2573",
+                "office": "483 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "R000584",
+                "birthday": "1943-05-03",
+                "cspanid": 1020034,
+                "firstname": "James",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Risch",
+                "link": "https://www.govtrack.us/congress/members/james_risch/412322",
+                "middlename": "",
+                "name": "Sen. James Risch [R-ID]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00029441",
+                "pvsid": "2919",
+                "sortname": "Risch, James (Sen.) [R-ID]",
+                "twitterid": "SenatorRisch",
+                "youtubeid": "SenatorJamesRisch"
+            },
+            "phone": "202-224-2752",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "ID",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.risch.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Senior Senator for New Hampshire",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "506 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.shaheen.senate.gov/contact/contact-jeanne",
+                "fax": "202-228-3194",
+                "office": "506 Hart Senate Office Building",
+                "rss_url": "http://www.shaheen.senate.gov/rss/"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "S001181",
+                "birthday": "1947-01-28",
+                "cspanid": 22850,
+                "firstname": "Jeanne",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Shaheen",
+                "link": "https://www.govtrack.us/congress/members/jeanne_shaheen/412323",
+                "middlename": "",
+                "name": "Sen. Jeanne Shaheen [D-NH]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00024790",
+                "pvsid": "1663",
+                "sortname": "Shaheen, Jeanne (Sen.) [D-NH]",
+                "twitterid": "SenatorShaheen",
+                "youtubeid": "senatorshaheen"
+            },
+            "phone": "202-224-2841",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2015-01-06",
+            "state": "NH",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.shaheen.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Oregon",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "313 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.merkley.senate.gov/contact/",
+                "fax": "202-228-3997",
+                "office": "313 Hart Senate Office Building",
+                "rss_url": "http://www.merkley.senate.gov/rss/"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M001176",
+                "birthday": "1956-10-24",
+                "cspanid": 1029842,
+                "firstname": "Jeff",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Merkley",
+                "link": "https://www.govtrack.us/congress/members/jeff_merkley/412325",
+                "middlename": "",
+                "name": "Sen. Jeff Merkley [D-OR]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00029303",
+                "pvsid": "23644",
+                "sortname": "Merkley, Jeff (Sen.) [D-OR]",
+                "twitterid": "SenJeffMerkley",
+                "youtubeid": "SenatorJeffMerkley"
+            },
+            "phone": "202-224-3753",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "OR",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.merkley.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Delaware",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "127A Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.coons.senate.gov/contact",
+                "fax": "202-228-3075",
+                "office": "127a Russell Senate Office Building",
+                "rss_url": "http://www.coons.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C001088",
+                "birthday": "1963-09-09",
+                "cspanid": 9269028,
+                "firstname": "Chris",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Coons",
+                "link": "https://www.govtrack.us/congress/members/chris_coons/412390",
+                "middlename": "Andrew",
+                "name": "Sen. Chris Coons [D-DE]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031820",
+                "pvsid": "122834",
+                "sortname": "Coons, Chris (Sen.) [D-DE]",
+                "twitterid": "ChrisCoons",
+                "youtubeid": "senatorchriscoons"
+            },
+            "phone": "202-224-5042",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "DE",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.coons.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Colorado",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "354 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.gardner.senate.gov/contact-cory/email-cory",
+                "fax": "202-225-5870",
+                "office": "354 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "G000562",
+                "birthday": "1974-08-22",
+                "cspanid": 623308,
+                "firstname": "Cory",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Gardner",
+                "link": "https://www.govtrack.us/congress/members/cory_gardner/412406",
+                "middlename": "",
+                "name": "Sen. Cory Gardner [R-CO]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030780",
+                "pvsid": "30004",
+                "sortname": "Gardner, Cory (Sen.) [R-CO]",
+                "twitterid": "SenCoryGardner",
+                "youtubeid": null
+            },
+            "phone": "202-224-5941",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "CO",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.gardner.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Arkansas",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "124 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.cotton.senate.gov/?p=contact",
+                "office": "124 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C001095",
+                "birthday": "1977-05-13",
+                "cspanid": 63928,
+                "firstname": "Tom",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Cotton",
+                "link": "https://www.govtrack.us/congress/members/tom_cotton/412508",
+                "middlename": "",
+                "name": "Sen. Tom Cotton [R-AR]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033363",
+                "pvsid": "135651",
+                "sortname": "Cotton, Tom (Sen.) [R-AR]",
+                "twitterid": "SenTomCotton",
+                "youtubeid": "RepTomCotton"
+            },
+            "phone": "202-224-2353",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "AR",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cotton.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Montana",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "320 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.daines.senate.gov/connect/email-steve",
+                "fax": "202-228-1236",
+                "office": "320 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "D000618",
+                "birthday": "1962-08-20",
+                "cspanid": 1034037,
+                "firstname": "Steve",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Daines",
+                "link": "https://www.govtrack.us/congress/members/steve_daines/412549",
+                "middlename": "",
+                "name": "Sen. Steve Daines [R-MT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00033054",
+                "pvsid": "135720",
+                "sortname": "Daines, Steve (Sen.) [R-MT]",
+                "twitterid": "SteveDaines",
+                "youtubeid": "SteveDainesMT"
+            },
+            "phone": "202-224-2651",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "MT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.daines.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for New Jersey",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "359 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.booker.senate.gov/?p=contact",
+                "fax": "202-224-8378",
+                "office": "359 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "B001288",
+                "birthday": "1969-04-27",
+                "cspanid": 84679,
+                "firstname": "Cory",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Booker",
+                "link": "https://www.govtrack.us/congress/members/cory_booker/412598",
+                "middlename": "Anthony",
+                "name": "Sen. Cory Booker [D-NJ]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035267",
+                "pvsid": "76151",
+                "sortname": "Booker, Cory (Sen.) [D-NJ]",
+                "twitterid": "SenBooker",
+                "youtubeid": "SenCoryBooker"
+            },
+            "phone": "202-224-3224",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "NJ",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.booker.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Alaska",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "702 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.sullivan.senate.gov/contact/email",
+                "office": "702 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "S001198",
+                "birthday": "1964-11-13",
+                "cspanid": 1023262,
+                "firstname": "Dan",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Sullivan",
+                "link": "https://www.govtrack.us/congress/members/dan_sullivan/412665",
+                "middlename": "",
+                "name": "Sen. Dan Sullivan [R-AK]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035774",
+                "pvsid": "114964",
+                "sortname": "Sullivan, Dan (Sen.) [R-AK]",
+                "twitterid": "SenDanSullivan",
+                "youtubeid": null
+            },
+            "phone": "202-224-3004",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "AK",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.sullivan.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Georgia",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "455 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.perdue.senate.gov/connect/email",
+                "office": "455 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "P000612",
+                "birthday": "1949-12-10",
+                "cspanid": 75920,
+                "firstname": "David",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Perdue",
+                "link": "https://www.govtrack.us/congress/members/david_perdue/412666",
+                "middlename": "",
+                "name": "Sen. David Perdue [R-GA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035516",
+                "pvsid": "151330",
+                "sortname": "Perdue, David (Sen.) [R-GA]",
+                "twitterid": "sendavidperdue",
+                "youtubeid": null
+            },
+            "phone": "202-224-3521",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "GA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.perdue.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Iowa",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "111 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.ernst.senate.gov/public/index.cfm/contact",
+                "office": "111 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "E000295",
+                "birthday": "1970-07-01",
+                "cspanid": 75342,
+                "firstname": "Joni",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Ernst",
+                "link": "https://www.govtrack.us/congress/members/joni_ernst/412667",
+                "middlename": "",
+                "name": "Sen. Joni Ernst [R-IA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035483",
+                "pvsid": "128583",
+                "sortname": "Ernst, Joni (Sen.) [R-IA]",
+                "twitterid": "SenJoniErnst",
+                "youtubeid": null
+            },
+            "phone": "202-224-3254",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "IA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.ernst.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for North Carolina",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "185 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.tillis.senate.gov/public/index.cfm/email-me",
+                "office": "185 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "T000476",
+                "birthday": "1960-08-30",
+                "cspanid": 77055,
+                "firstname": "Thom",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Tillis",
+                "link": "https://www.govtrack.us/congress/members/thom_tillis/412668",
+                "middlename": "",
+                "name": "Sen. Thom Tillis [R-NC]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035492",
+                "pvsid": "57717",
+                "sortname": "Tillis, Thom (Sen.) [R-NC]",
+                "twitterid": "senthomtillis",
+                "youtubeid": null
+            },
+            "phone": "202-224-6342",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "NC",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.tillis.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for South Dakota",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "502 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.rounds.senate.gov/contact/email-mike",
+                "office": "502 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "R000605",
+                "birthday": "1954-10-24",
+                "cspanid": 78317,
+                "firstname": "Mike",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Rounds",
+                "link": "https://www.govtrack.us/congress/members/mike_rounds/412669",
+                "middlename": "",
+                "name": "Sen. Mike Rounds [R-SD]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035187",
+                "pvsid": "7455",
+                "sortname": "Rounds, Mike (Sen.) [R-SD]",
+                "twitterid": "SenatorRounds",
+                "youtubeid": null
+            },
+            "phone": "202-224-5842",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "SD",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.rounds.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                114,
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Nebraska",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "136 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.sasse.senate.gov/public/index.cfm/email-ben",
+                "office": "136 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "S001197",
+                "birthday": "1972-02-22",
+                "cspanid": 77429,
+                "firstname": "Benjamin",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Sasse",
+                "link": "https://www.govtrack.us/congress/members/benjamin_sasse/412671",
+                "middlename": "Eric",
+                "name": "Sen. Benjamin Sasse [R-NE]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00035544",
+                "pvsid": "150182",
+                "sortname": "Sasse, Benjamin (Sen.) [R-NE]",
+                "twitterid": "SenSasse",
+                "youtubeid": null
+            },
+            "phone": "202-224-4224",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2015-01-06",
+            "state": "NE",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.sasse.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Idaho",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "239 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.crapo.senate.gov/contact",
+                "fax": "202-228-1375",
+                "office": "239 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "C000880",
+                "birthday": "1951-05-20",
+                "cspanid": 26440,
+                "firstname": "Michael",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Crapo",
+                "link": "https://www.govtrack.us/congress/members/michael_crapo/300030",
+                "middlename": "D.",
+                "name": "Sen. Michael Crapo [R-ID]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00006267",
+                "pvsid": "26830",
+                "sortname": "Crapo, Michael (Sen.) [R-ID]",
+                "twitterid": "MikeCrapo",
+                "youtubeid": "senatorcrapo"
+            },
+            "phone": "202-224-6142",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "ID",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.crapo.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Iowa",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "135 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.grassley.senate.gov/contact",
+                "fax": "202-224-6020",
+                "office": "135 Hart Senate Office Building",
+                "rss_url": "http://grassley.senate.gov/customcf/rss_feed.cfm"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "G000386",
+                "birthday": "1933-09-17",
+                "cspanid": 1167,
+                "firstname": "Charles",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Grassley",
+                "link": "https://www.govtrack.us/congress/members/charles_grassley/300048",
+                "middlename": "E.",
+                "name": "Sen. Charles “Chuck” Grassley [R-IA]",
+                "namemod": "",
+                "nickname": "Chuck",
+                "osid": "N00001758",
+                "pvsid": "53293",
+                "sortname": "Grassley, Charles “Chuck” (Sen.) [R-IA]",
+                "twitterid": "ChuckGrassley",
+                "youtubeid": "senchuckgrassley"
+            },
+            "phone": "202-224-3744",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "IA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.grassley.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Vermont",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "437 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.leahy.senate.gov/contact/",
+                "fax": "202-224-3479",
+                "office": "437 Russell Senate Office Building",
+                "rss_url": "http://www.leahy.senate.gov/rss/feeds/press/"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "L000174",
+                "birthday": "1940-03-31",
+                "cspanid": 1552,
+                "firstname": "Patrick",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Leahy",
+                "link": "https://www.govtrack.us/congress/members/patrick_leahy/300065",
+                "middlename": "J.",
+                "name": "Sen. Patrick Leahy [D-VT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009918",
+                "pvsid": "53353",
+                "sortname": "Leahy, Patrick (Sen.) [D-VT]",
+                "twitterid": "SenatorLeahy",
+                "youtubeid": "SenatorPatrickLeahy"
+            },
+            "phone": "202-224-4242",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "VT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.leahy.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Alaska",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "522 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.murkowski.senate.gov/public/index.cfm/contact",
+                "fax": "202-224-5301",
+                "office": "522 Hart Senate Office Building",
+                "rss_url": "http://www.murkowski.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "M001153",
+                "birthday": "1957-05-22",
+                "cspanid": 1004138,
+                "firstname": "Lisa",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Murkowski",
+                "link": "https://www.govtrack.us/congress/members/lisa_murkowski/300075",
+                "middlename": "A.",
+                "name": "Sen. Lisa Murkowski [R-AK]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00026050",
+                "pvsid": "15841",
+                "sortname": "Murkowski, Lisa (Sen.) [R-AK]",
+                "twitterid": "LisaMurkowski",
+                "youtubeid": "senatormurkowski"
+            },
+            "phone": "202-224-6665",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "AK",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.murkowski.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Washington",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "154 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.murray.senate.gov/public/index.cfm/contactme",
+                "fax": "202-224-0238",
+                "office": "154 Russell Senate Office Building",
+                "rss_url": "http://www.murray.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "M001111",
+                "birthday": "1950-10-11",
+                "cspanid": 25277,
+                "firstname": "Patty",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Murray",
+                "link": "https://www.govtrack.us/congress/members/patty_murray/300076",
+                "middlename": "",
+                "name": "Sen. Patty Murray [D-WA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00007876",
+                "pvsid": "53358",
+                "sortname": "Murray, Patty (Sen.) [D-WA]",
+                "twitterid": "PattyMurray",
+                "youtubeid": "SenatorPattyMurray"
+            },
+            "phone": "202-224-2621",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "WA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.murray.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for New York",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "322 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.schumer.senate.gov/contact/email-chuck",
+                "fax": "202-228-3027",
+                "office": "322 Hart Senate Office Building"
+            },
+            "leadership_title": "Minority Leader",
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "S000148",
+                "birthday": "1950-11-23",
+                "cspanid": 5929,
+                "firstname": "Charles",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Schumer",
+                "link": "https://www.govtrack.us/congress/members/charles_schumer/300087",
+                "middlename": "E.",
+                "name": "Sen. Charles “Chuck” Schumer [D-NY]",
+                "namemod": "",
+                "nickname": "Chuck",
+                "osid": "N00001093",
+                "pvsid": "26976",
+                "sortname": "Schumer, Charles “Chuck” (Sen.) [D-NY]",
+                "twitterid": "SenSchumer",
+                "youtubeid": "SenatorSchumer"
+            },
+            "phone": "202-224-6542",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "NY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.schumer.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Alabama",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "304 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.shelby.senate.gov/public/index.cfm/emailsenatorshelby",
+                "fax": "202-224-3416",
+                "office": "304 Russell Senate Office Building",
+                "rss_url": "http://www.shelby.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "S000320",
+                "birthday": "1934-05-06",
+                "cspanid": 1859,
+                "firstname": "Richard",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Shelby",
+                "link": "https://www.govtrack.us/congress/members/richard_shelby/300089",
+                "middlename": "C.",
+                "name": "Sen. Richard Shelby [R-AL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00009920",
+                "pvsid": "53266",
+                "sortname": "Shelby, Richard (Sen.) [R-AL]",
+                "twitterid": "SenShelby",
+                "youtubeid": "SenatorRichardShelby"
+            },
+            "phone": "202-224-5744",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "AL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.shelby.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Oregon",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "221 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.wyden.senate.gov/contact/",
+                "fax": "202-228-2717",
+                "office": "221 Dirksen Senate Office Building",
+                "rss_url": "http://www.wyden.senate.gov/rss/feeds/?type=all&amp;"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "W000779",
+                "birthday": "1949-05-03",
+                "cspanid": 1962,
+                "firstname": "Ron",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Wyden",
+                "link": "https://www.govtrack.us/congress/members/ron_wyden/300100",
+                "middlename": "",
+                "name": "Sen. Ron Wyden [D-OR]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00007724",
+                "pvsid": "27036",
+                "sortname": "Wyden, Ron (Sen.) [D-OR]",
+                "twitterid": "RonWyden",
+                "youtubeid": "senronwyden"
+            },
+            "phone": "202-224-5244",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "OR",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.wyden.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Missouri",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "260 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.blunt.senate.gov/public/index.cfm/contact-roy",
+                "fax": "202-224-8149",
+                "office": "260 Russell Senate Office Building",
+                "rss_url": "http://www.blunt.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "B000575",
+                "birthday": "1950-01-10",
+                "cspanid": 45465,
+                "firstname": "Roy",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Blunt",
+                "link": "https://www.govtrack.us/congress/members/roy_blunt/400034",
+                "middlename": "",
+                "name": "Sen. Roy Blunt [R-MO]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00005195",
+                "pvsid": "418",
+                "sortname": "Blunt, Roy (Sen.) [R-MO]",
+                "twitterid": "RoyBlunt",
+                "youtubeid": "SenatorBlunt"
+            },
+            "phone": "202-224-5721",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "MO",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.blunt.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Arkansas",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "141 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.boozman.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-1371",
+                "office": "141 Hart Senate Office Building",
+                "rss_url": "http://www.boozman.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "B001236",
+                "birthday": "1950-12-10",
+                "cspanid": 92069,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Boozman",
+                "link": "https://www.govtrack.us/congress/members/john_boozman/400040",
+                "middlename": "",
+                "name": "Sen. John Boozman [R-AR]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00013873",
+                "pvsid": "27958",
+                "sortname": "Boozman, John (Sen.) [R-AR]",
+                "twitterid": "JohnBoozman",
+                "youtubeid": "BoozmanPressOffice"
+            },
+            "phone": "202-224-4843",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "AR",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.boozman.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for North Carolina",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "217 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.burr.senate.gov/contact/email",
+                "fax": "202-228-2981",
+                "office": "217 Russell Senate Office Building",
+                "rss_url": "http://www.burr.senate.gov/public/index.cfm?fuseaction=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "B001135",
+                "birthday": "1955-11-30",
+                "cspanid": 31054,
+                "firstname": "Richard",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Burr",
+                "link": "https://www.govtrack.us/congress/members/richard_burr/400054",
+                "middlename": "M.",
+                "name": "Sen. Richard Burr [R-NC]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00002221",
+                "pvsid": "21787",
+                "sortname": "Burr, Richard (Sen.) [R-NC]",
+                "twitterid": "SenatorBurr",
+                "youtubeid": "SenatorRichardBurr"
+            },
+            "phone": "202-224-3154",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "NC",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.burr.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Georgia",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "131 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.isakson.senate.gov/public/index.cfm/email-me",
+                "fax": "202-228-0724",
+                "office": "131 Russell Senate Office Building",
+                "rss_url": "http://www.isakson.senate.gov/public/?a=RSS.Feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "I000055",
+                "birthday": "1944-12-28",
+                "cspanid": 59135,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Isakson",
+                "link": "https://www.govtrack.us/congress/members/john_isakson/400194",
+                "middlename": "H.",
+                "name": "Sen. John “Johnny” Isakson [R-GA]",
+                "namemod": "",
+                "nickname": "Johnny",
+                "osid": "N00002593",
+                "pvsid": "1721",
+                "sortname": "Isakson, John “Johnny” (Sen.) [R-GA]",
+                "twitterid": "SenatorIsakson",
+                "youtubeid": "SenatorIsakson"
+            },
+            "phone": "202-224-3643",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "GA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.isakson.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Kansas",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "521 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.moran.senate.gov/public/index.cfm/e-mail-jerry",
+                "fax": "202-228-6966",
+                "office": "521 Dirksen Senate Office Building",
+                "rss_url": "http://www.moran.senate.gov/public/index.cfm/rss/feed/"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "M000934",
+                "birthday": "1954-05-29",
+                "cspanid": 45469,
+                "firstname": "Jerry",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Moran",
+                "link": "https://www.govtrack.us/congress/members/jerry_moran/400284",
+                "middlename": "",
+                "name": "Sen. Jerry Moran [R-KS]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00005282",
+                "pvsid": "542",
+                "sortname": "Moran, Jerry (Sen.) [R-KS]",
+                "twitterid": "JerryMoran",
+                "youtubeid": "senatorjerrymoran"
+            },
+            "phone": "202-224-6521",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "KS",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.moran.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Ohio",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "448 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.portman.senate.gov/public/index.cfm/contact?p=contact-form",
+                "office": "448 Russell Senate Office Building",
+                "rss_url": "http://www.portman.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "P000449",
+                "birthday": "1955-12-19",
+                "cspanid": 31819,
+                "firstname": "Robert",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Portman",
+                "link": "https://www.govtrack.us/congress/members/robert_portman/400325",
+                "middlename": "J.",
+                "name": "Sen. Robert “Rob” Portman [R-OH]",
+                "namemod": "",
+                "nickname": "Rob",
+                "osid": "N00003682",
+                "pvsid": "27008",
+                "sortname": "Portman, Robert “Rob” (Sen.) [R-OH]",
+                "twitterid": "SenRobPortman",
+                "youtubeid": "SenRobPortman"
+            },
+            "phone": "202-224-3353",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "OH",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.portman.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Pennsylvania",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "248 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.toomey.senate.gov/?p=contact",
+                "fax": "202-228-0284",
+                "office": "248 Russell Senate Office Building",
+                "rss_url": "http://toomey.senate.gov/rss/?p=hot_topic"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "T000461",
+                "birthday": "1961-11-17",
+                "cspanid": 7958,
+                "firstname": "Patrick",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Toomey",
+                "link": "https://www.govtrack.us/congress/members/patrick_toomey/400408",
+                "middlename": "J.",
+                "name": "Sen. Patrick “Pat” Toomey [R-PA]",
+                "namemod": "",
+                "nickname": "Pat",
+                "osid": "N00001489",
+                "pvsid": "24096",
+                "sortname": "Toomey, Patrick “Pat” (Sen.) [R-PA]",
+                "twitterid": "SenToomey",
+                "youtubeid": "sentoomey"
+            },
+            "phone": "202-224-4254",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "PA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.toomey.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Maryland",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "110 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.vanhollen.senate.gov/contact/email",
+                "fax": "202-225-0375",
+                "office": "110 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "V000128",
+                "birthday": "1959-01-10",
+                "cspanid": 20756,
+                "firstname": "Chris",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Van Hollen",
+                "link": "https://www.govtrack.us/congress/members/chris_van_hollen/400415",
+                "middlename": "",
+                "name": "Sen. Chris Van Hollen [D-MD]",
+                "namemod": "Jr.",
+                "nickname": "",
+                "osid": "N00013820",
+                "pvsid": "6098",
+                "sortname": "Van Hollen, Chris (Sen.) [D-MD]",
+                "twitterid": "ChrisVanHollen",
+                "youtubeid": "RepChrisVanHollen"
+            },
+            "phone": "202-224-4654",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "MD",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.vanhollen.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for South Dakota",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "511 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.thune.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-5429",
+                "office": "511 Dirksen Senate Office Building",
+                "rss_url": "http://www.thune.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "T000250",
+                "birthday": "1961-01-07",
+                "cspanid": 45552,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Thune",
+                "link": "https://www.govtrack.us/congress/members/john_thune/400546",
+                "middlename": "",
+                "name": "Sen. John Thune [R-SD]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00004572",
+                "pvsid": "398",
+                "sortname": "Thune, John (Sen.) [R-SD]",
+                "twitterid": "SenJohnThune",
+                "youtubeid": "johnthune"
+            },
+            "phone": "202-224-2321",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "SD",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.thune.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Colorado",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "261 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.bennet.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-5097",
+                "office": "261 Russell Senate Office Building",
+                "rss_url": "http://www.bennet.senate.gov/rss/feeds/?type=news"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "B001267",
+                "birthday": "1964-11-28",
+                "cspanid": 1031622,
+                "firstname": "Michael",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Bennet",
+                "link": "https://www.govtrack.us/congress/members/michael_bennet/412330",
+                "middlename": "F.",
+                "name": "Sen. Michael Bennet [D-CO]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030608",
+                "pvsid": "110942",
+                "sortname": "Bennet, Michael (Sen.) [D-CO]",
+                "twitterid": "SenBennetCo",
+                "youtubeid": "SenatorBennet"
+            },
+            "phone": "202-224-5852",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "CO",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.bennet.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Indiana",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "400 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.young.senate.gov/contact",
+                "fax": "202-226-6866",
+                "office": "400 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "Y000064",
+                "birthday": "1972-08-24",
+                "cspanid": 1033743,
+                "firstname": "Todd",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Young",
+                "link": "https://www.govtrack.us/congress/members/todd_young/412428",
+                "middlename": "C.",
+                "name": "Sen. Todd Young [R-IN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030670",
+                "pvsid": "120345",
+                "sortname": "Young, Todd (Sen.) [R-IN]",
+                "twitterid": "SenToddYoung",
+                "youtubeid": "RepToddYoung"
+            },
+            "phone": "202-224-5623",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "IN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.young.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Oklahoma",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "316 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.lankford.senate.gov/contact/email",
+                "office": "316 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "L000575",
+                "birthday": "1968-03-04",
+                "cspanid": 1033847,
+                "firstname": "James",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Lankford",
+                "link": "https://www.govtrack.us/congress/members/james_lankford/412464",
+                "middlename": "",
+                "name": "Sen. James Lankford [R-OK]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031129",
+                "pvsid": "124938",
+                "sortname": "Lankford, James (Sen.) [R-OK]",
+                "twitterid": "SenatorLankford",
+                "youtubeid": "SenatorLankford"
+            },
+            "phone": "202-224-5754",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "OK",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.lankford.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for South Carolina",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "717 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.scott.senate.gov/contact/email-me",
+                "fax": "202-225-3407",
+                "office": "717 Hart Senate Office Building",
+                "rss_url": "http://www.scott.senate.gov/rss.xml"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "S001184",
+                "birthday": "1965-09-19",
+                "cspanid": 623506,
+                "firstname": "Tim",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Scott",
+                "link": "https://www.govtrack.us/congress/members/tim_scott/412471",
+                "middlename": "",
+                "name": "Sen. Tim Scott [R-SC]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031782",
+                "pvsid": "11940",
+                "sortname": "Scott, Tim (Sen.) [R-SC]",
+                "twitterid": "SenatorTimScott",
+                "youtubeid": "SenatorTimScott"
+            },
+            "phone": "202-224-6121",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "SC",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.scott.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Connecticut",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "706 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.blumenthal.senate.gov/contact/",
+                "fax": "202-224-9673",
+                "office": "706 Hart Senate Office Building",
+                "rss_url": "http://www.blumenthal.senate.gov/rss/feeds/?type=all"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "B001277",
+                "birthday": "1946-02-13",
+                "cspanid": 21799,
+                "firstname": "Richard",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Blumenthal",
+                "link": "https://www.govtrack.us/congress/members/richard_blumenthal/412490",
+                "middlename": "",
+                "name": "Sen. Richard Blumenthal [D-CT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031685",
+                "pvsid": "1568",
+                "sortname": "Blumenthal, Richard (Sen.) [D-CT]",
+                "twitterid": "SenBlumenthal",
+                "youtubeid": "SenatorBlumenthal"
+            },
+            "phone": "202-224-2823",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "CT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.blumenthal.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Florida",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "284 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.rubio.senate.gov/public/index.cfm/contact",
+                "fax": "202-228-0285",
+                "office": "284 Russell Senate Office Building",
+                "rss_url": "http://www.rubio.senate.gov/public/?a=rss.feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "R000595",
+                "birthday": "1971-05-28",
+                "cspanid": 87599,
+                "firstname": "Marco",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Rubio",
+                "link": "https://www.govtrack.us/congress/members/marco_rubio/412491",
+                "middlename": "",
+                "name": "Sen. Marco Rubio [R-FL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030612",
+                "pvsid": "1601",
+                "sortname": "Rubio, Marco (Sen.) [R-FL]",
+                "twitterid": "SenRubioPress",
+                "youtubeid": "SenatorMarcoRubio"
+            },
+            "phone": "202-224-3041",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "FL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.rubio.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Kentucky",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "167 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.paul.senate.gov/connect/email-rand",
+                "fax": "202-228-1373",
+                "office": "167 Russell Senate Office Building",
+                "rss_url": "http://paul.senate.gov/rss/?p=news"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "P000603",
+                "birthday": "1963-01-07",
+                "cspanid": 9265241,
+                "firstname": "Rand",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Paul",
+                "link": "https://www.govtrack.us/congress/members/rand_paul/412492",
+                "middlename": "",
+                "name": "Sen. Rand Paul [R-KY]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00030836",
+                "pvsid": "117285",
+                "sortname": "Paul, Rand (Sen.) [R-KY]",
+                "twitterid": "RandPaul",
+                "youtubeid": "SenatorRandPaul"
+            },
+            "phone": "202-224-4343",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "KY",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.paul.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for North Dakota",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "338 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "http://www.hoeven.senate.gov/public/index.cfm/email-the-senator",
+                "fax": "202-224-7999",
+                "office": "338 Russell Senate Office Building",
+                "rss_url": "http://www.hoeven.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "H001061",
+                "birthday": "1957-03-13",
+                "cspanid": 85233,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Hoeven",
+                "link": "https://www.govtrack.us/congress/members/john_hoeven/412494",
+                "middlename": "",
+                "name": "Sen. John Hoeven [R-ND]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031688",
+                "pvsid": "41788",
+                "sortname": "Hoeven, John (Sen.) [R-ND]",
+                "twitterid": "SenJohnHoeven",
+                "youtubeid": "senatorjohnhoevennd"
+            },
+            "phone": "202-224-2551",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "ND",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.hoeven.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Utah",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "361A Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.lee.senate.gov/public/index.cfm/contact",
+                "office": "361a Russell Senate Office Building",
+                "rss_url": "http://www.lee.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "L000577",
+                "birthday": "1971-06-04",
+                "cspanid": 9267977,
+                "firstname": "Mike",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Lee",
+                "link": "https://www.govtrack.us/congress/members/mike_lee/412495",
+                "middlename": "",
+                "name": "Sen. Mike Lee [R-UT]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00031696",
+                "pvsid": "66395",
+                "sortname": "Lee, Mike (Sen.) [R-UT]",
+                "twitterid": "SenMikeLee",
+                "youtubeid": "senatormikelee"
+            },
+            "phone": "202-224-5444",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "UT",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.lee.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Wisconsin",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "328 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.ronjohnson.senate.gov/public/index.cfm/email-the-senator",
+                "fax": "920-230-7262",
+                "office": "328 Hart Senate Office Building",
+                "rss_url": "http://www.ronjohnson.senate.gov/public/index.cfm/rss/feed"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "J000293",
+                "birthday": "1955-04-08",
+                "cspanid": 62835,
+                "firstname": "Ron",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Johnson",
+                "link": "https://www.govtrack.us/congress/members/ron_johnson/412496",
+                "middlename": "",
+                "name": "Sen. Ron Johnson [R-WI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00032546",
+                "pvsid": "126217",
+                "sortname": "Johnson, Ron (Sen.) [R-WI]",
+                "twitterid": "SenRonJohnson",
+                "youtubeid": "SenatorRonJohnson"
+            },
+            "phone": "202-224-5323",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "WI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.ronjohnson.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Senior Senator for Hawaii",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "722 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.schatz.senate.gov/contact",
+                "fax": "202-228-1153",
+                "office": "722 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "S001194",
+                "birthday": "1972-10-20",
+                "cspanid": 87784,
+                "firstname": "Brian",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Schatz",
+                "link": "https://www.govtrack.us/congress/members/brian_schatz/412507",
+                "middlename": "Emanuel",
+                "name": "Sen. Brian Schatz [D-HI]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00028138",
+                "pvsid": "17852",
+                "sortname": "Schatz, Brian (Sen.) [D-HI]",
+                "twitterid": "SenBrianSchatz",
+                "youtubeid": "senbrianschatz"
+            },
+            "phone": "202-224-3934",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "senior",
+            "senator_rank_label": "Senior",
+            "startdate": "2017-01-03",
+            "state": "HI",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.schatz.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Illinois",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "524 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.duckworth.senate.gov/content/contact-senator",
+                "office": "524 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "D000622",
+                "birthday": "1968-03-12",
+                "cspanid": 94484,
+                "firstname": "Tammy",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Duckworth",
+                "link": "https://www.govtrack.us/congress/members/tammy_duckworth/412533",
+                "middlename": "",
+                "name": "Sen. Tammy Duckworth [D-IL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00027860",
+                "pvsid": "57442",
+                "sortname": "Duckworth, Tammy (Sen.) [D-IL]",
+                "twitterid": "SenDuckworth",
+                "youtubeid": "repduckworth"
+            },
+            "phone": "202-224-2854",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "IL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.duckworth.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for California",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "112 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.harris.senate.gov/contact",
+                "office": "112 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "H001075",
+                "birthday": "1964-10-20",
+                "cspanid": 1018696,
+                "firstname": "Kamala",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Harris",
+                "link": "https://www.govtrack.us/congress/members/kamala_harris/412678",
+                "middlename": "",
+                "name": "Sen. Kamala Harris [D-CA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00036915",
+                "pvsid": "120012",
+                "sortname": "Harris, Kamala (Sen.) [D-CA]",
+                "twitterid": "SenKamalaHarris",
+                "youtubeid": null
+            },
+            "phone": "202-224-3553",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "CA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.harris.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Louisiana",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "383 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.kennedy.senate.gov/public/email-me",
+                "office": "383 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "K000393",
+                "birthday": "1951-11-21",
+                "cspanid": 1011723,
+                "firstname": "John",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Kennedy",
+                "link": "https://www.govtrack.us/congress/members/john_kennedy/412679",
+                "middlename": "Neely",
+                "name": "Sen. John Kennedy [R-LA]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00026823",
+                "pvsid": "35496",
+                "sortname": "Kennedy, John (Sen.) [R-LA]",
+                "twitterid": "SenJohnKennedy",
+                "youtubeid": null
+            },
+            "phone": "202-224-4623",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "LA",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.kennedy.senate.gov/public"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for New Hampshire",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "330 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.hassan.senate.gov/content/contact-senator",
+                "office": "330 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "H001076",
+                "birthday": "1958-02-27",
+                "cspanid": 67481,
+                "firstname": "Margaret",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Hassan",
+                "link": "https://www.govtrack.us/congress/members/margaret_hassan/412680",
+                "middlename": "Wood",
+                "name": "Sen. Margaret “Maggie” Hassan [D-NH]",
+                "namemod": "",
+                "nickname": "Maggie",
+                "osid": "N00038397",
+                "pvsid": "42552",
+                "sortname": "Hassan, Margaret “Maggie” (Sen.) [D-NH]",
+                "twitterid": "Senatorhassan",
+                "youtubeid": null
+            },
+            "phone": "202-224-3324",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "NH",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.hassan.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116,
+                117
+            ],
+            "current": true,
+            "description": "Junior Senator for Nevada",
+            "district": null,
+            "enddate": "2023-01-03",
+            "extra": {
+                "address": "204 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.cortezmasto.senate.gov/contact",
+                "office": "204 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "C001113",
+                "birthday": "1964-03-29",
+                "cspanid": 105698,
+                "firstname": "Catherine",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Cortez Masto",
+                "link": "https://www.govtrack.us/congress/members/catherine_cortez_masto/412681",
+                "middlename": "",
+                "name": "Sen. Catherine Cortez Masto [D-NV]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00037161",
+                "pvsid": "69579",
+                "sortname": "Cortez Masto, Catherine (Sen.) [D-NV]",
+                "twitterid": "sencortezmasto",
+                "youtubeid": null
+            },
+            "phone": "202-224-3542",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2017-01-03",
+            "state": "NV",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.cortezmasto.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Alabama",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "326 Russell Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.jones.senate.gov/content/contact-senator",
+                "office": "326 Russell Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "J000300",
+                "birthday": "1954-05-04",
+                "cspanid": 1024592,
+                "firstname": "Doug",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Jones",
+                "link": "https://www.govtrack.us/congress/members/doug_jones/412741",
+                "middlename": "",
+                "name": "Sen. Doug Jones [D-AL]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00024817",
+                "pvsid": "176464",
+                "sortname": "Jones, Doug (Sen.) [D-AL]",
+                "twitterid": "sendougjones",
+                "youtubeid": null
+            },
+            "phone": "202-224-4124",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2018-01-03",
+            "state": "AL",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.jones.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115
+            ],
+            "current": true,
+            "description": "Junior Senator for Mississippi",
+            "district": null,
+            "enddate": "2018-11-27",
+            "extra": {
+                "address": "G12 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.hydesmith.senate.gov/content/contact-senator",
+                "end-type": "special-election",
+                "how": "appointment",
+                "office": "G12 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "H001079",
+                "birthday": "1959-05-10",
+                "cspanid": null,
+                "firstname": "Cindy",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Hyde-Smith",
+                "link": "https://www.govtrack.us/congress/members/cindy_hyde_smith/412743",
+                "middlename": "",
+                "name": "Sen. Cindy Hyde-Smith [R-MS]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00043298",
+                "pvsid": null,
+                "sortname": "Hyde-Smith, Cindy (Sen.) [R-MS]",
+                "twitterid": "SenHydeSmith",
+                "youtubeid": null
+            },
+            "phone": "202-224-5054",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2018-04-09",
+            "state": "MS",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.hydesmith.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Arizona",
+            "district": null,
+            "enddate": "2020-11-03",
+            "extra": {
+                "address": "G12 Dirksen Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.kyl.senate.gov/content/contact-senator-kyl",
+                "end-type": "special-election",
+                "fax": "202-228-2862",
+                "how": "appointment",
+                "office": "G12 Dirksen Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Republican",
+            "person": {
+                "bioguideid": "K000352",
+                "birthday": "1942-04-25",
+                "cspanid": null,
+                "firstname": "Jon",
+                "gender": "male",
+                "gender_label": "Male",
+                "lastname": "Kyl",
+                "link": "https://www.govtrack.us/congress/members/jon_kyl/300062",
+                "middlename": "",
+                "name": "Sen. Jon Kyl [R-AZ]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00006406",
+                "pvsid": "26721",
+                "sortname": "Kyl, Jon (Sen.) [R-AZ]",
+                "twitterid": null,
+                "youtubeid": null
+            },
+            "phone": "202-224-2235",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class3",
+            "senator_class_label": "Class 3",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2018-09-05",
+            "state": "AZ",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.kyl.senate.gov"
+        },
+        {
+            "caucus": null,
+            "congress_numbers": [
+                115,
+                116
+            ],
+            "current": true,
+            "description": "Junior Senator for Minnesota",
+            "district": null,
+            "enddate": "2021-01-03",
+            "extra": {
+                "address": "309 Hart Senate Office Building Washington DC 20510",
+                "contact_form": "https://www.smith.senate.gov/content/contact-senator",
+                "office": "309 Hart Senate Office Building"
+            },
+            "leadership_title": null,
+            "party": "Democrat",
+            "person": {
+                "bioguideid": "S001203",
+                "birthday": "1958-03-04",
+                "cspanid": 111313,
+                "firstname": "Tina",
+                "gender": "female",
+                "gender_label": "Female",
+                "lastname": "Smith",
+                "link": "https://www.govtrack.us/congress/members/tina_smith/412742",
+                "middlename": "Flint",
+                "name": "Sen. Tina Smith [D-MN]",
+                "namemod": "",
+                "nickname": "",
+                "osid": "N00042353",
+                "pvsid": "152968",
+                "sortname": "Smith, Tina (Sen.) [D-MN]",
+                "twitterid": "SenTinaSmith",
+                "youtubeid": null
+            },
+            "phone": "202-224-5641",
+            "role_type": "senator",
+            "role_type_label": "Senator",
+            "senator_class": "class2",
+            "senator_class_label": "Class 2",
+            "senator_rank": "junior",
+            "senator_rank_label": "Junior",
+            "startdate": "2018-11-07",
+            "state": "MN",
+            "title": "Sen.",
+            "title_long": "Senator",
+            "website": "https://www.smith.senate.gov"
+        }
+    ]
+}

+ 5145 - 0
sample/sample_json_lines.json

@@ -0,0 +1,5145 @@
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Wisconsin",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "709 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.baldwin.senate.gov/feedback",
+        "fax": "202-225-6942",
+        "office": "709 Hart Senate Office Building",
+        "rss_url": "http://www.baldwin.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "B001230",
+        "birthday": "1962-02-11",
+        "cspanid": 57884,
+        "firstname": "Tammy",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Baldwin",
+        "link": "https://www.govtrack.us/congress/members/tammy_baldwin/400013",
+        "middlename": "",
+        "name": "Sen. Tammy Baldwin [D-WI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00004367",
+        "pvsid": "3470",
+        "sortname": "Baldwin, Tammy (Sen.) [D-WI]",
+        "twitterid": "SenatorBaldwin",
+        "youtubeid": "witammybaldwin"
+    },
+    "phone": "202-224-5653",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "WI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.baldwin.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Ohio",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "713 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.brown.senate.gov/contact/",
+        "fax": "202-228-6321",
+        "office": "713 Hart Senate Office Building",
+        "rss_url": "http://www.brown.senate.gov/rss/feeds/?type=all&amp;"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "B000944",
+        "birthday": "1952-11-09",
+        "cspanid": 5051,
+        "firstname": "Sherrod",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Brown",
+        "link": "https://www.govtrack.us/congress/members/sherrod_brown/400050",
+        "middlename": "",
+        "name": "Sen. Sherrod Brown [D-OH]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00003535",
+        "pvsid": "27018",
+        "sortname": "Brown, Sherrod (Sen.) [D-OH]",
+        "twitterid": "SenSherrodBrown",
+        "youtubeid": "SherrodBrownOhio"
+    },
+    "phone": "202-224-2315",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "OH",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.brown.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Maryland",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "509 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.cardin.senate.gov/contact/",
+        "fax": "202-224-1651",
+        "office": "509 Hart Senate Office Building",
+        "rss_url": "http://www.cardin.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C000141",
+        "birthday": "1943-10-05",
+        "cspanid": 4004,
+        "firstname": "Benjamin",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Cardin",
+        "link": "https://www.govtrack.us/congress/members/benjamin_cardin/400064",
+        "middlename": "L.",
+        "name": "Sen. Benjamin Cardin [D-MD]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00001955",
+        "pvsid": "26888",
+        "sortname": "Cardin, Benjamin (Sen.) [D-MD]",
+        "twitterid": "SenatorCardin",
+        "youtubeid": "senatorcardin"
+    },
+    "phone": "202-224-4524",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MD",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cardin.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Arizona",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "413 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.flake.senate.gov/public/index.cfm/contact-jeff",
+        "fax": "202-226-4386",
+        "office": "413 Russell Senate Office Building",
+        "rss_url": "http://www.flake.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "F000444",
+        "birthday": "1962-12-31",
+        "cspanid": 87582,
+        "firstname": "Jeff",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Flake",
+        "link": "https://www.govtrack.us/congress/members/jeff_flake/400134",
+        "middlename": "",
+        "name": "Sen. Jeff Flake [R-AZ]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009573",
+        "pvsid": "28128",
+        "sortname": "Flake, Jeff (Sen.) [R-AZ]",
+        "twitterid": "JeffFlake",
+        "youtubeid": "flakeoffice"
+    },
+    "phone": "202-224-4521",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "AZ",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.flake.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for New Jersey",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "528 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.menendez.senate.gov/contact",
+        "fax": "202-228-2197",
+        "office": "528 Hart Senate Office Building",
+        "rss_url": "http://www.menendez.senate.gov/rss/feeds/index.cfm?type=news"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M000639",
+        "birthday": "1954-01-01",
+        "cspanid": 29608,
+        "firstname": "Robert",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Menéndez",
+        "link": "https://www.govtrack.us/congress/members/robert_menendez/400272",
+        "middlename": "",
+        "name": "Sen. Robert “Bob” Menéndez [D-NJ]",
+        "namemod": "",
+        "nickname": "Bob",
+        "osid": "N00000699",
+        "pvsid": "26961",
+        "sortname": "Menéndez, Robert “Bob” (Sen.) [D-NJ]",
+        "twitterid": "SenatorMenendez",
+        "youtubeid": "SenatorMenendezNJ"
+    },
+    "phone": "202-224-4744",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "NJ",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.menendez.senate.gov"
+},
+{
+    "caucus": "Democrat",
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Vermont",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "332 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.sanders.senate.gov/contact/",
+        "fax": "202-228-0776",
+        "office": "332 Dirksen Senate Office Building",
+        "rss_url": "http://www.sanders.senate.gov/rss/"
+    },
+    "leadership_title": null,
+    "party": "Independent",
+    "person": {
+        "bioguideid": "S000033",
+        "birthday": "1941-09-08",
+        "cspanid": 994,
+        "firstname": "Bernard",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Sanders",
+        "link": "https://www.govtrack.us/congress/members/bernard_sanders/400357",
+        "middlename": "",
+        "name": "Sen. Bernard “Bernie” Sanders [I-VT]",
+        "namemod": "",
+        "nickname": "Bernie",
+        "osid": "N00000528",
+        "pvsid": "27110",
+        "sortname": "Sanders, Bernard “Bernie” (Sen.) [I-VT]",
+        "twitterid": "SenSanders",
+        "youtubeid": "senatorsanders"
+    },
+    "phone": "202-224-5141",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "VT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.sanders.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Washington",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "511 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.cantwell.senate.gov/public/index.cfm/email-maria",
+        "fax": "202-228-0514",
+        "office": "511 Hart Senate Office Building",
+        "rss_url": "http://www.cantwell.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C000127",
+        "birthday": "1958-10-13",
+        "cspanid": 26137,
+        "firstname": "Maria",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Cantwell",
+        "link": "https://www.govtrack.us/congress/members/maria_cantwell/300018",
+        "middlename": "",
+        "name": "Sen. Maria Cantwell [D-WA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00007836",
+        "pvsid": "27122",
+        "sortname": "Cantwell, Maria (Sen.) [D-WA]",
+        "twitterid": "SenatorCantwell",
+        "youtubeid": "SenatorCantwell"
+    },
+    "phone": "202-224-3441",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "WA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cantwell.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Delaware",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "513 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.carper.senate.gov/public/index.cfm/email-senator-carper",
+        "fax": "202-228-2190",
+        "office": "513 Hart Senate Office Building",
+        "rss_url": "http://www.carper.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C000174",
+        "birthday": "1947-01-23",
+        "cspanid": 663,
+        "firstname": "Thomas",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Carper",
+        "link": "https://www.govtrack.us/congress/members/thomas_carper/300019",
+        "middlename": "Richard",
+        "name": "Sen. Thomas Carper [D-DE]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00012508",
+        "pvsid": "22421",
+        "sortname": "Carper, Thomas (Sen.) [D-DE]",
+        "twitterid": "SenatorCarper",
+        "youtubeid": "senatorcarper"
+    },
+    "phone": "202-224-2441",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "DE",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.carper.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for California",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "331 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.feinstein.senate.gov/public/index.cfm/e-mail-me",
+        "fax": "202-228-3954",
+        "office": "331 Hart Senate Office Building",
+        "rss_url": "http://www.feinstein.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "F000062",
+        "birthday": "1933-06-22",
+        "cspanid": 13061,
+        "firstname": "Dianne",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Feinstein",
+        "link": "https://www.govtrack.us/congress/members/dianne_feinstein/300043",
+        "middlename": "",
+        "name": "Sen. Dianne Feinstein [D-CA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00007364",
+        "pvsid": "53273",
+        "sortname": "Feinstein, Dianne (Sen.) [D-CA]",
+        "twitterid": "SenFeinstein",
+        "youtubeid": "SenatorFeinstein"
+    },
+    "phone": "202-224-3841",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "CA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.feinstein.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Utah",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "104 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.hatch.senate.gov/public/index.cfm/contact?p=Email-Orrin",
+        "fax": "202-224-6331",
+        "office": "104 Hart Senate Office Building",
+        "rss_url": "http://www.hatch.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "H000338",
+        "birthday": "1934-03-22",
+        "cspanid": 189,
+        "firstname": "Orrin",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Hatch",
+        "link": "https://www.govtrack.us/congress/members/orrin_hatch/300052",
+        "middlename": "G.",
+        "name": "Sen. Orrin Hatch [R-UT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009869",
+        "pvsid": "53352",
+        "sortname": "Hatch, Orrin (Sen.) [R-UT]",
+        "twitterid": "SenOrrinHatch",
+        "youtubeid": "SenatorOrrinHatch"
+    },
+    "phone": "202-224-5251",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "UT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.hatch.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Florida",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "716 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.billnelson.senate.gov/contact-bill",
+        "fax": "202-228-2183",
+        "office": "716 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "N000032",
+        "birthday": "1942-09-29",
+        "cspanid": 1931,
+        "firstname": "Bill",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Nelson",
+        "link": "https://www.govtrack.us/congress/members/bill_nelson/300078",
+        "middlename": "",
+        "name": "Sen. Bill Nelson [D-FL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009926",
+        "pvsid": "1606",
+        "sortname": "Nelson, Bill (Sen.) [D-FL]",
+        "twitterid": "SenBillNelson",
+        "youtubeid": "senbillnelson"
+    },
+    "phone": "202-224-5274",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "FL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.billnelson.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Michigan",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "731 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.stabenow.senate.gov/contact",
+        "fax": "202-228-0325",
+        "office": "731 Hart Senate Office Building",
+        "rss_url": "http://stabenow.senate.gov/rss/?p=news"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "S000770",
+        "birthday": "1950-04-29",
+        "cspanid": 45451,
+        "firstname": "Debbie",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Stabenow",
+        "link": "https://www.govtrack.us/congress/members/debbie_stabenow/300093",
+        "middlename": "Ann",
+        "name": "Sen. Debbie Stabenow [D-MI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00004118",
+        "pvsid": "515",
+        "sortname": "Stabenow, Debbie (Sen.) [D-MI]",
+        "twitterid": "SenStabenow",
+        "youtubeid": "senatorstabenow"
+    },
+    "phone": "202-224-4822",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.stabenow.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Connecticut",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "136 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.murphy.senate.gov/contact",
+        "fax": "202-225-5933",
+        "office": "136 Hart Senate Office Building",
+        "rss_url": "http://www.theday.com/article/20121216/nws12/312169935/1069/rss"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M001169",
+        "birthday": "1973-08-03",
+        "cspanid": 1021270,
+        "firstname": "Christopher",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Murphy",
+        "link": "https://www.govtrack.us/congress/members/christopher_murphy/412194",
+        "middlename": "S.",
+        "name": "Sen. Christopher Murphy [D-CT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027566",
+        "pvsid": "17189",
+        "sortname": "Murphy, Christopher (Sen.) [D-CT]",
+        "twitterid": "senmurphyoffice",
+        "youtubeid": "senchrismurphy"
+    },
+    "phone": "202-224-4041",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "CT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.murphy.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Hawaii",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "730 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.hirono.senate.gov/contact",
+        "fax": "202-225-4987",
+        "office": "730 Hart Senate Office Building",
+        "rss_url": "http://www.hirono.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "H001042",
+        "birthday": "1947-11-03",
+        "cspanid": 91216,
+        "firstname": "Mazie",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Hirono",
+        "link": "https://www.govtrack.us/congress/members/mazie_hirono/412200",
+        "middlename": "K.",
+        "name": "Sen. Mazie Hirono [D-HI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00028139",
+        "pvsid": "1677",
+        "sortname": "Hirono, Mazie (Sen.) [D-HI]",
+        "twitterid": "MazieHirono",
+        "youtubeid": "CongresswomanHirono"
+    },
+    "phone": "202-224-6361",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "HI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.hirono.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Indiana",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "720 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.donnelly.senate.gov/contact/email-joe",
+        "fax": "202-225-6798",
+        "office": "720 Hart Senate Office Building",
+        "rss_url": "http://www.donnelly.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "D000607",
+        "birthday": "1955-09-28",
+        "cspanid": 1012000,
+        "firstname": "Joe",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Donnelly",
+        "link": "https://www.govtrack.us/congress/members/joe_donnelly/412205",
+        "middlename": "",
+        "name": "Sen. Joe Donnelly [D-IN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00026586",
+        "pvsid": "34212",
+        "sortname": "Donnelly, Joe (Sen.) [D-IN]",
+        "twitterid": "SenDonnelly",
+        "youtubeid": "sendonnelly"
+    },
+    "phone": "202-224-4814",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "IN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.donnelly.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Nevada",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "324 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.heller.senate.gov/public/index.cfm/contact-form",
+        "fax": "202-228-6753",
+        "office": "324 Hart Senate Office Building",
+        "rss_url": "http://www.heller.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "H001041",
+        "birthday": "1960-05-10",
+        "cspanid": 1012368,
+        "firstname": "Dean",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Heller",
+        "link": "https://www.govtrack.us/congress/members/dean_heller/412218",
+        "middlename": "",
+        "name": "Sen. Dean Heller [R-NV]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027522",
+        "pvsid": "2291",
+        "sortname": "Heller, Dean (Sen.) [R-NV]",
+        "twitterid": "SenDeanHeller",
+        "youtubeid": "SenDeanHeller"
+    },
+    "phone": "202-224-6244",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "NV",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.heller.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for New York",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "478 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.gillibrand.senate.gov/contact/email-me",
+        "fax": "202-228-0282",
+        "office": "478 Russell Senate Office Building",
+        "rss_url": "http://www.gillibrand.senate.gov/rss/"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "G000555",
+        "birthday": "1966-12-09",
+        "cspanid": 1022862,
+        "firstname": "Kirsten",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Gillibrand",
+        "link": "https://www.govtrack.us/congress/members/kirsten_gillibrand/412223",
+        "middlename": "E.",
+        "name": "Sen. Kirsten Gillibrand [D-NY]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027658",
+        "pvsid": "65147",
+        "sortname": "Gillibrand, Kirsten (Sen.) [D-NY]",
+        "twitterid": "SenGillibrand",
+        "youtubeid": "KirstenEGillibrand"
+    },
+    "phone": "202-224-4451",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "NY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.gillibrand.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Minnesota",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "302 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.klobuchar.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-2186",
+        "office": "302 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "K000367",
+        "birthday": "1960-05-25",
+        "cspanid": 83701,
+        "firstname": "Amy",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Klobuchar",
+        "link": "https://www.govtrack.us/congress/members/amy_klobuchar/412242",
+        "middlename": "Jean",
+        "name": "Sen. Amy Klobuchar [D-MN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027500",
+        "pvsid": "65092",
+        "sortname": "Klobuchar, Amy (Sen.) [D-MN]",
+        "twitterid": "SenAmyKlobuchar",
+        "youtubeid": "senatorklobuchar"
+    },
+    "phone": "202-224-3244",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.klobuchar.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Missouri",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "503 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.mccaskill.senate.gov/contact",
+        "fax": "202-228-6326",
+        "office": "503 Hart Senate Office Building",
+        "rss_url": "http://mccaskill.senate.gov/rss/?p=news"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M001170",
+        "birthday": "1953-07-24",
+        "cspanid": 44501,
+        "firstname": "Claire",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "McCaskill",
+        "link": "https://www.govtrack.us/congress/members/claire_mccaskill/412243",
+        "middlename": "",
+        "name": "Sen. Claire McCaskill [D-MO]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027694",
+        "pvsid": "2109",
+        "sortname": "McCaskill, Claire (Sen.) [D-MO]",
+        "twitterid": "McCaskillOffice",
+        "youtubeid": "SenatorMcCaskill"
+    },
+    "phone": "202-224-6154",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MO",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.mccaskill.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Montana",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "311 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.tester.senate.gov/?p=email_senator",
+        "fax": "202-224-8594",
+        "office": "311 Hart Senate Office Building",
+        "rss_url": "http://www.tester.senate.gov/rss/?p=hot_topic"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "T000464",
+        "birthday": "1956-08-21",
+        "cspanid": 1020176,
+        "firstname": "Jon",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Tester",
+        "link": "https://www.govtrack.us/congress/members/jon_tester/412244",
+        "middlename": "",
+        "name": "Sen. Jon Tester [D-MT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027605",
+        "pvsid": "20928",
+        "sortname": "Tester, Jon (Sen.) [D-MT]",
+        "twitterid": "SenatorTester",
+        "youtubeid": "senatorjontester"
+    },
+    "phone": "202-224-2644",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.tester.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Pennsylvania",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "393 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.casey.senate.gov/contact/",
+        "fax": "202-228-0604",
+        "office": "393 Russell Senate Office Building",
+        "rss_url": "http://www.casey.senate.gov/rss/feeds/?all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C001070",
+        "birthday": "1960-04-13",
+        "cspanid": 47036,
+        "firstname": "Robert",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Casey",
+        "link": "https://www.govtrack.us/congress/members/robert_casey/412246",
+        "middlename": "P.",
+        "name": "Sen. Robert “Bob” Casey [D-PA]",
+        "namemod": "Jr.",
+        "nickname": "Bob",
+        "osid": "N00027503",
+        "pvsid": "2541",
+        "sortname": "Casey, Robert “Bob” (Sen.) [D-PA]",
+        "twitterid": "SenBobCasey",
+        "youtubeid": "SenatorBobCasey"
+    },
+    "phone": "202-224-6324",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "PA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.casey.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Rhode Island",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "530 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.whitehouse.senate.gov/contact/email-sheldon",
+        "fax": "202-228-6362",
+        "office": "530 Hart Senate Office Building",
+        "rss_url": "http://www.whitehouse.senate.gov/rss/feeds/?type=all&amp;cachebuster=1"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "W000802",
+        "birthday": "1955-10-20",
+        "cspanid": 92235,
+        "firstname": "Sheldon",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Whitehouse",
+        "link": "https://www.govtrack.us/congress/members/sheldon_whitehouse/412247",
+        "middlename": "",
+        "name": "Sen. Sheldon Whitehouse [D-RI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027533",
+        "pvsid": "2572",
+        "sortname": "Whitehouse, Sheldon (Sen.) [D-RI]",
+        "twitterid": "SenWhitehouse",
+        "youtubeid": "SenatorWhitehouse"
+    },
+    "phone": "202-224-2921",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "RI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.whitehouse.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Tennessee",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "425 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.corker.senate.gov/public/index.cfm/emailme",
+        "fax": "202-228-0566",
+        "office": "425 Dirksen Senate Office Building",
+        "rss_url": "http://www.corker.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001071",
+        "birthday": "1952-08-24",
+        "cspanid": 1021114,
+        "firstname": "Bob",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Corker",
+        "link": "https://www.govtrack.us/congress/members/bob_corker/412248",
+        "middlename": "",
+        "name": "Sen. Bob Corker [R-TN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027441",
+        "pvsid": "65905",
+        "sortname": "Corker, Bob (Sen.) [R-TN]",
+        "twitterid": "SenBobCorker",
+        "youtubeid": "senatorcorker"
+    },
+    "phone": "202-224-3344",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "TN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.corker.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Wyoming",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "307 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.barrasso.senate.gov/public/index.cfm/contact-form",
+        "fax": "202-224-1724",
+        "office": "307 Dirksen Senate Office Building",
+        "rss_url": "http://www.barrasso.senate.gov/public/index.cfm?FuseAction=Rss.Feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "B001261",
+        "birthday": "1952-07-21",
+        "cspanid": 1024777,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Barrasso",
+        "link": "https://www.govtrack.us/congress/members/john_barrasso/412251",
+        "middlename": "A.",
+        "name": "Sen. John Barrasso [R-WY]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00006236",
+        "pvsid": "52662",
+        "sortname": "Barrasso, John (Sen.) [R-WY]",
+        "twitterid": "SenJohnBarrasso",
+        "youtubeid": "barrassowyo"
+    },
+    "phone": "202-224-6441",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "WY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.barrasso.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for New Mexico",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "303 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.heinrich.senate.gov/contact",
+        "fax": "202-225-4975",
+        "office": "303 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "H001046",
+        "birthday": "1971-10-17",
+        "cspanid": 1030686,
+        "firstname": "Martin",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Heinrich",
+        "link": "https://www.govtrack.us/congress/members/martin_heinrich/412281",
+        "middlename": "",
+        "name": "Sen. Martin Heinrich [D-NM]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00029835",
+        "pvsid": "74517",
+        "sortname": "Heinrich, Martin (Sen.) [D-NM]",
+        "twitterid": "MartinHeinrich",
+        "youtubeid": "SenMartinHeinrich"
+    },
+    "phone": "202-224-5521",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "NM",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.heinrich.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for West Virginia",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "306 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.manchin.senate.gov/public/index.cfm/contact-form",
+        "fax": "202-228-0002",
+        "office": "306 Hart Senate Office Building",
+        "rss_url": "http://www.manchin.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M001183",
+        "birthday": "1947-08-24",
+        "cspanid": 62864,
+        "firstname": "Joe",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Manchin",
+        "link": "https://www.govtrack.us/congress/members/joe_manchin/412391",
+        "middlename": "",
+        "name": "Sen. Joe Manchin [D-WV]",
+        "namemod": "III",
+        "nickname": "",
+        "osid": "N00032838",
+        "pvsid": "7547",
+        "sortname": "Manchin, Joe (Sen.) [D-WV]",
+        "twitterid": "Sen_JoeManchin",
+        "youtubeid": "SenatorJoeManchin"
+    },
+    "phone": "202-224-3954",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "WV",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.manchin.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Massachusetts",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "317 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.warren.senate.gov/?p=email_senator",
+        "fax": "202-228-2072",
+        "office": "317 Hart Senate Office Building",
+        "rss_url": "http://www.warren.senate.gov/rss/?p=hot_topic"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "W000817",
+        "birthday": "1949-06-22",
+        "cspanid": 1023023,
+        "firstname": "Elizabeth",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Warren",
+        "link": "https://www.govtrack.us/congress/members/elizabeth_warren/412542",
+        "middlename": "",
+        "name": "Sen. Elizabeth Warren [D-MA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033492",
+        "pvsid": "141272",
+        "sortname": "Warren, Elizabeth (Sen.) [D-MA]",
+        "twitterid": "SenWarren",
+        "youtubeid": "senelizabethwarren"
+    },
+    "phone": "202-224-4543",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.warren.senate.gov"
+},
+{
+    "caucus": "Democrat",
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Maine",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "133 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.king.senate.gov/contact",
+        "fax": "202-224-1946",
+        "office": "133 Hart Senate Office Building",
+        "rss_url": "http://www.king.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Independent",
+    "person": {
+        "bioguideid": "K000383",
+        "birthday": "1944-03-31",
+        "cspanid": 37413,
+        "firstname": "Angus",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "King",
+        "link": "https://www.govtrack.us/congress/members/angus_king/412545",
+        "middlename": "",
+        "name": "Sen. Angus King [I-ME]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00034580",
+        "pvsid": "22381",
+        "sortname": "King, Angus (Sen.) [I-ME]",
+        "twitterid": "SenAngusKing",
+        "youtubeid": "SenatorAngusKing"
+    },
+    "phone": "202-224-5344",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "ME",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.king.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for North Dakota",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "516 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.heitkamp.senate.gov/public/index.cfm/contact",
+        "fax": "202-224-7776",
+        "office": "516 Hart Senate Office Building",
+        "rss_url": "http://www.heitkamp.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "H001069",
+        "birthday": "1955-10-30",
+        "cspanid": 95414,
+        "firstname": "Heidi",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Heitkamp",
+        "link": "https://www.govtrack.us/congress/members/heidi_heitkamp/412554",
+        "middlename": "",
+        "name": "Sen. Heidi Heitkamp [D-ND]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033782",
+        "pvsid": "41716",
+        "sortname": "Heitkamp, Heidi (Sen.) [D-ND]",
+        "twitterid": "SenatorHeitkamp",
+        "youtubeid": "senatorheidiheitkamp"
+    },
+    "phone": "202-224-2043",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "ND",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.heitkamp.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Nebraska",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "454 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.fischer.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-1325",
+        "office": "454 Russell Senate Office Building",
+        "rss_url": "http://www.fischer.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "F000463",
+        "birthday": "1951-03-01",
+        "cspanid": 1034067,
+        "firstname": "Deb",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Fischer",
+        "link": "https://www.govtrack.us/congress/members/deb_fischer/412556",
+        "middlename": "",
+        "name": "Sen. Deb Fischer [R-NE]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033443",
+        "pvsid": "41963",
+        "sortname": "Fischer, Deb (Sen.) [R-NE]",
+        "twitterid": "SenatorFischer",
+        "youtubeid": "senatordebfischer"
+    },
+    "phone": "202-224-6551",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "NE",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.fischer.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Texas",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "404 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.cruz.senate.gov/?p=form&id=16",
+        "fax": "202-228-3398",
+        "office": "404 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001098",
+        "birthday": "1970-12-22",
+        "cspanid": 1019953,
+        "firstname": "Ted",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Cruz",
+        "link": "https://www.govtrack.us/congress/members/ted_cruz/412573",
+        "middlename": "",
+        "name": "Sen. Ted Cruz [R-TX]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033085",
+        "pvsid": "135705",
+        "sortname": "Cruz, Ted (Sen.) [R-TX]",
+        "twitterid": "SenTedCruz",
+        "youtubeid": "sentedcruz"
+    },
+    "phone": "202-224-5922",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "TX",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cruz.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Virginia",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "231 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.kaine.senate.gov/contact",
+        "fax": "202-228-6363",
+        "office": "231 Russell Senate Office Building",
+        "rss_url": "http://www.kaine.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "K000384",
+        "birthday": "1958-02-26",
+        "cspanid": 49219,
+        "firstname": "Timothy",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Kaine",
+        "link": "https://www.govtrack.us/congress/members/timothy_kaine/412582",
+        "middlename": "",
+        "name": "Sen. Timothy Kaine [D-VA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033177",
+        "pvsid": "50772",
+        "sortname": "Kaine, Timothy (Sen.) [D-VA]",
+        "twitterid": null,
+        "youtubeid": "SenatorTimKaine"
+    },
+    "phone": "202-224-4024",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2013-01-03",
+    "state": "VA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.kaine.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        113,
+        114,
+        115
+    ],
+    "current": true,
+    "description": "Senior Senator for Mississippi",
+    "district": null,
+    "enddate": "2019-01-03",
+    "extra": {
+        "address": "555 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.wicker.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-0378",
+        "office": "555 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "W000437",
+        "birthday": "1951-07-05",
+        "cspanid": 18203,
+        "firstname": "Roger",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Wicker",
+        "link": "https://www.govtrack.us/congress/members/roger_wicker/400432",
+        "middlename": "F.",
+        "name": "Sen. Roger Wicker [R-MS]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00003280",
+        "pvsid": "21926",
+        "sortname": "Wicker, Roger (Sen.) [R-MS]",
+        "twitterid": "SenatorWicker",
+        "youtubeid": "SenatorWicker"
+    },
+    "phone": "202-224-6253",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class1",
+    "senator_class_label": "Class 1",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2013-01-03",
+    "state": "MS",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.wicker.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Tennessee",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "455 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.alexander.senate.gov/public/index.cfm?p=Email",
+        "fax": "202-228-3398",
+        "office": "455 Dirksen Senate Office Building",
+        "rss_url": "http://www.alexander.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "A000360",
+        "birthday": "1940-07-03",
+        "cspanid": 5,
+        "firstname": "Lamar",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Alexander",
+        "link": "https://www.govtrack.us/congress/members/lamar_alexander/300002",
+        "middlename": "",
+        "name": "Sen. Lamar Alexander [R-TN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009888",
+        "pvsid": "15691",
+        "sortname": "Alexander, Lamar (Sen.) [R-TN]",
+        "twitterid": "SenAlexander",
+        "youtubeid": "lamaralexander"
+    },
+    "phone": "202-224-4944",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "TN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.alexander.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Maine",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "413 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.collins.senate.gov/contact",
+        "fax": "202-224-2693",
+        "office": "413 Dirksen Senate Office Building",
+        "rss_url": "http://www.collins.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001035",
+        "birthday": "1952-12-07",
+        "cspanid": 45738,
+        "firstname": "Susan",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Collins",
+        "link": "https://www.govtrack.us/congress/members/susan_collins/300025",
+        "middlename": "M.",
+        "name": "Sen. Susan Collins [R-ME]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00000491",
+        "pvsid": "379",
+        "sortname": "Collins, Susan (Sen.) [R-ME]",
+        "twitterid": "SenatorCollins",
+        "youtubeid": "SenatorSusanCollins"
+    },
+    "phone": "202-224-2523",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "ME",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.collins.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Texas",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "517 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.cornyn.senate.gov/contact",
+        "fax": "202-228-2856",
+        "office": "517 Hart Senate Office Building",
+        "rss_url": "http://www.cornyn.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": "Majority Whip",
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001056",
+        "birthday": "1952-02-02",
+        "cspanid": 93131,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Cornyn",
+        "link": "https://www.govtrack.us/congress/members/john_cornyn/300027",
+        "middlename": "",
+        "name": "Sen. John Cornyn [R-TX]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00024852",
+        "pvsid": "15375",
+        "sortname": "Cornyn, John (Sen.) [R-TX]",
+        "twitterid": "JohnCornyn",
+        "youtubeid": "senjohncornyn"
+    },
+    "phone": "202-224-2934",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "TX",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cornyn.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Illinois",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "711 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.durbin.senate.gov/contact/",
+        "fax": "202-228-0400",
+        "office": "711 Hart Senate Office Building",
+        "rss_url": "http://durbin.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": "Minority Whip",
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "D000563",
+        "birthday": "1944-11-21",
+        "cspanid": 6741,
+        "firstname": "Richard",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Durbin",
+        "link": "https://www.govtrack.us/congress/members/richard_durbin/300038",
+        "middlename": "J.",
+        "name": "Sen. Richard Durbin [D-IL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00004981",
+        "pvsid": "26847",
+        "sortname": "Durbin, Richard (Sen.) [D-IL]",
+        "twitterid": "SenatorDurbin",
+        "youtubeid": "SenatorDurbin"
+    },
+    "phone": "202-224-2152",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "IL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.durbin.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Wyoming",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "379A Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.enzi.senate.gov/public/index.cfm/contact?p=e-mail-senator-enzi",
+        "fax": "202-228-0359",
+        "office": "379a Russell Senate Office Building",
+        "rss_url": "http://www.enzi.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "E000285",
+        "birthday": "1944-02-01",
+        "cspanid": 45824,
+        "firstname": "Michael",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Enzi",
+        "link": "https://www.govtrack.us/congress/members/michael_enzi/300041",
+        "middlename": "B.",
+        "name": "Sen. Michael Enzi [R-WY]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00006249",
+        "pvsid": "558",
+        "sortname": "Enzi, Michael (Sen.) [R-WY]",
+        "twitterid": "SenatorEnzi",
+        "youtubeid": "senatorenzi"
+    },
+    "phone": "202-224-3424",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "WY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.enzi.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for South Carolina",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "290 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.lgraham.senate.gov/public/index.cfm/e-mail-senator-graham",
+        "fax": "202-224-3808",
+        "office": "290 Russell Senate Office Building",
+        "rss_url": "http://www.lgraham.senate.gov/public/index.cfm?FuseAction=Rss.Feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "G000359",
+        "birthday": "1955-07-09",
+        "cspanid": 36782,
+        "firstname": "Lindsey",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Graham",
+        "link": "https://www.govtrack.us/congress/members/lindsey_graham/300047",
+        "middlename": "O.",
+        "name": "Sen. Lindsey Graham [R-SC]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009975",
+        "pvsid": "21992",
+        "sortname": "Graham, Lindsey (Sen.) [R-SC]",
+        "twitterid": "GrahamBlog",
+        "youtubeid": "USSenLindseyGraham"
+    },
+    "phone": "202-224-5972",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "SC",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.lgraham.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Oklahoma",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "205 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.inhofe.senate.gov/contact",
+        "fax": "202-228-0380",
+        "office": "205 Russell Senate Office Building",
+        "rss_url": "http://www.inhofe.senate.gov/rss/feeds/?type=all&amp;cachebuster=eea6c4d7%2d939c%2d5c1e%2db6c7aa3b8b291208"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "I000024",
+        "birthday": "1934-11-17",
+        "cspanid": 5619,
+        "firstname": "James",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Inhofe",
+        "link": "https://www.govtrack.us/congress/members/james_inhofe/300055",
+        "middlename": "M.",
+        "name": "Sen. James “Jim” Inhofe [R-OK]",
+        "namemod": "",
+        "nickname": "Jim",
+        "osid": "N00005582",
+        "pvsid": "27027",
+        "sortname": "Inhofe, James “Jim” (Sen.) [R-OK]",
+        "twitterid": "InhofePress",
+        "youtubeid": "jiminhofepressoffice"
+    },
+    "phone": "202-224-4721",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "OK",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.inhofe.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Kentucky",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "317 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.mcconnell.senate.gov/public/index.cfm?p=contact",
+        "fax": "202-224-2499",
+        "office": "317 Russell Senate Office Building",
+        "rss_url": "http://www.mcconnell.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": "Majority Leader",
+    "party": "Republican",
+    "person": {
+        "bioguideid": "M000355",
+        "birthday": "1942-02-20",
+        "cspanid": 2351,
+        "firstname": "Mitch",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "McConnell",
+        "link": "https://www.govtrack.us/congress/members/mitch_mcconnell/300072",
+        "middlename": "",
+        "name": "Sen. Mitch McConnell [R-KY]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00003389",
+        "pvsid": "53298",
+        "sortname": "McConnell, Mitch (Sen.) [R-KY]",
+        "twitterid": "McConnellPress",
+        "youtubeid": null
+    },
+    "phone": "202-224-2541",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "KY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.mcconnell.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Rhode Island",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "728 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.reed.senate.gov/contact/",
+        "fax": "202-224-4680",
+        "office": "728 Hart Senate Office Building",
+        "rss_url": "https://www.reed.senate.gov//rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "R000122",
+        "birthday": "1949-11-12",
+        "cspanid": 24239,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Reed",
+        "link": "https://www.govtrack.us/congress/members/john_reed/300081",
+        "middlename": "F.",
+        "name": "Sen. John “Jack” Reed [D-RI]",
+        "namemod": "",
+        "nickname": "Jack",
+        "osid": "N00000362",
+        "pvsid": "27060",
+        "sortname": "Reed, John “Jack” (Sen.) [D-RI]",
+        "twitterid": "SenJackReed",
+        "youtubeid": "SenatorReed"
+    },
+    "phone": "202-224-4642",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "RI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.reed.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Kansas",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "109 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.roberts.senate.gov/public/?p=EmailPat",
+        "fax": "202-224-3514",
+        "office": "109 Hart Senate Office Building",
+        "rss_url": "http://www.roberts.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "R000307",
+        "birthday": "1936-04-20",
+        "cspanid": 16354,
+        "firstname": "Pat",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Roberts",
+        "link": "https://www.govtrack.us/congress/members/pat_roberts/300083",
+        "middlename": "",
+        "name": "Sen. Pat Roberts [R-KS]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00005285",
+        "pvsid": "26866",
+        "sortname": "Roberts, Pat (Sen.) [R-KS]",
+        "twitterid": "SenPatRoberts",
+        "youtubeid": "SenPatRoberts"
+    },
+    "phone": "202-224-4774",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "KS",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.roberts.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for West Virginia",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "172 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.capito.senate.gov/contact/contact-shelley",
+        "fax": "202-225-7856",
+        "office": "172 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001047",
+        "birthday": "1953-11-26",
+        "cspanid": 83737,
+        "firstname": "Shelley",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Capito",
+        "link": "https://www.govtrack.us/congress/members/shelley_capito/400061",
+        "middlename": "Moore",
+        "name": "Sen. Shelley Capito [R-WV]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009771",
+        "pvsid": "11701",
+        "sortname": "Capito, Shelley (Sen.) [R-WV]",
+        "twitterid": "SenCapito",
+        "youtubeid": null
+    },
+    "phone": "202-224-6472",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "WV",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.capito.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Massachusetts",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "255 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.markey.senate.gov/contact",
+        "office": "255 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M000133",
+        "birthday": "1946-07-11",
+        "cspanid": 260,
+        "firstname": "Edward",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Markey",
+        "link": "https://www.govtrack.us/congress/members/edward_markey/400253",
+        "middlename": "J.",
+        "name": "Sen. Edward “Ed” Markey [D-MA]",
+        "namemod": "",
+        "nickname": "Ed",
+        "osid": "N00000270",
+        "pvsid": "26900",
+        "sortname": "Markey, Edward “Ed” (Sen.) [D-MA]",
+        "twitterid": "SenMarkey",
+        "youtubeid": "RepMarkey"
+    },
+    "phone": "202-224-2742",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "MA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.markey.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for New Mexico",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "531 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.tomudall.senate.gov/?p=contact",
+        "fax": "202-228-3261",
+        "office": "531 Hart Senate Office Building",
+        "rss_url": "http://tomudall.senate.gov/rss/?p=blog"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "U000039",
+        "birthday": "1948-05-18",
+        "cspanid": 10075,
+        "firstname": "Tom",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Udall",
+        "link": "https://www.govtrack.us/congress/members/tom_udall/400413",
+        "middlename": "S.",
+        "name": "Sen. Tom Udall [D-NM]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00006561",
+        "pvsid": "22658",
+        "sortname": "Udall, Tom (Sen.) [D-NM]",
+        "twitterid": "SenatorTomUdall",
+        "youtubeid": "senatortomudall"
+    },
+    "phone": "202-224-6621",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "NM",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.tomudall.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Louisiana",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "520 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.cassidy.senate.gov/contact",
+        "fax": "202-225-7313",
+        "office": "520 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001075",
+        "birthday": "1957-09-28",
+        "cspanid": 1030546,
+        "firstname": "Bill",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Cassidy",
+        "link": "https://www.govtrack.us/congress/members/bill_cassidy/412269",
+        "middlename": "",
+        "name": "Sen. Bill Cassidy [R-LA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030245",
+        "pvsid": "69494",
+        "sortname": "Cassidy, Bill (Sen.) [R-LA]",
+        "twitterid": null,
+        "youtubeid": "SenatorBillCassidy"
+    },
+    "phone": "202-224-5824",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "LA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cassidy.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Michigan",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "724 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.peters.senate.gov/contact/email-gary",
+        "fax": "202-226-2356",
+        "office": "724 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "P000595",
+        "birthday": "1958-12-01",
+        "cspanid": 50199,
+        "firstname": "Gary",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Peters",
+        "link": "https://www.govtrack.us/congress/members/gary_peters/412305",
+        "middlename": "C.",
+        "name": "Sen. Gary Peters [D-MI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00029277",
+        "pvsid": "8749",
+        "sortname": "Peters, Gary (Sen.) [D-MI]",
+        "twitterid": "SenGaryPeters",
+        "youtubeid": "RepGaryPeters"
+    },
+    "phone": "202-224-6221",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "MI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.peters.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for Virginia",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "703 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.warner.senate.gov/public/index.cfm?p=Contact",
+        "fax": "202-224-6295",
+        "office": "703 Hart Senate Office Building",
+        "rss_url": "http://www.warner.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "W000805",
+        "birthday": "1954-12-15",
+        "cspanid": 7630,
+        "firstname": "Mark",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Warner",
+        "link": "https://www.govtrack.us/congress/members/mark_warner/412321",
+        "middlename": "",
+        "name": "Sen. Mark Warner [D-VA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00002097",
+        "pvsid": "535",
+        "sortname": "Warner, Mark (Sen.) [D-VA]",
+        "twitterid": "MarkWarner",
+        "youtubeid": "SenatorMarkWarner"
+    },
+    "phone": "202-224-2023",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "VA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.warner.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Idaho",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "483 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.risch.senate.gov/public/index.cfm?p=Email",
+        "fax": "202-224-2573",
+        "office": "483 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "R000584",
+        "birthday": "1943-05-03",
+        "cspanid": 1020034,
+        "firstname": "James",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Risch",
+        "link": "https://www.govtrack.us/congress/members/james_risch/412322",
+        "middlename": "",
+        "name": "Sen. James Risch [R-ID]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00029441",
+        "pvsid": "2919",
+        "sortname": "Risch, James (Sen.) [R-ID]",
+        "twitterid": "SenatorRisch",
+        "youtubeid": "SenatorJamesRisch"
+    },
+    "phone": "202-224-2752",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "ID",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.risch.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Senior Senator for New Hampshire",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "506 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.shaheen.senate.gov/contact/contact-jeanne",
+        "fax": "202-228-3194",
+        "office": "506 Hart Senate Office Building",
+        "rss_url": "http://www.shaheen.senate.gov/rss/"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "S001181",
+        "birthday": "1947-01-28",
+        "cspanid": 22850,
+        "firstname": "Jeanne",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Shaheen",
+        "link": "https://www.govtrack.us/congress/members/jeanne_shaheen/412323",
+        "middlename": "",
+        "name": "Sen. Jeanne Shaheen [D-NH]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00024790",
+        "pvsid": "1663",
+        "sortname": "Shaheen, Jeanne (Sen.) [D-NH]",
+        "twitterid": "SenatorShaheen",
+        "youtubeid": "senatorshaheen"
+    },
+    "phone": "202-224-2841",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2015-01-06",
+    "state": "NH",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.shaheen.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Oregon",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "313 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.merkley.senate.gov/contact/",
+        "fax": "202-228-3997",
+        "office": "313 Hart Senate Office Building",
+        "rss_url": "http://www.merkley.senate.gov/rss/"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M001176",
+        "birthday": "1956-10-24",
+        "cspanid": 1029842,
+        "firstname": "Jeff",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Merkley",
+        "link": "https://www.govtrack.us/congress/members/jeff_merkley/412325",
+        "middlename": "",
+        "name": "Sen. Jeff Merkley [D-OR]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00029303",
+        "pvsid": "23644",
+        "sortname": "Merkley, Jeff (Sen.) [D-OR]",
+        "twitterid": "SenJeffMerkley",
+        "youtubeid": "SenatorJeffMerkley"
+    },
+    "phone": "202-224-3753",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "OR",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.merkley.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Delaware",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "127A Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.coons.senate.gov/contact",
+        "fax": "202-228-3075",
+        "office": "127a Russell Senate Office Building",
+        "rss_url": "http://www.coons.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C001088",
+        "birthday": "1963-09-09",
+        "cspanid": 9269028,
+        "firstname": "Chris",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Coons",
+        "link": "https://www.govtrack.us/congress/members/chris_coons/412390",
+        "middlename": "Andrew",
+        "name": "Sen. Chris Coons [D-DE]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031820",
+        "pvsid": "122834",
+        "sortname": "Coons, Chris (Sen.) [D-DE]",
+        "twitterid": "ChrisCoons",
+        "youtubeid": "senatorchriscoons"
+    },
+    "phone": "202-224-5042",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "DE",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.coons.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Colorado",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "354 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.gardner.senate.gov/contact-cory/email-cory",
+        "fax": "202-225-5870",
+        "office": "354 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "G000562",
+        "birthday": "1974-08-22",
+        "cspanid": 623308,
+        "firstname": "Cory",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Gardner",
+        "link": "https://www.govtrack.us/congress/members/cory_gardner/412406",
+        "middlename": "",
+        "name": "Sen. Cory Gardner [R-CO]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030780",
+        "pvsid": "30004",
+        "sortname": "Gardner, Cory (Sen.) [R-CO]",
+        "twitterid": "SenCoryGardner",
+        "youtubeid": null
+    },
+    "phone": "202-224-5941",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "CO",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.gardner.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Arkansas",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "124 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.cotton.senate.gov/?p=contact",
+        "office": "124 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C001095",
+        "birthday": "1977-05-13",
+        "cspanid": 63928,
+        "firstname": "Tom",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Cotton",
+        "link": "https://www.govtrack.us/congress/members/tom_cotton/412508",
+        "middlename": "",
+        "name": "Sen. Tom Cotton [R-AR]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033363",
+        "pvsid": "135651",
+        "sortname": "Cotton, Tom (Sen.) [R-AR]",
+        "twitterid": "SenTomCotton",
+        "youtubeid": "RepTomCotton"
+    },
+    "phone": "202-224-2353",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "AR",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cotton.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Montana",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "320 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.daines.senate.gov/connect/email-steve",
+        "fax": "202-228-1236",
+        "office": "320 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "D000618",
+        "birthday": "1962-08-20",
+        "cspanid": 1034037,
+        "firstname": "Steve",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Daines",
+        "link": "https://www.govtrack.us/congress/members/steve_daines/412549",
+        "middlename": "",
+        "name": "Sen. Steve Daines [R-MT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00033054",
+        "pvsid": "135720",
+        "sortname": "Daines, Steve (Sen.) [R-MT]",
+        "twitterid": "SteveDaines",
+        "youtubeid": "SteveDainesMT"
+    },
+    "phone": "202-224-2651",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "MT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.daines.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for New Jersey",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "359 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.booker.senate.gov/?p=contact",
+        "fax": "202-224-8378",
+        "office": "359 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "B001288",
+        "birthday": "1969-04-27",
+        "cspanid": 84679,
+        "firstname": "Cory",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Booker",
+        "link": "https://www.govtrack.us/congress/members/cory_booker/412598",
+        "middlename": "Anthony",
+        "name": "Sen. Cory Booker [D-NJ]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035267",
+        "pvsid": "76151",
+        "sortname": "Booker, Cory (Sen.) [D-NJ]",
+        "twitterid": "SenBooker",
+        "youtubeid": "SenCoryBooker"
+    },
+    "phone": "202-224-3224",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "NJ",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.booker.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Alaska",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "702 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.sullivan.senate.gov/contact/email",
+        "office": "702 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "S001198",
+        "birthday": "1964-11-13",
+        "cspanid": 1023262,
+        "firstname": "Dan",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Sullivan",
+        "link": "https://www.govtrack.us/congress/members/dan_sullivan/412665",
+        "middlename": "",
+        "name": "Sen. Dan Sullivan [R-AK]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035774",
+        "pvsid": "114964",
+        "sortname": "Sullivan, Dan (Sen.) [R-AK]",
+        "twitterid": "SenDanSullivan",
+        "youtubeid": null
+    },
+    "phone": "202-224-3004",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "AK",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.sullivan.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Georgia",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "455 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.perdue.senate.gov/connect/email",
+        "office": "455 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "P000612",
+        "birthday": "1949-12-10",
+        "cspanid": 75920,
+        "firstname": "David",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Perdue",
+        "link": "https://www.govtrack.us/congress/members/david_perdue/412666",
+        "middlename": "",
+        "name": "Sen. David Perdue [R-GA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035516",
+        "pvsid": "151330",
+        "sortname": "Perdue, David (Sen.) [R-GA]",
+        "twitterid": "sendavidperdue",
+        "youtubeid": null
+    },
+    "phone": "202-224-3521",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "GA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.perdue.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Iowa",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "111 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.ernst.senate.gov/public/index.cfm/contact",
+        "office": "111 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "E000295",
+        "birthday": "1970-07-01",
+        "cspanid": 75342,
+        "firstname": "Joni",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Ernst",
+        "link": "https://www.govtrack.us/congress/members/joni_ernst/412667",
+        "middlename": "",
+        "name": "Sen. Joni Ernst [R-IA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035483",
+        "pvsid": "128583",
+        "sortname": "Ernst, Joni (Sen.) [R-IA]",
+        "twitterid": "SenJoniErnst",
+        "youtubeid": null
+    },
+    "phone": "202-224-3254",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "IA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.ernst.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for North Carolina",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "185 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.tillis.senate.gov/public/index.cfm/email-me",
+        "office": "185 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "T000476",
+        "birthday": "1960-08-30",
+        "cspanid": 77055,
+        "firstname": "Thom",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Tillis",
+        "link": "https://www.govtrack.us/congress/members/thom_tillis/412668",
+        "middlename": "",
+        "name": "Sen. Thom Tillis [R-NC]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035492",
+        "pvsid": "57717",
+        "sortname": "Tillis, Thom (Sen.) [R-NC]",
+        "twitterid": "senthomtillis",
+        "youtubeid": null
+    },
+    "phone": "202-224-6342",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "NC",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.tillis.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for South Dakota",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "502 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.rounds.senate.gov/contact/email-mike",
+        "office": "502 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "R000605",
+        "birthday": "1954-10-24",
+        "cspanid": 78317,
+        "firstname": "Mike",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Rounds",
+        "link": "https://www.govtrack.us/congress/members/mike_rounds/412669",
+        "middlename": "",
+        "name": "Sen. Mike Rounds [R-SD]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035187",
+        "pvsid": "7455",
+        "sortname": "Rounds, Mike (Sen.) [R-SD]",
+        "twitterid": "SenatorRounds",
+        "youtubeid": null
+    },
+    "phone": "202-224-5842",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "SD",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.rounds.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        114,
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Nebraska",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "136 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.sasse.senate.gov/public/index.cfm/email-ben",
+        "office": "136 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "S001197",
+        "birthday": "1972-02-22",
+        "cspanid": 77429,
+        "firstname": "Benjamin",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Sasse",
+        "link": "https://www.govtrack.us/congress/members/benjamin_sasse/412671",
+        "middlename": "Eric",
+        "name": "Sen. Benjamin Sasse [R-NE]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00035544",
+        "pvsid": "150182",
+        "sortname": "Sasse, Benjamin (Sen.) [R-NE]",
+        "twitterid": "SenSasse",
+        "youtubeid": null
+    },
+    "phone": "202-224-4224",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2015-01-06",
+    "state": "NE",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.sasse.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Idaho",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "239 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.crapo.senate.gov/contact",
+        "fax": "202-228-1375",
+        "office": "239 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "C000880",
+        "birthday": "1951-05-20",
+        "cspanid": 26440,
+        "firstname": "Michael",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Crapo",
+        "link": "https://www.govtrack.us/congress/members/michael_crapo/300030",
+        "middlename": "D.",
+        "name": "Sen. Michael Crapo [R-ID]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00006267",
+        "pvsid": "26830",
+        "sortname": "Crapo, Michael (Sen.) [R-ID]",
+        "twitterid": "MikeCrapo",
+        "youtubeid": "senatorcrapo"
+    },
+    "phone": "202-224-6142",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "ID",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.crapo.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Iowa",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "135 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.grassley.senate.gov/contact",
+        "fax": "202-224-6020",
+        "office": "135 Hart Senate Office Building",
+        "rss_url": "http://grassley.senate.gov/customcf/rss_feed.cfm"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "G000386",
+        "birthday": "1933-09-17",
+        "cspanid": 1167,
+        "firstname": "Charles",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Grassley",
+        "link": "https://www.govtrack.us/congress/members/charles_grassley/300048",
+        "middlename": "E.",
+        "name": "Sen. Charles “Chuck” Grassley [R-IA]",
+        "namemod": "",
+        "nickname": "Chuck",
+        "osid": "N00001758",
+        "pvsid": "53293",
+        "sortname": "Grassley, Charles “Chuck” (Sen.) [R-IA]",
+        "twitterid": "ChuckGrassley",
+        "youtubeid": "senchuckgrassley"
+    },
+    "phone": "202-224-3744",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "IA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.grassley.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Vermont",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "437 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.leahy.senate.gov/contact/",
+        "fax": "202-224-3479",
+        "office": "437 Russell Senate Office Building",
+        "rss_url": "http://www.leahy.senate.gov/rss/feeds/press/"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "L000174",
+        "birthday": "1940-03-31",
+        "cspanid": 1552,
+        "firstname": "Patrick",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Leahy",
+        "link": "https://www.govtrack.us/congress/members/patrick_leahy/300065",
+        "middlename": "J.",
+        "name": "Sen. Patrick Leahy [D-VT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009918",
+        "pvsid": "53353",
+        "sortname": "Leahy, Patrick (Sen.) [D-VT]",
+        "twitterid": "SenatorLeahy",
+        "youtubeid": "SenatorPatrickLeahy"
+    },
+    "phone": "202-224-4242",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "VT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.leahy.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Alaska",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "522 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.murkowski.senate.gov/public/index.cfm/contact",
+        "fax": "202-224-5301",
+        "office": "522 Hart Senate Office Building",
+        "rss_url": "http://www.murkowski.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "M001153",
+        "birthday": "1957-05-22",
+        "cspanid": 1004138,
+        "firstname": "Lisa",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Murkowski",
+        "link": "https://www.govtrack.us/congress/members/lisa_murkowski/300075",
+        "middlename": "A.",
+        "name": "Sen. Lisa Murkowski [R-AK]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00026050",
+        "pvsid": "15841",
+        "sortname": "Murkowski, Lisa (Sen.) [R-AK]",
+        "twitterid": "LisaMurkowski",
+        "youtubeid": "senatormurkowski"
+    },
+    "phone": "202-224-6665",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "AK",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.murkowski.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Washington",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "154 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.murray.senate.gov/public/index.cfm/contactme",
+        "fax": "202-224-0238",
+        "office": "154 Russell Senate Office Building",
+        "rss_url": "http://www.murray.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "M001111",
+        "birthday": "1950-10-11",
+        "cspanid": 25277,
+        "firstname": "Patty",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Murray",
+        "link": "https://www.govtrack.us/congress/members/patty_murray/300076",
+        "middlename": "",
+        "name": "Sen. Patty Murray [D-WA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00007876",
+        "pvsid": "53358",
+        "sortname": "Murray, Patty (Sen.) [D-WA]",
+        "twitterid": "PattyMurray",
+        "youtubeid": "SenatorPattyMurray"
+    },
+    "phone": "202-224-2621",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "WA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.murray.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for New York",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "322 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.schumer.senate.gov/contact/email-chuck",
+        "fax": "202-228-3027",
+        "office": "322 Hart Senate Office Building"
+    },
+    "leadership_title": "Minority Leader",
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "S000148",
+        "birthday": "1950-11-23",
+        "cspanid": 5929,
+        "firstname": "Charles",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Schumer",
+        "link": "https://www.govtrack.us/congress/members/charles_schumer/300087",
+        "middlename": "E.",
+        "name": "Sen. Charles “Chuck” Schumer [D-NY]",
+        "namemod": "",
+        "nickname": "Chuck",
+        "osid": "N00001093",
+        "pvsid": "26976",
+        "sortname": "Schumer, Charles “Chuck” (Sen.) [D-NY]",
+        "twitterid": "SenSchumer",
+        "youtubeid": "SenatorSchumer"
+    },
+    "phone": "202-224-6542",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "NY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.schumer.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Alabama",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "304 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.shelby.senate.gov/public/index.cfm/emailsenatorshelby",
+        "fax": "202-224-3416",
+        "office": "304 Russell Senate Office Building",
+        "rss_url": "http://www.shelby.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "S000320",
+        "birthday": "1934-05-06",
+        "cspanid": 1859,
+        "firstname": "Richard",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Shelby",
+        "link": "https://www.govtrack.us/congress/members/richard_shelby/300089",
+        "middlename": "C.",
+        "name": "Sen. Richard Shelby [R-AL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00009920",
+        "pvsid": "53266",
+        "sortname": "Shelby, Richard (Sen.) [R-AL]",
+        "twitterid": "SenShelby",
+        "youtubeid": "SenatorRichardShelby"
+    },
+    "phone": "202-224-5744",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "AL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.shelby.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Oregon",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "221 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.wyden.senate.gov/contact/",
+        "fax": "202-228-2717",
+        "office": "221 Dirksen Senate Office Building",
+        "rss_url": "http://www.wyden.senate.gov/rss/feeds/?type=all&amp;"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "W000779",
+        "birthday": "1949-05-03",
+        "cspanid": 1962,
+        "firstname": "Ron",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Wyden",
+        "link": "https://www.govtrack.us/congress/members/ron_wyden/300100",
+        "middlename": "",
+        "name": "Sen. Ron Wyden [D-OR]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00007724",
+        "pvsid": "27036",
+        "sortname": "Wyden, Ron (Sen.) [D-OR]",
+        "twitterid": "RonWyden",
+        "youtubeid": "senronwyden"
+    },
+    "phone": "202-224-5244",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "OR",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.wyden.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Missouri",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "260 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.blunt.senate.gov/public/index.cfm/contact-roy",
+        "fax": "202-224-8149",
+        "office": "260 Russell Senate Office Building",
+        "rss_url": "http://www.blunt.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "B000575",
+        "birthday": "1950-01-10",
+        "cspanid": 45465,
+        "firstname": "Roy",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Blunt",
+        "link": "https://www.govtrack.us/congress/members/roy_blunt/400034",
+        "middlename": "",
+        "name": "Sen. Roy Blunt [R-MO]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00005195",
+        "pvsid": "418",
+        "sortname": "Blunt, Roy (Sen.) [R-MO]",
+        "twitterid": "RoyBlunt",
+        "youtubeid": "SenatorBlunt"
+    },
+    "phone": "202-224-5721",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "MO",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.blunt.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Arkansas",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "141 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.boozman.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-1371",
+        "office": "141 Hart Senate Office Building",
+        "rss_url": "http://www.boozman.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "B001236",
+        "birthday": "1950-12-10",
+        "cspanid": 92069,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Boozman",
+        "link": "https://www.govtrack.us/congress/members/john_boozman/400040",
+        "middlename": "",
+        "name": "Sen. John Boozman [R-AR]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00013873",
+        "pvsid": "27958",
+        "sortname": "Boozman, John (Sen.) [R-AR]",
+        "twitterid": "JohnBoozman",
+        "youtubeid": "BoozmanPressOffice"
+    },
+    "phone": "202-224-4843",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "AR",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.boozman.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for North Carolina",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "217 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.burr.senate.gov/contact/email",
+        "fax": "202-228-2981",
+        "office": "217 Russell Senate Office Building",
+        "rss_url": "http://www.burr.senate.gov/public/index.cfm?fuseaction=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "B001135",
+        "birthday": "1955-11-30",
+        "cspanid": 31054,
+        "firstname": "Richard",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Burr",
+        "link": "https://www.govtrack.us/congress/members/richard_burr/400054",
+        "middlename": "M.",
+        "name": "Sen. Richard Burr [R-NC]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00002221",
+        "pvsid": "21787",
+        "sortname": "Burr, Richard (Sen.) [R-NC]",
+        "twitterid": "SenatorBurr",
+        "youtubeid": "SenatorRichardBurr"
+    },
+    "phone": "202-224-3154",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "NC",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.burr.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Georgia",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "131 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.isakson.senate.gov/public/index.cfm/email-me",
+        "fax": "202-228-0724",
+        "office": "131 Russell Senate Office Building",
+        "rss_url": "http://www.isakson.senate.gov/public/?a=RSS.Feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "I000055",
+        "birthday": "1944-12-28",
+        "cspanid": 59135,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Isakson",
+        "link": "https://www.govtrack.us/congress/members/john_isakson/400194",
+        "middlename": "H.",
+        "name": "Sen. John “Johnny” Isakson [R-GA]",
+        "namemod": "",
+        "nickname": "Johnny",
+        "osid": "N00002593",
+        "pvsid": "1721",
+        "sortname": "Isakson, John “Johnny” (Sen.) [R-GA]",
+        "twitterid": "SenatorIsakson",
+        "youtubeid": "SenatorIsakson"
+    },
+    "phone": "202-224-3643",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "GA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.isakson.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Kansas",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "521 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.moran.senate.gov/public/index.cfm/e-mail-jerry",
+        "fax": "202-228-6966",
+        "office": "521 Dirksen Senate Office Building",
+        "rss_url": "http://www.moran.senate.gov/public/index.cfm/rss/feed/"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "M000934",
+        "birthday": "1954-05-29",
+        "cspanid": 45469,
+        "firstname": "Jerry",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Moran",
+        "link": "https://www.govtrack.us/congress/members/jerry_moran/400284",
+        "middlename": "",
+        "name": "Sen. Jerry Moran [R-KS]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00005282",
+        "pvsid": "542",
+        "sortname": "Moran, Jerry (Sen.) [R-KS]",
+        "twitterid": "JerryMoran",
+        "youtubeid": "senatorjerrymoran"
+    },
+    "phone": "202-224-6521",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "KS",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.moran.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Ohio",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "448 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.portman.senate.gov/public/index.cfm/contact?p=contact-form",
+        "office": "448 Russell Senate Office Building",
+        "rss_url": "http://www.portman.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "P000449",
+        "birthday": "1955-12-19",
+        "cspanid": 31819,
+        "firstname": "Robert",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Portman",
+        "link": "https://www.govtrack.us/congress/members/robert_portman/400325",
+        "middlename": "J.",
+        "name": "Sen. Robert “Rob” Portman [R-OH]",
+        "namemod": "",
+        "nickname": "Rob",
+        "osid": "N00003682",
+        "pvsid": "27008",
+        "sortname": "Portman, Robert “Rob” (Sen.) [R-OH]",
+        "twitterid": "SenRobPortman",
+        "youtubeid": "SenRobPortman"
+    },
+    "phone": "202-224-3353",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "OH",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.portman.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Pennsylvania",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "248 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.toomey.senate.gov/?p=contact",
+        "fax": "202-228-0284",
+        "office": "248 Russell Senate Office Building",
+        "rss_url": "http://toomey.senate.gov/rss/?p=hot_topic"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "T000461",
+        "birthday": "1961-11-17",
+        "cspanid": 7958,
+        "firstname": "Patrick",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Toomey",
+        "link": "https://www.govtrack.us/congress/members/patrick_toomey/400408",
+        "middlename": "J.",
+        "name": "Sen. Patrick “Pat” Toomey [R-PA]",
+        "namemod": "",
+        "nickname": "Pat",
+        "osid": "N00001489",
+        "pvsid": "24096",
+        "sortname": "Toomey, Patrick “Pat” (Sen.) [R-PA]",
+        "twitterid": "SenToomey",
+        "youtubeid": "sentoomey"
+    },
+    "phone": "202-224-4254",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "PA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.toomey.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Maryland",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "110 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.vanhollen.senate.gov/contact/email",
+        "fax": "202-225-0375",
+        "office": "110 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "V000128",
+        "birthday": "1959-01-10",
+        "cspanid": 20756,
+        "firstname": "Chris",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Van Hollen",
+        "link": "https://www.govtrack.us/congress/members/chris_van_hollen/400415",
+        "middlename": "",
+        "name": "Sen. Chris Van Hollen [D-MD]",
+        "namemod": "Jr.",
+        "nickname": "",
+        "osid": "N00013820",
+        "pvsid": "6098",
+        "sortname": "Van Hollen, Chris (Sen.) [D-MD]",
+        "twitterid": "ChrisVanHollen",
+        "youtubeid": "RepChrisVanHollen"
+    },
+    "phone": "202-224-4654",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "MD",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.vanhollen.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for South Dakota",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "511 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.thune.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-5429",
+        "office": "511 Dirksen Senate Office Building",
+        "rss_url": "http://www.thune.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "T000250",
+        "birthday": "1961-01-07",
+        "cspanid": 45552,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Thune",
+        "link": "https://www.govtrack.us/congress/members/john_thune/400546",
+        "middlename": "",
+        "name": "Sen. John Thune [R-SD]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00004572",
+        "pvsid": "398",
+        "sortname": "Thune, John (Sen.) [R-SD]",
+        "twitterid": "SenJohnThune",
+        "youtubeid": "johnthune"
+    },
+    "phone": "202-224-2321",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "SD",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.thune.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Colorado",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "261 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.bennet.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-5097",
+        "office": "261 Russell Senate Office Building",
+        "rss_url": "http://www.bennet.senate.gov/rss/feeds/?type=news"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "B001267",
+        "birthday": "1964-11-28",
+        "cspanid": 1031622,
+        "firstname": "Michael",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Bennet",
+        "link": "https://www.govtrack.us/congress/members/michael_bennet/412330",
+        "middlename": "F.",
+        "name": "Sen. Michael Bennet [D-CO]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030608",
+        "pvsid": "110942",
+        "sortname": "Bennet, Michael (Sen.) [D-CO]",
+        "twitterid": "SenBennetCo",
+        "youtubeid": "SenatorBennet"
+    },
+    "phone": "202-224-5852",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "CO",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.bennet.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Indiana",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "400 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.young.senate.gov/contact",
+        "fax": "202-226-6866",
+        "office": "400 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "Y000064",
+        "birthday": "1972-08-24",
+        "cspanid": 1033743,
+        "firstname": "Todd",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Young",
+        "link": "https://www.govtrack.us/congress/members/todd_young/412428",
+        "middlename": "C.",
+        "name": "Sen. Todd Young [R-IN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030670",
+        "pvsid": "120345",
+        "sortname": "Young, Todd (Sen.) [R-IN]",
+        "twitterid": "SenToddYoung",
+        "youtubeid": "RepToddYoung"
+    },
+    "phone": "202-224-5623",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "IN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.young.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Oklahoma",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "316 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.lankford.senate.gov/contact/email",
+        "office": "316 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "L000575",
+        "birthday": "1968-03-04",
+        "cspanid": 1033847,
+        "firstname": "James",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Lankford",
+        "link": "https://www.govtrack.us/congress/members/james_lankford/412464",
+        "middlename": "",
+        "name": "Sen. James Lankford [R-OK]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031129",
+        "pvsid": "124938",
+        "sortname": "Lankford, James (Sen.) [R-OK]",
+        "twitterid": "SenatorLankford",
+        "youtubeid": "SenatorLankford"
+    },
+    "phone": "202-224-5754",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "OK",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.lankford.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for South Carolina",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "717 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.scott.senate.gov/contact/email-me",
+        "fax": "202-225-3407",
+        "office": "717 Hart Senate Office Building",
+        "rss_url": "http://www.scott.senate.gov/rss.xml"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "S001184",
+        "birthday": "1965-09-19",
+        "cspanid": 623506,
+        "firstname": "Tim",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Scott",
+        "link": "https://www.govtrack.us/congress/members/tim_scott/412471",
+        "middlename": "",
+        "name": "Sen. Tim Scott [R-SC]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031782",
+        "pvsid": "11940",
+        "sortname": "Scott, Tim (Sen.) [R-SC]",
+        "twitterid": "SenatorTimScott",
+        "youtubeid": "SenatorTimScott"
+    },
+    "phone": "202-224-6121",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "SC",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.scott.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Connecticut",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "706 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.blumenthal.senate.gov/contact/",
+        "fax": "202-224-9673",
+        "office": "706 Hart Senate Office Building",
+        "rss_url": "http://www.blumenthal.senate.gov/rss/feeds/?type=all"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "B001277",
+        "birthday": "1946-02-13",
+        "cspanid": 21799,
+        "firstname": "Richard",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Blumenthal",
+        "link": "https://www.govtrack.us/congress/members/richard_blumenthal/412490",
+        "middlename": "",
+        "name": "Sen. Richard Blumenthal [D-CT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031685",
+        "pvsid": "1568",
+        "sortname": "Blumenthal, Richard (Sen.) [D-CT]",
+        "twitterid": "SenBlumenthal",
+        "youtubeid": "SenatorBlumenthal"
+    },
+    "phone": "202-224-2823",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "CT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.blumenthal.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Florida",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "284 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.rubio.senate.gov/public/index.cfm/contact",
+        "fax": "202-228-0285",
+        "office": "284 Russell Senate Office Building",
+        "rss_url": "http://www.rubio.senate.gov/public/?a=rss.feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "R000595",
+        "birthday": "1971-05-28",
+        "cspanid": 87599,
+        "firstname": "Marco",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Rubio",
+        "link": "https://www.govtrack.us/congress/members/marco_rubio/412491",
+        "middlename": "",
+        "name": "Sen. Marco Rubio [R-FL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030612",
+        "pvsid": "1601",
+        "sortname": "Rubio, Marco (Sen.) [R-FL]",
+        "twitterid": "SenRubioPress",
+        "youtubeid": "SenatorMarcoRubio"
+    },
+    "phone": "202-224-3041",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "FL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.rubio.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Kentucky",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "167 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.paul.senate.gov/connect/email-rand",
+        "fax": "202-228-1373",
+        "office": "167 Russell Senate Office Building",
+        "rss_url": "http://paul.senate.gov/rss/?p=news"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "P000603",
+        "birthday": "1963-01-07",
+        "cspanid": 9265241,
+        "firstname": "Rand",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Paul",
+        "link": "https://www.govtrack.us/congress/members/rand_paul/412492",
+        "middlename": "",
+        "name": "Sen. Rand Paul [R-KY]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00030836",
+        "pvsid": "117285",
+        "sortname": "Paul, Rand (Sen.) [R-KY]",
+        "twitterid": "RandPaul",
+        "youtubeid": "SenatorRandPaul"
+    },
+    "phone": "202-224-4343",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "KY",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.paul.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for North Dakota",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "338 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "http://www.hoeven.senate.gov/public/index.cfm/email-the-senator",
+        "fax": "202-224-7999",
+        "office": "338 Russell Senate Office Building",
+        "rss_url": "http://www.hoeven.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "H001061",
+        "birthday": "1957-03-13",
+        "cspanid": 85233,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Hoeven",
+        "link": "https://www.govtrack.us/congress/members/john_hoeven/412494",
+        "middlename": "",
+        "name": "Sen. John Hoeven [R-ND]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031688",
+        "pvsid": "41788",
+        "sortname": "Hoeven, John (Sen.) [R-ND]",
+        "twitterid": "SenJohnHoeven",
+        "youtubeid": "senatorjohnhoevennd"
+    },
+    "phone": "202-224-2551",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "ND",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.hoeven.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Utah",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "361A Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.lee.senate.gov/public/index.cfm/contact",
+        "office": "361a Russell Senate Office Building",
+        "rss_url": "http://www.lee.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "L000577",
+        "birthday": "1971-06-04",
+        "cspanid": 9267977,
+        "firstname": "Mike",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Lee",
+        "link": "https://www.govtrack.us/congress/members/mike_lee/412495",
+        "middlename": "",
+        "name": "Sen. Mike Lee [R-UT]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00031696",
+        "pvsid": "66395",
+        "sortname": "Lee, Mike (Sen.) [R-UT]",
+        "twitterid": "SenMikeLee",
+        "youtubeid": "senatormikelee"
+    },
+    "phone": "202-224-5444",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "UT",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.lee.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Wisconsin",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "328 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.ronjohnson.senate.gov/public/index.cfm/email-the-senator",
+        "fax": "920-230-7262",
+        "office": "328 Hart Senate Office Building",
+        "rss_url": "http://www.ronjohnson.senate.gov/public/index.cfm/rss/feed"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "J000293",
+        "birthday": "1955-04-08",
+        "cspanid": 62835,
+        "firstname": "Ron",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Johnson",
+        "link": "https://www.govtrack.us/congress/members/ron_johnson/412496",
+        "middlename": "",
+        "name": "Sen. Ron Johnson [R-WI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00032546",
+        "pvsid": "126217",
+        "sortname": "Johnson, Ron (Sen.) [R-WI]",
+        "twitterid": "SenRonJohnson",
+        "youtubeid": "SenatorRonJohnson"
+    },
+    "phone": "202-224-5323",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "WI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.ronjohnson.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Senior Senator for Hawaii",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "722 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.schatz.senate.gov/contact",
+        "fax": "202-228-1153",
+        "office": "722 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "S001194",
+        "birthday": "1972-10-20",
+        "cspanid": 87784,
+        "firstname": "Brian",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Schatz",
+        "link": "https://www.govtrack.us/congress/members/brian_schatz/412507",
+        "middlename": "Emanuel",
+        "name": "Sen. Brian Schatz [D-HI]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00028138",
+        "pvsid": "17852",
+        "sortname": "Schatz, Brian (Sen.) [D-HI]",
+        "twitterid": "SenBrianSchatz",
+        "youtubeid": "senbrianschatz"
+    },
+    "phone": "202-224-3934",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "senior",
+    "senator_rank_label": "Senior",
+    "startdate": "2017-01-03",
+    "state": "HI",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.schatz.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Illinois",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "524 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.duckworth.senate.gov/content/contact-senator",
+        "office": "524 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "D000622",
+        "birthday": "1968-03-12",
+        "cspanid": 94484,
+        "firstname": "Tammy",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Duckworth",
+        "link": "https://www.govtrack.us/congress/members/tammy_duckworth/412533",
+        "middlename": "",
+        "name": "Sen. Tammy Duckworth [D-IL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00027860",
+        "pvsid": "57442",
+        "sortname": "Duckworth, Tammy (Sen.) [D-IL]",
+        "twitterid": "SenDuckworth",
+        "youtubeid": "repduckworth"
+    },
+    "phone": "202-224-2854",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "IL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.duckworth.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for California",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "112 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.harris.senate.gov/contact",
+        "office": "112 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "H001075",
+        "birthday": "1964-10-20",
+        "cspanid": 1018696,
+        "firstname": "Kamala",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Harris",
+        "link": "https://www.govtrack.us/congress/members/kamala_harris/412678",
+        "middlename": "",
+        "name": "Sen. Kamala Harris [D-CA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00036915",
+        "pvsid": "120012",
+        "sortname": "Harris, Kamala (Sen.) [D-CA]",
+        "twitterid": "SenKamalaHarris",
+        "youtubeid": null
+    },
+    "phone": "202-224-3553",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "CA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.harris.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Louisiana",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "383 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.kennedy.senate.gov/public/email-me",
+        "office": "383 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "K000393",
+        "birthday": "1951-11-21",
+        "cspanid": 1011723,
+        "firstname": "John",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Kennedy",
+        "link": "https://www.govtrack.us/congress/members/john_kennedy/412679",
+        "middlename": "Neely",
+        "name": "Sen. John Kennedy [R-LA]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00026823",
+        "pvsid": "35496",
+        "sortname": "Kennedy, John (Sen.) [R-LA]",
+        "twitterid": "SenJohnKennedy",
+        "youtubeid": null
+    },
+    "phone": "202-224-4623",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "LA",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.kennedy.senate.gov/public"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for New Hampshire",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "330 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.hassan.senate.gov/content/contact-senator",
+        "office": "330 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "H001076",
+        "birthday": "1958-02-27",
+        "cspanid": 67481,
+        "firstname": "Margaret",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Hassan",
+        "link": "https://www.govtrack.us/congress/members/margaret_hassan/412680",
+        "middlename": "Wood",
+        "name": "Sen. Margaret “Maggie” Hassan [D-NH]",
+        "namemod": "",
+        "nickname": "Maggie",
+        "osid": "N00038397",
+        "pvsid": "42552",
+        "sortname": "Hassan, Margaret “Maggie” (Sen.) [D-NH]",
+        "twitterid": "Senatorhassan",
+        "youtubeid": null
+    },
+    "phone": "202-224-3324",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "NH",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.hassan.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116,
+        117
+    ],
+    "current": true,
+    "description": "Junior Senator for Nevada",
+    "district": null,
+    "enddate": "2023-01-03",
+    "extra": {
+        "address": "204 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.cortezmasto.senate.gov/contact",
+        "office": "204 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "C001113",
+        "birthday": "1964-03-29",
+        "cspanid": 105698,
+        "firstname": "Catherine",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Cortez Masto",
+        "link": "https://www.govtrack.us/congress/members/catherine_cortez_masto/412681",
+        "middlename": "",
+        "name": "Sen. Catherine Cortez Masto [D-NV]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00037161",
+        "pvsid": "69579",
+        "sortname": "Cortez Masto, Catherine (Sen.) [D-NV]",
+        "twitterid": "sencortezmasto",
+        "youtubeid": null
+    },
+    "phone": "202-224-3542",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2017-01-03",
+    "state": "NV",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.cortezmasto.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Alabama",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "326 Russell Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.jones.senate.gov/content/contact-senator",
+        "office": "326 Russell Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "J000300",
+        "birthday": "1954-05-04",
+        "cspanid": 1024592,
+        "firstname": "Doug",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Jones",
+        "link": "https://www.govtrack.us/congress/members/doug_jones/412741",
+        "middlename": "",
+        "name": "Sen. Doug Jones [D-AL]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00024817",
+        "pvsid": "176464",
+        "sortname": "Jones, Doug (Sen.) [D-AL]",
+        "twitterid": "sendougjones",
+        "youtubeid": null
+    },
+    "phone": "202-224-4124",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2018-01-03",
+    "state": "AL",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.jones.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115
+    ],
+    "current": true,
+    "description": "Junior Senator for Mississippi",
+    "district": null,
+    "enddate": "2018-11-27",
+    "extra": {
+        "address": "G12 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.hydesmith.senate.gov/content/contact-senator",
+        "end-type": "special-election",
+        "how": "appointment",
+        "office": "G12 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "H001079",
+        "birthday": "1959-05-10",
+        "cspanid": null,
+        "firstname": "Cindy",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Hyde-Smith",
+        "link": "https://www.govtrack.us/congress/members/cindy_hyde_smith/412743",
+        "middlename": "",
+        "name": "Sen. Cindy Hyde-Smith [R-MS]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00043298",
+        "pvsid": null,
+        "sortname": "Hyde-Smith, Cindy (Sen.) [R-MS]",
+        "twitterid": "SenHydeSmith",
+        "youtubeid": null
+    },
+    "phone": "202-224-5054",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2018-04-09",
+    "state": "MS",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.hydesmith.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Arizona",
+    "district": null,
+    "enddate": "2020-11-03",
+    "extra": {
+        "address": "G12 Dirksen Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.kyl.senate.gov/content/contact-senator-kyl",
+        "end-type": "special-election",
+        "fax": "202-228-2862",
+        "how": "appointment",
+        "office": "G12 Dirksen Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Republican",
+    "person": {
+        "bioguideid": "K000352",
+        "birthday": "1942-04-25",
+        "cspanid": null,
+        "firstname": "Jon",
+        "gender": "male",
+        "gender_label": "Male",
+        "lastname": "Kyl",
+        "link": "https://www.govtrack.us/congress/members/jon_kyl/300062",
+        "middlename": "",
+        "name": "Sen. Jon Kyl [R-AZ]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00006406",
+        "pvsid": "26721",
+        "sortname": "Kyl, Jon (Sen.) [R-AZ]",
+        "twitterid": null,
+        "youtubeid": null
+    },
+    "phone": "202-224-2235",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class3",
+    "senator_class_label": "Class 3",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2018-09-05",
+    "state": "AZ",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.kyl.senate.gov"
+},
+{
+    "caucus": null,
+    "congress_numbers": [
+        115,
+        116
+    ],
+    "current": true,
+    "description": "Junior Senator for Minnesota",
+    "district": null,
+    "enddate": "2021-01-03",
+    "extra": {
+        "address": "309 Hart Senate Office Building Washington DC 20510",
+        "contact_form": "https://www.smith.senate.gov/content/contact-senator",
+        "office": "309 Hart Senate Office Building"
+    },
+    "leadership_title": null,
+    "party": "Democrat",
+    "person": {
+        "bioguideid": "S001203",
+        "birthday": "1958-03-04",
+        "cspanid": 111313,
+        "firstname": "Tina",
+        "gender": "female",
+        "gender_label": "Female",
+        "lastname": "Smith",
+        "link": "https://www.govtrack.us/congress/members/tina_smith/412742",
+        "middlename": "Flint",
+        "name": "Sen. Tina Smith [D-MN]",
+        "namemod": "",
+        "nickname": "",
+        "osid": "N00042353",
+        "pvsid": "152968",
+        "sortname": "Smith, Tina (Sen.) [D-MN]",
+        "twitterid": "SenTinaSmith",
+        "youtubeid": null
+    },
+    "phone": "202-224-5641",
+    "role_type": "senator",
+    "role_type_label": "Senator",
+    "senator_class": "class2",
+    "senator_class_label": "Class 2",
+    "senator_rank": "junior",
+    "senator_rank_label": "Junior",
+    "startdate": "2018-11-07",
+    "state": "MN",
+    "title": "Sen.",
+    "title_long": "Senator",
+    "website": "https://www.smith.senate.gov"
+}

+ 203 - 0
sample/select_object.go

@@ -0,0 +1,203 @@
+package sample
+
+import (
+	"fmt"
+	"io/ioutil"
+	
+	"github.com/aliyun/aliyun-oss-go-sdk/oss"
+)
+
+// SelectObjectSample shows how to get data from csv/json object by sql
+func SelectObjectSample() {
+	// Create a bucket
+	bucket, err := GetTestBucket(bucketName)
+	if err != nil {
+		HandleError(err)
+	}
+
+	//
+	// Create a Csv object
+	//
+	err = bucket.PutObjectFromFile(objectKey, localCsvFile)
+	if err != nil {
+		HandleError(err)
+	}
+
+	// Create Csv Meta
+	csvMeta := oss.CsvMetaRequest{}
+	ret, err := bucket.CreateSelectCsvObjectMeta(objectKey, csvMeta)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("csv file meta:", ret)
+
+	// case 1: Isn't NULL
+	selReq := oss.SelectRequest{}
+	selReq.Expression = "select Year, StateAbbr, CityName, PopulationCount from ossobject where CityName != ''"
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+
+	body, err := bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err := ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("some data in SelectCSVObject result:", string(databyte[:9]))
+
+	// case 2: Like
+	selReq = oss.SelectRequest{}
+	selReq.Expression =  "select Year, StateAbbr, CityName, Short_Question_Text from ossobject where Measure like '%blood pressure%Years'"
+	selReq.InputSerializationSelect.CsvBodyInput.FileHeaderInfo = "Use"
+	body, err = bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err = ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("some data in SelectCSVObject result:", string(databyte[:9]))
+
+	// delete object
+	err = bucket.DeleteObject(objectKey)
+	if err != nil {
+		HandleError(err)
+	}
+
+	//
+	// Create a LINES json object
+	//
+	err = bucket.PutObjectFromFile(objectKey, localJSONLinesFile)
+	if err != nil {
+		HandleError(err)
+	}
+
+	// Create LINES JSON Meta
+	jsonMeta := oss.JsonMetaRequest{
+		InputSerialization: oss.InputSerialization {
+			JSON: oss.JSON {
+				JSONType:"LINES",
+			},
+		},
+	}
+	restSt, err := bucket.CreateSelectJsonObjectMeta(objectKey, jsonMeta)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("csv json meta:", restSt)
+
+	// case 1: sql where A=B
+	selReq = oss.SelectRequest{}
+	selReq.Expression = "select * from ossobject where party = 'Democrat'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+
+	body, err = bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err = ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("some data in SelectJsonObject result:", string(databyte[:9]))
+
+	// case 2: LIKE
+	selReq = oss.SelectRequest{}
+	selReq.Expression = "select person.firstname, person.lastname from ossobject where person.birthday like '1959%'"
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "LINES"
+
+	body, err = bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err = ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("some data in SelectJsonObject result:", string(databyte[:9]))
+
+	// delete object
+	err = bucket.DeleteObject(objectKey)
+	if err != nil {
+		HandleError(err)
+	}
+
+	//
+	// Create a Document json object
+	//
+	err = bucket.PutObjectFromFile(objectKey, localJSONFile)
+	if err != nil {
+		HandleError(err)
+	}
+
+	// case 1: int avg, max, min 
+	selReq = oss.SelectRequest{}
+	selReq.Expression = `
+	select 
+		avg(cast(person.cspanid as int)), max(cast(person.cspanid as int)), 
+		min(cast(person.cspanid as int)) 
+	from 
+		ossobject.objects[*] 
+	where 
+		person.cspanid = 1011723
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "Document"
+	
+	body, err = bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err = ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("data:", string(databyte))
+
+	// case 2: Concat
+	selReq = oss.SelectRequest{}
+	selReq.Expression = `
+	select 
+		person 
+	from 
+		ossobject.objects[*] 
+	where 
+		(person.firstname || person.lastname) = 'JohnKennedy'
+	`
+	selReq.OutputSerializationSelect.JsonBodyOutput.RecordDelimiter = ","
+	selReq.InputSerializationSelect.JsonBodyInput.JSONType = "Document"
+	
+	body, err = bucket.SelectObject(objectKey, selReq)
+	if err != nil {
+		HandleError(err)
+	}
+	defer body.Close()
+
+	databyte, err = ioutil.ReadAll(body)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("some data in SelectJsonObject result:", string(databyte[:9]))
+	
+	// Delete the object and bucket
+	err = DeleteTestBucketAndObject(bucketName)
+	if err != nil {
+		HandleError(err)
+	}
+
+	fmt.Println("SelectObjectSample completed")
+}