80

API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

  • Upload
    others

  • View
    93

  • Download
    0

Embed Size (px)

Citation preview

Page 1: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

API Documentation for XML and JSON

A technical reference for programmatically obtaining data from

www.followthemoney.org

Edited by

Greg Schneider

Ken Feaster

Scott Wahl

National Institute on Money in State Politics

Page 2: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

Contents

1 API 2

1.1 What is the API? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Where is the API? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 What is returned by the API? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 What is in this document? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Metainfo 4

2.1 Tag List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Records 34

3.1 Static Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Dynamic Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4 Appendix 74

4.1 Full XML Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.2 Full JSON Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

1

Page 3: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

API 11.1 What is the API?

API stands for Application Program Interface, which is a mouthful of terms that boils down toanother way of accessing a database within your programs or websites. The di�erence is that thisdatabase is not stored on your servers or computers, but comes to you from across the internetand is maintained by someone else. In our case, we give you access to our campaign-�nancedatabase, which we update on a regular basis. If you are a Web site programmer and familiarwith creating dynamic Web pages that update from a database, then working with our APIsshould be a snap. You'll be able to integrate our data into your Web site in any fashion youdesire. And the best part is, you don't have to worry about the data. That's our job.

1.2 Where is the API?

Before using the API, you must have created a myFollowTheMoney account and be logged intothe website. Your account is automatically given an API key with which you can access thedata.

Using the API is best done by starting on the website and �nding the data you would like.To do so, go the the home page at beta.followthemoney.org and click on Start Here tobegin the advanced search. When you have de�ned what data you would like, clicking on Gowill take you to the results page. On the results page, you can click one of the standard optionsin the green buttons to view the data instead of just the summary. You can also click on TableViewer in Visualization Options to view the table.

Now that you have what data you want, it is necessary to specify how you want to look at thedata. This can be done by selecting di�erent Display By options. These are located directlyabove the table. Each selection adds di�erent �elds and breaks out the data into separate rows,each summarized by the relevant selection. As an example, selecting Candidate splits the datainto rows where each row lists all of the records associated with a single candidate. Selectingan addition option, such as In-State in the Contributors section would further split the data.The resulting rows would then be a summary of each candidate and the records that are in-stateor out-of-state. We encourage you to try multiple di�erent sets to get the exact type of datathat interests you.

Once you have the data as you like it, the next step involves the three di�erent options fordata export. These options are located at the bottom of the box that contains the table. Thetwo most important options in regards to the API are XML and JSON. It is possible to alsouse the text exports, but they are not designed to be easily imported into a website or program.Clicking an option will provide the link necessary to directly access that data in your preferredformat.

2

Page 4: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 1. API 3

1.3 What is returned by the API?

Using the link provided by the export options will return either an XML or JSON formattedpage containing everything necessary to recreate the rows in the table that created the API link.Both XML and JSON utilize a very similar structure in their presentation of data. The overalltree structure is the same, with the only di�erences being that attributes in XML are listed assub-elements of the tag in JSON.

At the start of the page is a single, base-level tag encapsulating the entire response fromthe server. For XML, this is a tag named response, while in JSON this is the opening brace.From there, the page is primarily broken out into two di�erent sections: metaInfo and records.The examples include formatting not present in the actual result in order to make the examplesreadable. There is no extra whitespace in the returned document.

• metaInfo shows what the data is and how to change the API call to get di�erent groupingsand sets of data.

• records portion is the actual data itself, containing all of the �elds selecting when initiallycreating the table as described in the previous section.

A brief example of the opening tag is provided below for both XML and JSON.

Example 1.1 response: XML

1 <response >

2 <metaInfo >...</metaInfo >

3 <records >...</records >

4 </response >

Example 1.2 response: JSON

1 {

2 "metaInfo":{...},

3 "records":[...]

4 }

1.4 What is in this document?

The rest of the document details the speci�cs of the API results and what each element in thepage means. These de�nitions are split into two chapters, one for metaInfo and records. Eachof these chapters begins with an broad level description of what is contained in that chapterand how to interpret the information given. Following this description is a list of the tags andde�nitions relevant for that chapter. Following those two chapters is the appendix. The appendixcontains a full example of an API call in both XML and JSON formats.

Page 5: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

Metainfo 2This chapter describes the tags present in the metaInfo portion of the results. These tags areprovided to aid in understanding the results as well as to make it possible to change the APIcall to get a di�erent set of records.

Each tag described in the following sections use a speci�c format. A de�nition of the tag isprovided at the start of the section. Following this description is a set of properties of that tag.These properties are de�ned below.

Content

Content de�nes the exact nature of what is encapsulated by the tag.Usage

Usage is only de�ned on what are leaf-node tags (those without other children). The de-scription in this section tells if and how the information contained in the tag can be used tomodify the API call and retrieve a di�erent set of records.

Parent

Parent is the direct parent of the tag.Children

Children is the set of children that are descended from this tag. This property is only de�nedfor those tags that have direct children tags.

Following the list of properties are examples of the tag in both XML and JSON.

4

Page 6: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 5

2.1 Tag List

MetaInfo

metaInfo contains all of the information necessary for processing the set of records containedin the records tag. It's children contain information necessary for modifying the API call tochange the paging, grouping, and sorting settings for the data.

Content

metaInfo only contains children tags and has no content of its own. Together, its childrencontain all of the meta-data for the response.

Parent

• response

Children

• format

• completeness

• paging

• grouping

• sorting

• recordFormat

Example 2.1 metaInfo: XML

1 <metaInfo >

2 <format >xml</format >

3 <completeness >...</completeness >

4 <paging >...</paging >

5 <grouping >...</grouping >

6 <sorting >...</sorting >

7 <recordFormat >...</recordFormat >

8 </metaInfo >

Example 2.2 metaInfo: JSON

1 "metaInfo":{

2 "format":"json",

3 "completeness":{...},

4 "paging":{...},

5 "grouping":{...},

6 "sorting":{...},

7 "recordFormat":{...}

8 }

Page 7: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 6

Format

format represents the type of API call made. While this can generally be ignored, it is providedfor completeness.

Content

format takes one of the following values: �xml� or �json�.

Usage

Technically it is possible to use the values in format. In the API call, there is a parametercalled mode that determines if the response is encoded in XML or JSON. Setting mode = xml ormode = json will set the format of the data returned.

Parent

• metaInfo

Example 2.3 format: XML

1 <format >xml</format >

Example 2.4 format: JSON

1 "format":"json"

Page 8: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 7

Completeness

completeness describes the state of collection of reports from disclosure agencies. The Institutebases the number of reports that should be collected by the standards set by the various disclosureagencies. As reports are added to the database, the �completeness� of the data increases, whichis what the information under this tag re�ects. The information contained can be used to knowif more data is likely to be added to the current data set in the future.

Content

completeness only contains children tags and has no content of its own. Its children provideinformation on how many reports have been collected from disclosure agencies.

Parent

• metaInfo

Children

• allReports

• availableReports

• completeReports

• incompleteAvailable

• lastUpdated

• mostRecentReportDate

Example 2.5 completeness: XML

1 <completeness >

2 <allReports >108</allReports >

3 <availableReports >108</availableReports >

4 <completeReports >108</completeReports >

5 <incompleteAvailable >0</incompleteAvailable >

6 <lastUpdated >2013-07-23 14 :23:49 </lastUpdated >

7 <mostRecentReportDate >2013-01-20 </mostRecentReportDate >

8 </completeness >

Example 2.6 completeness: JSON

1 "completeness"{

2 "allReports":"108",

3 "availableReports":"108",

4 "completeReports":"108",

5 "incompleteAvailable":"0",

6 "lastUpdated":"2013-07-23 14:23:49",

7 "mostRecentReportDate":"2013-01-20"

8 }

Page 9: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 8

AllReports

allReports lists the number of reports that should be �led according to the appropriate disclo-sure agency. This includes reports which are not yet due.

Content

Valid values for allReports are non-negative integer values.

Usage

allReports can be used in conjunction with its sibling tags availableReports, completeReports,and incompleteReports to determine if more data may be added to the results in the future.

Parent

• completeness

Example 2.7 allReports: XML

1 <allReports >108</allReports >

Example 2.8 allReports: JSON

1 "allReports":"108"

Page 10: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 9

AvailableReports

availableReports lists the number of reports that should be available from the disclosureagencies.

Content

Valid values for availableReports are non-negative integers and must be less than or equal tothe value for allReports. Additionally, it should be equal to the sum of completeReports andincompleteReports.

Usage

availableReports should be used with the value in allReports to calculate the percentage ofreports that have been made available by the disclosure agencies.

Parent

• completeness

Example 2.9 availableReports: XML

1 <availableReports >108</availableReports >

Example 2.10 availableReports: JSON

1 "availableReports":"108"

Page 11: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 10

CompleteReports

completeReports lists the number of reports that have been loaded into the database.

Content

Valid values for completeReports are non-negative integers that must be less than or equal tothe value for availableReports.

Usage

completeReports can be used with availableReports to determine what percentage of theavailable reports are complete.

Parent

• completeness

Example 2.11 completeReports: XML

1 <completeReports >108</completeReports >

Example 2.12 completeReports: JSON

1 "completeReports":"108"

Page 12: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 11

IncompleteAvailable

incompleteAvailable lists the number or reports that have not yet been added to the Institute'sdatabase.

Content

Valid values for incompleteReports are non-negative integers that must be less than or equalto the value for availableReports.

Usage

incompleteReports can be used with availableReports to determine the percentage of avail-able reports that have not been uploaded.

Parent

• completeness

Example 2.13 incompleteAvailable: XML

1 <incompleteAvailable >0</incompleteAvailable >

Example 2.14 incompleteAvailable: JSON

1 "incompleteAvailable":"0"

Page 13: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 12

LastUpdated

lastUpdated is the most recent time a report relevant to the API call was updated

Content

The tag is a timestamp value of the form YYYY-MM-DD HH:MM:SS.

Usage

This tag is mostly provided for edi�cation.

Parent

• lastUpdated

Example 2.15 lastUpdated: XML

1 <lastUpdated >2013-07-23 14 :23:49 </lastUpdated >

Example 2.16 lastUpdated: JSON

1 "lastUpdated":"2013-07-23 14:23:49"

Page 14: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 13

MostRecentReportDate

mostRecentReportDate describes the most recent day on which the content or progress statuswas updated on a report. This is slightly di�erent than lastUpdated in that it describes theday it was loaded into the system and not updates that may happen afterwards.

Content

The tag is a date value of the form YYYY-MM-DD.

Usage

This tag is mostly provided for edi�cation.

Parent

• mostRecentReportDate

Example 2.17 mostRecentReportDate: XML

1 <mostRecentReportDate >2013-01-20 </mostRecentReportDate >

Example 2.18 mostRecentReportDate: JSON

1 "mostRecentReportDate":"2013-01-20"

Page 15: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 14

Paging

paging describes the subset of data retrieved by the API call. For the XML and JSON APIs, thenumber of records returned is limited for each individual call. To get more records, subsequentcalls must be made to get additional data. Adding p=#, where # is the page number to access,will retrieve that page of records.

Content

paging only contains children tags and has no content of its own. Its children provide informationon the current page of records as well as the number of other pages in the set of data.

Parent

• metaInfo

Children

• pageLink

• minPage

• currentPage

• maxPage

• totalPages

• totalRecords

• recordsPerPage

• recordsThisPage

Example 2.19 paging: XML

1 <paging >

2 <pageLink >p=4</pageLink >

3 <minPage >0</minPage >

4 <currentPage >4</currentPage >

5 <maxPage >50</maxPage >

6 <totalPages >51</totalPages >

7 <totalRecords >5052</totalRecords >

8 <recordsPerPage >100</recordsPerPage >

9 <recordsThisPage >100</recordsThisPage >

10 </paging >

Example 2.20 paging: JSON

1 "paging":{

2 "pageLink":"p=4",

3 "minPage":0,

4 "currentPage":4,

5 "maxPage":50,

6 "totalPages":51,

7 "totalRecords":"5052",

8 "recordsPerPage":100,

9 "recordsThisPage":100

10 }

Page 16: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 15

PageLink

Each API request is limited in the total number of rows that can be returned. If it is necessaryto get more than the limit in records, then additional calls must be made to get di�erent pagesof results. The tag pageLink determines which page is returned by the API call.

Content

Valid values for pageLink consist of the string �p = #� where # is a non-negative integer. The�rst page of results is considered to be p = 0. The maximum value depends upon the numberof total records that satisfy the base query.

Usage

pageLink can be used by setting the integer portion of �p = #� to the desired page in the APIrequest URL. Limits to the page numbers are given by minPage and maxPage. The current pagecan also be inferred from pageLink, but is also available in raw integer format in currentPage.

Parent

• paging

Example 2.21 pageLink: XML

1 <paging >

2...

3 <pageLink >p=4</pageLink >

4...

5 </paging >

Example 2.22 pageLink: JSON

1 "paging":{

2...

3 "pageLink":"4",

4...

5 }

Page 17: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 16

MinPage

MinPage indicates the lowest allowed value for paging. Paging for the APIs begin counting atzero instead of one.

Content

The value is strictly 0.

Usage

By basing the paging on minPage, any program or website relying on the API can ensure thatit correctly locates the starting page of the results.

Parent

• paging

Example 2.23 minPage: XML

1 <minPage >0</minPage >

Example 2.24 minPage: JSON

1 "minPage":"0"

Page 18: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 17

CurrentPage

currentPage is the page number of the set of records returned by the API.

Content

Valid values for currentPage are non-negative integers.

Usage

If you want to get the next page of records from the API, adding one to the value in currentPage

and setting p=# in the URL to the new value.

Parent

• paging

Example 2.25 currentPage: XML

1 <currentPage >4</currentPage >

Example 2.26 currentPage: JSON

1 "currentPage":"4"

Page 19: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 18

MaxPage

maxPage is the number of the last page of results for the API request.

Content

Valid values for maxPage are non-negative integers.

Usage

Use maxPage when getting additional pages from the API to prevent going past the end of therecords.

Parent

• paging

Example

Example 2.27 maxPage: XML

1 <maxPage >50</maxPage >

Example 2.28 maxPage: JSON

1 "maxPage":"50"

Page 20: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 19

TotalPages

totalPages describes the total number of pages of results returned by the API call.

Content

Valid values for totalPages are non-negative integers and will be one larger than the value givenby maxPage.

Usage

totalPages can be used as a di�erent method to know how many times to get additional pagesto get all of the records that satisfy the �ltering and grouping portion of the API call.

Parent

• paging

Example 2.29 totalPages: XML

1 <totalPages >51</totalPages >

Example 2.30 totalPages: JSON

1 "totalPages":"51"

Page 21: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 20

TotalRecords

totalRecords tells the total number of individual rows that can be returned by the API basedon the provided �ltering and grouping options. These records will be on multiple pages if thenumber of records exceeds what is listed in recordsPerPage.

Content

Valid values for totalRecords are non-negative integers.

Usage

When trying to get all of the rows from an API query, totalRecords can be used to verify thatall of the results have been retrieved.

Parent

• paging

Example 2.31 totalRecords: XML

1 <totalRecords >5052</totalRecords >

Example 2.32 totalRecords: JSON

1 "totalRecords":"5052"

Page 22: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 21

RecordsPerPage

recordsPerPage lists the number of maximum number of rows that will be returned by theAPI call in a single request. In order to get more records, additional requests must be made fordi�erent pages.

Content

The value for this tag is always 100.

Usage

This is provided for edi�cation as well as another reference for determining how many pages ofdata there are for a request when used in conjunction with totalRecords.

Parent

• paging

Example 2.33 recordsPerPage: XML

1 <recordsPerPage >100</recordsPerPage >

Example 2.34 recordsPerPage: JSON

1 "recordsPerPage":"100"

Page 23: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 22

RecordsThisPage

recordsThisPage gives the number of rows in the records portion of the response.

Content

Valid values for recordsThisPage are positive integers. This value is also less than or equal torecordsPerPage.

Usage

When retrieving the last page of records, the number of rows may be less than the maximumallowed number of rows per page. This value will inform how many records are in the recordsportion prior to parsing that section.

Parent

• paging

Example 2.35 recordsThisPage: XML

1 <recordsThisPage >52</recordsThisPage >

Example 2.36 recordsThisPage: JSON

1 "recordsThisPage":"52"

Page 24: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 23

Grouping

grouping contains all of the information about how the data has been grouped. When usingthe �Ask Anything� or API, grouping options break the overall summary of data into smallersummaries and add �elds to describe the new summary. As an example, grouping by candidateinformation adds �elds relevant to the candidate (name, incumbency, party, etc.) and each rowis a summary of information for that candidate.

Content

grouping only contains children tags and has no content of its own.

Parent

• metaInfo

Children

• groupLink• currentGrouping• availableGrouping

Example 2.37 grouping: XML

1 <grouping >

2 <groupLink >d-eid</groupLink >

3 <currentGrouping >...</currentGrouping >

4 <availableGrouping >...</availableGrouping >

5 </grouping >

Example 2.38 grouping: JSON

1 "grouping":{

2 "groupLink":"d-eid",

3 "currentGrouping":{...},

4 "availableGrouping":{...}

5 }

Page 25: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 24

GroupLink

groupLink is the URL parameter of the current grouping options.

Content

Valid values for groupLink consist of the string �gro = ...� where ... is a comma separated listof the tokens used in the grouping options.

Usage

groupLink can be used by setting the list portion of �gro = ...� to the comma-separated list oftokens in the API request URL. If you are adding a grouping option to the current set, the tokenslisted in availableGrouping list tokens that do not con�ict with the current set of groupingoptions.

Parent

• grouping

Example 2.39 groupLink: XML

1 <groupLink >gro=d-eid</groupLink >

Example 2.40 groupLink: JSON

1 "groupLink":"d-eid"

Page 26: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 25

CurrentGrouping

currentGrouping describes the current set of options being used to summarize the data.

Content

currentGrouping contains a set of children tags that correspond to the set of grouping optionslisted in groupLink. It does not have content of its own.

Parent

• grouping

Children

This tag di�ers from most of the other tags in that the set of children is not static. Instead,there is a child for each of the individual grouping options set in groupLink. These children allfollow the same form where the name of the tag or object is the token itself, i.e. d-eid, and thecontent within is the descriptive name of that token along with the category to which it belongs.

The full list of these options is below. As these are record level �elds, the descriptions ofeach of these tokens and the �elds they are related to are located in the records section of thisdocument.

• s: Election State (General)• y: Election Year (General)• f-s: Filing State (General)• f-eid: Filer (General)• f-y: Filing Year (Advanced)• c-r-osid: O�ce Sought (Advanced)• c-r-oc: O�ce (Advanced)• c-t-i: Incumbency Data (Advanced)• c-t-icod: Incumbency Advantage (Advanced)• d-nme: Original Name (Advanced)• d-amt: Amount (Advanced)• d-dte: Date (Advanced)• d-ludte: Last Updated (Advanced)• d-typ: Type of Transaction (Advanced)• d-ad-str: Street (Advanced)• c-t-id: Candidate (Candidates)• c-t-p: Political Party (Candidates)• c-t-pt: Party Details (Candidates)• c-t-eid: Career Summary (Candidates)• c-r-id: Political Race (Candidates)• c-r-ot: Type of O�ce (Candidates)• c-t-sts: Status of Candidate (Candidates)• c-t-ico: Incumbency Status (Candidates)• d-id: Record (Contributors)• d-eid: Contributor (Contributors)• d-et: Type of Contributor (Contributors)• d-ccb: Business Classi�cation (Contributors)• d-cci: Industry (Contributors)• d-ccg: Sector (Contributors)• d-ad-cty: City (Contributors)• d-ad-st: State (Contributors)• d-ad-zip: Zip (Contributors)• d-ins: In-State (Contributors)

Page 27: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 26

• d-empl: Employer (Contributors)• d-occupation: Occupation (Contributors)

Example 2.41 currentGrouping: XML

1 <currentGrouping >

2 <d-eid >Contributor (Contributors)</d-eid>

3 </currentGrouping >

Example 2.42 currentGrouping: JSON

1 "currentGrouping":{

2 "d-eid":"Contributor (Contributors)"

3 }

Page 28: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 27

AvailableGrouping

availableGrouping contains all of the grouping options that are valid based on the currentgrouping options. Since some options are mutually exclusive, it is not possible to use all of theoptions at once.

Content

availableGrouping contains a set of children tags that correspond to the set of possible groupingoptions with consideration to groupLink. It does not have content of its own.

Parent

• grouping

Children

This tag di�ers from most of the other tags in that the set of children is not static. Instead,there is a child for each of the individual possible grouping options. These children all follow thesame form where the name of the tag or object is the token itself, i.e. d-eid, and the contentwithin is the descriptive name of that token along with the category to which it belongs.

The full list of these options is below. As these are record level �elds, the descriptions ofeach of these tokens and the �elds they are related to are located in the records section of thisdocument.

• s: Election State (General)• y: Election Year (General)• f-s: Filing State (General)• f-eid: Filer (General)• f-y: Filing Year (Advanced)• c-r-osid: O�ce Sought (Advanced)• c-r-oc: O�ce (Advanced)• c-t-i: Incumbency Data (Advanced)• c-t-icod: Incumbency Advantage (Advanced)• d-nme: Original Name (Advanced)• d-amt: Amount (Advanced)• d-dte: Date (Advanced)• d-ludte: Last Updated (Advanced)• d-typ: Type of Transaction (Advanced)• d-ad-str: Street (Advanced)• c-t-id: Candidate (Candidates)• c-t-p: Political Party (Candidates)• c-t-pt: Party Details (Candidates)• c-t-eid: Career Summary (Candidates)• c-r-id: Political Race (Candidates)• c-r-ot: Type of O�ce (Candidates)• c-t-sts: Status of Candidate (Candidates)• c-t-ico: Incumbency Status (Candidates)• d-id: Record (Contributors)• d-eid: Contributor (Contributors)• d-et: Type of Contributor (Contributors)• d-ccb: Business Classi�cation (Contributors)• d-cci: Industry (Contributors)• d-ccg: Sector (Contributors)• d-ad-cty: City (Contributors)• d-ad-st: State (Contributors)

Page 29: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 28

• d-ad-zip: Zip (Contributors)• d-ins: In-State (Contributors)• d-empl: Employer (Contributors)• d-occupation: Occupation (Contributors)

Example 2.43 availableGrouping: XML

1 <availableGrouping >

2 <s>Election State (General)</s>

3 <y>Election Year (General)</y>

4...

5 <d-empl >Employer (Contributors)</d-empl >

6 <d-occupation >Occupation (Contributors)</d-occupation >

7 </availableGrouping >

Example 2.44 availableGrouping: JSON

1 "availableGrouping":{

2 "s":"Election State (General)",

3 "y":"Election Year (General)",

4...

5 "d-empl":"Employer (Contributors)",

6 "d-occupation":"Occupation (Contributors)"

7 }

Page 30: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 29

Sorting

sorting contains the information on the sort options. By default, the rows are sorted by thetotal amount descending.

Content

sorting only contains children tags and has no content of its own.

Parent

• metaInfo

Children

• sortLink

• currentSorting

• sortingDirection

• availableSorting

Example 2.45 sorting: XML

1 <sorting >

2 <sortLink >so=u-tot&sod=0</sortLink >

3 <currentSorting >...</currentSorting >

4 <sortingDirection >descending </sortingDirection >

5 <availableSorting >...</availableSorting >

6 </sorting >

Example 2.46 sorting: JSON

1 "sorting":{

2 "sortLink":"so=u-tot&sod=0",

3 "currentSorting":{...},

4 "sortingDirection":"descending",

5 "availableSorting":{...}

6 }

Page 31: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 30

SortLink

sortLink is the URL parameter that describes the current sorting.

Content

The value for sortLink is a string with two parts separated by an ampersand. The �rst is so(sort) which is set to the token by which the data is sorted. The second is sod (sort direction)which is either 0 or 1, corresponding to descending and ascending respectively.

Usage

By adding the value in this tag to the URL request for the API call, it will set the sortingoptions manually. Changing the token in so to one of the options given in availableSorting

will change �eld by which the data is sorted. Flipping the value in sod switches the sorting fromascending to descending and vice versa.

Parent

• sorting

Example 2.47 sortLink: XML

1 <sortLink >so=u-tot&sod=0</sortLink >

Example 2.48 sortLink: JSON

1 "sortLink":"so=u-tot&sod=0"

Page 32: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 31

CurrentSorting

currentSorting contains the set of tokens being used to sort the data.

Content

currentSorting contains a set of children tags that correspond to the set of sorting optionslisted in sortLink. It does not have content of its own.

Parent

• grouping

Children

This tag di�ers from most of the other tags in that the set of children is not static. Instead,there is a child for each of the currently set sorting options. These children all follow the sameform where the name of the tag or object is the token itself, i.e. d-eid, and the content withinis the descriptive name of that token along with the category to which it belongs.

Since nearly any �eld in the record can be used to sort, and the list of �elds in the recorddepends on the current grouping options, a full list is not provided here. Instead, refer to therecords section for speci�c questions on an API call.

Example 2.49 currentSorting: XML

1 <currentSorting >

2 <u-tot >Total_$</u-tot>

3 </currentSorting >

Example 2.50 currentSorting: JSON

1 "currentSorting":{

2 "u-tot":"Total_$"

3 }

Page 33: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 32

AvailableSorting

availableSorting contains the set of tokens that can be used to sort the data.

Content

availableSorting contains a set of children tags that correspond to the set possible sortingoptions. It does not have content of its own.

Parent

• grouping

Children

This tag di�ers from most of the other tags in that the set of children is not static. Instead,there is a child for each of the currently set sorting options. These children all follow the sameform where the name of the tag or object is the token itself, i.e. d-eid, and the content withinis the descriptive name of that token along with the category to which it belongs.

Since nearly any �eld in the record can be used to sort, and the list of �elds in the recorddepends on the current grouping options, a full list is not provided here. Instead, refer to therecords section for speci�c questions on an API call.

Example 2.51 availableSorting: XML

1 <availableSorting >

2 <d-eid >Contributor </d-eid >

3 <d-et>_Type_of_Contributor </d-et>

4 <u-rec >#_of_Records </u-rec >

5 </availableSorting >

Example 2.52 availableSorting: JSON

1 "availableSorting":{

2 "d-eid":"Contributor",

3 "d-et":"Type_of_Contributor",

4 "u-rec":"#_of_Records"

5 }

Page 34: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 2. METAINFO 33

RecordFormat

recordFormat contains a set of tags that describe the �elds in the records portion of theresponse. The tags will change based on the grouping options given.

Content

recordFormat only contains children tags and has no content of its own.

Parent

• metaInfo

Children

This tag di�ers from most of the other tags in that the set of children is not static. The set ofchildren is dependent upon the grouping options and is comprised of a subset of the �elds listedin the records chapter. Because of this, the full list of possible children is not listed here. Justnote that these children follow the format described their subsection in the records chapter ofthis document.

It should be noted that the request tag that is a child of recordFormat contains the �lteringoptions for the API call. Each reference to request in the records section refer to the �lteringoptions to get the subset of records contained in that row.

Example 2.53 recordFormat: XML

1 <recordFormat >

2 <request >y=2012& c-r-ot=G&d-ccg =7</request >

3 <Contributor token="d-eid" id="token value">

4 display value

5 </Contributor >

6 <Type_of_Contributor token="d-et" id="token value">

7 display value

8 </Type_of_Contributor >

9 <Num_of_Records >display value </Num_of_Records >

10 <Total_Dollars >display value </Total_Dollars >

11 </recordFormat >

Example 2.54 recordFormat: JSON

1 "recordFormat":{

2 "request":"y=2012& c-r-ot=G&d-ccg=7",

3 "Contributor":{

4 "token":"d-eid",

5 "id":"token value",

6 "Contributor":"display value"},

7 "Type_of_Contributor":{

8 "token":"d-et",

9 "id":"token value",

10 "Type_of_Contributor":"display value"},

11 "#_of_Records":{"#_of_Records":"display value"},

12 "Total_$":{"Total_$":"display value"}

13 }

Page 35: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

Records 3This chapter describes the tags present in the records section of the results. It is broken intotwo segments: static and dynamic �elds. The �rst segment describes the tags that are notdirectly related to tokens and are therefore not controlled by the grouping options. These tagsare the parent elements of the record information itself as well as one additional tag: request.The second segment contains all of the tags that are related to tokens. All of these are optionaland are controlled by the grouping options.

3.1 Static Tags

The descriptions of the static �elds follow the same format as the tags in the metaInfo chapterand is described below.

A de�nition of the tag is provided at the start of the section. Following this description is aset of properties of that tag. These properties are de�ned below.

Content

Content de�nes the exact nature of what is encapsulated by the tag.Usage

Usage is only de�ned on what are leaf-node tags (those without other children). The de-scription in this section tells if and how the information contained in the tag can be used tomodify the API call and retrieve a di�erent set of records.

Parent

Parent is the direct parent of the tag.Children

Children is the set of children that are descended from this tag. This property is only de�nedfor those tags that have direct children tags.

Following the list of properties are examples of the tag in both XML and JSON.

34

Page 36: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 35

Records

records is the parent tag of all the raw data returned by the API request.

Content

In XML, this tag contains child tags that hold the raw data. In JSON, records describes anarray of record objects.

Parent

• response

Children

• record

Example 3.1 records: XML

1 <records >

2 <record record_id="401">...</record >

3 <record record_id="402">...</record >

4...

5 <record record_id="499">...</record >

6 <record record_id="500">...</record >

7 </recordFormat >

Example 3.2 records: JSON

1 "records":[

2 {"record_id":401,...},

3 {"record_id":402,...},

4...

5 {"record_id":499,...},

6 {"record_id":500,...}

7 ]

Page 37: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 36

Record

record describes a row of data returned by the API call.

Content

The tag has no content of its own. Instead, its child elements describe the �elds of the returnedrow.

In XML, this tag has an attribute called �record_id�. This attribute is the relative id of therecord within the dataset and describes its position within the paging based on the sorting given.When grouping by �d-id� to get individual records, this is not the unique id of the records.

Parent

• records

Children

The children of record consist of request and a subset of the dynamic tags which are determinedby the grouping options.

Example 3.3 record: XML

1 <record record_id="401">

2 <request >y=2012& c-r-ot=G&d-ccg =7& d-eid =16203852 </request >

3 <Contributor token="d-eid" id="16203852">

4 GOFFSTOWN FITNESS LLC

5 </Contributor >

6 <Type_of_Contributor token="d-et" id="3">

7 Non-Individual

8 </Type_of_Contributor >

9 <Num_of_Records >1</Num_of_Records >

10 <Total_Dollars >5000.00 </Total_Dollars >

11 </record >

Example 3.4 record: JSON

1 {

2 "record_id":401,

3 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =11103",

4 "Contributor":{

5 "token":"d-eid",

6 "id":"11103",

7 "Contributor":"CIVIC SERVICE INC"},

8 "Type_of_Contributor":{

9 "token":"d-et",

10 "id":"3",

11 "Type_of_Contributor":"Non-Individual"},

12 "#_of_Records":{"#_of_Records":"1"},

13 "Total_$":{"Total_$":"5000.00"}

14 }

Page 38: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 37

Request

request describes the �ltering options for a new API call that consists solely of the data in/-summarized by the current row.

Content

A valid value for request is a string of URL parameters.

Usage

If you are familiar with the table viewer on the website, this �eld is the equivalent of themagnifying lens on that page that is used to drill down into the data. By making a new API callwith the �ltering options listed in this tag, the returned results will be just those records thatmatch the new �ltering options. As an example, if the data is grouped by candidate, then the�ltering options in the request would get that candidate's data that also matches the current�ltering options. By making a new call with any desired grouping options, a new analysis canbe made on the subset of data.

Parent

• record

Example 3.5 record: XML

1 <request >y=2012& c-r-ot=G&d-ccg =7& d-eid =16203852 </request >

Example 3.6 record: JSON

1 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =11103"

Page 39: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 38

3.2 Dynamic Tags

The tokens used in the API are described in the following section using a speci�c format. Fol-lowing the name of the token, a de�nition is provided. Speci�c properties of the token follow,which are de�ned below.

Category

Category de�nes a logical set of tokens used primarily in the website display for data manip-ulation. The category is appended to the name of the token in the metaData section of theresults.

Token

Token is the reserved term the system uses to create the queries. When provided as aparameter in the URL directly, the results will be �ltered by the given value or values. Asan example, adding s=MT to the URL will cause the results to only contain records relatedto elections in Montana. When provided as a value in the group portion of the URL, gro,the data is logically grouped by the separate values that token takes within the data as wellas adds �elds to the result set that are related to that token.

Tag

Tag is the term used by XML and JSON that contains all of the relevant information for thetoken. As an example, if a set of records has been grouped by the election state token, s,then the tag for election state is located within each record. This tag contains the value ofthat token as well as additional identifying information for user to re�ne future searches.

Con�icts

Con�icts describe the list of tokens which directly con�ict with the current token. For �lteringand grouping, two tokens that directly con�ict with each other cannot be used at the sametime. This system is in place to prevent queries which innately cannot provide data due todi�ering and mutually exclusive information being provided. As an example, an individualcorrectly �ling reports in Colorado would not be running for election in a di�erent state, suchas Montana. Speci�cally, the �ling state1 informs the election state and it is impossible forcon�icting values to return information. Such a case di�ers from regular queries returning noresults simply by virtue of that speci�c instance of the data not existing. It may be possiblefor the same query to later return information as new disclosure reports are provided. Twotokens may also con�ict with each other for grouping, but not for �ltering. For industry andsector, grouping by industry precludes grouping by sector since it is a parent of industry.However, it is possible to still �lter by an industry and a sector separately where both setsof results are returned.

Following the de�nitions of those properties are three sections which explain how to use thetoken to manipulate the returned data.

Filter

The �rst of these sections describe if and how the token may be used to �lter the data. Withtokens that may be used to �lter data, the values to provide are described. Some of thetokens can be negated by adding an exclamation point in front of the token, returning resultsthat exclude instead of �lter. For example, adding !s=HI,AK to the URL would excludeelections in Hawaii and Alaska from the results, instead of including only those elections.Each description of the �ltering option has examples of the �lter format as well as a textdescription of what that data would be. Multiple tokens can be used as �lters, so long asthey do not con�ict.

Group

The second section describes the e�ect that grouping data by that token. By default, anyAPI call is summarized into a single record. As an example, if the call obtained all donationsrelated to elections in 2012, the returned record would contain a single number adding all of

1Due to the nature of federal elections and state ballots, the type of o�ce is also used in the case of federal

data.

Page 40: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 39

those donations together. Adding tokens to the group parameter separates those donations aswell as adds additional �elds to the records that describe the groupings. Grouping the aboveexample with gro=s would create individual summaries of each state's elections. Groupingdata by individual records, d-id, will return the individual records, instead of summaries.Multiple tokens can be added to the group parameter to create more speci�c data sets.Because grouping adds �elds to the returned data, this section includes a list of all tagsadded to the result set by grouping on that token as well as a list of all other tokens thatwould add the described token's tag to the results. Note that some tags are only referencedin this section. Those tags are not options for �ltering and grouping and are listed simply toaid in parsing.

Tag

The �nal section describes the content of the tag within the XML or JSON data. Mosttags have three parts: token, id, and value. Token and id are listed as attributes of thetag for XML. In the XML data, value is the content of the tag. For JSON, the tag namede�nes an element that can have the sub-elements of token and id. Value is contained inthe sub-element which has the same name as the tag.

The �rst two tags listed are special tags that are given when the data is being summarizedin some fashion. If the grouping options include d-id, these two tags are not included in therecords since they are irrelevant in that situation. Because of their special nature, their listingsonly include a description and example.

Page 41: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 40

Num of Records

If you are not grouping by individual records, Num of Records de�nes how many records areincluded in the summarization de�ned by the current row. Since it is a summary descriptor, itis not possible to �lter or group by Num of Records and those sections are omitted.

Also, it should be noted that the name of the object is di�erent between XML and JSONdue to the formatting requirements of XML.

Example 3.7 Election State: XML

1 <Num_of_Records >

2 5

3 </Num_of_Records >

Example 3.8 Election State: JSON

1 "#_of_Records":{

2 "#_of_Records":"5"

3 }

Total Dollars

If you are not grouping by individual records, Total Dollars de�nes the sum of the amounts listedon each record in the summary. Since it is a summary descriptor, it is not possible to �lter orgroup by Total Dollars and those sections are omitted.

Also, it should be noted that the name of the object is di�erent between XML and JSONdue to the formatting requirements of XML.

Example 3.9 Election State: XML

1 <Total_Dollars >

2 435000.00

3 </Total_Dollars >

Example 3.10 Election State: JSON

1 "Total_$":{

2 "Total_$":"435000.00"

3 }

Page 42: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 41

Election State

Election State describes the state in which the election took place. For state and local levelelections, this value is always the abbreviation of that state. For federal elections, the electionstate varies based on the candidate in that election. Presidential candidates always have anelection state of 'US'. Federal legislative candidates' election state will revert to the actual statethey represent.

Category: GeneralToken: s

Tag: Election_StateCon�icts: Filing State (f-s)

Filter

Valid values for election state are the �fty state abbreviations as well as `US' for presidentialelections.

s=MT

Contributions to Candidates and Committees in elections in Montana

s=US

Contributions to Candidates and Committees in elections in United States Federal

s=MT,ND,US

Contributions to Candidates and Committees in elections in MT, NC, US

Group

Fields added by grouping:gro=s adds: Election_State

Added by: Candidate

Political_Race

Tag

token: �s�id: state abbreviation

value: state abbreviation

Example 3.11 Election State: XML

1 <Election_State token="s" id="NC">

2 NC

3 </Election_State >

Example 3.12 Election State: JSON

1 "Election_State":{

2 "token":"s",

3 "id":"NC",

4 "Election_State":"NC"

5 }

Page 43: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 42

Election Year

Election Year describes the year in which the election took place. For purpose of data grouping,any and all data which should be relevant for an election is tagged with that year. As anexample, a sitting governor would typically have four years to raise money for the next election.Therefore, the four years leading up to that election for the governorship would be tagged withthe year of the election.

Category: GeneralToken: y

Tag: Election_YearCon�icts: Filing Year (f-y)

Filter

Valid values for the election year are years in which elections have taken place.

y=2012

Contributions to Candidates and Committees in elections in 2012

y=2010,2012

Contributions to Candidates and Committees in elections in 2010,2012

Group

Fields added by grouping:gro=y adds: Election_Year

Added by: Candidate

Political_Race

Tag

token: �y�id: year of the election

value: year of the election

Example 3.13 Election Year: XML

1 <Election_Year token="y" id="2012">

2 2012

3 </Election_Year >

Example 3.14 Election Year: JSON

1 "Election_Year":{

2 "token":"y",

3 "id":"2012",

4 "Election_Year":"2012"

5 }

Page 44: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 43

Filing State

Filing State describes the state to which the data was reported. For local and state elections,the �ling state is that state. Federal elections have a �ling state of 'US'.

Category: GeneralToken: f-s

Tag: Filing_StateCon�icts: Election State (s)

Filter

Valid values for the �ling state are the �fty state abbreviations as well as `US' for federal elections.

f-s=MT

Contributions to Candidates and Committees on reports �led in Montana

f-s=US

Contributions to Candidates and Committees on reports �led in United States Federal

f-s=MT,ND,US

Contributions to Candidates and Committees on reports �led in MT, ND, US

Group

Fields added by grouping:gro=f-s adds: Filing_State

Added by: None

Tag

token: �f-s�id: state abbreviation

value: state abbreviation

Example 3.15 Filing State: XML

1 <Filing_State token="f-s" id="MT">

2 MT

3 </Filing_State >

Example 3.16 Filing State: JSON

1 "Filing_State":{

2 "token":"f-s",

3 "id":"MT",

4 "Filing_State":"MT"

5 }

Page 45: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 44

Filer

Filer describes the committee or individual reporting to a disclosure agency.Category: General

Token: f-eid

Tag: FilerCon�icts: None

Filter

Valid values for the �ler are the entity ids for the �ler.

f-eid=6420628

Contributions to GREGG, JOHN R

f-eid=6420628,2912405

Contributions to INSLEE, JAY ROBERT or GREGG, JOHN R

Group

Fields added by grouping:gro=f-eid adds: Filer

Core

Added by: None

Tag

token: �f-eid�id: �ler's entity id

value: �ler's name

Example 3.17 Filer: XML

1 <Filer token="f-eid" id="6420628">

2 GREGG , JOHN R

3 </Filer >

4 <Core token="f-core" id="1">

5 1

6 </Core>

Example 3.18 Filer: JSON

1 "Filer":{

2 "token":"f-eid",

3 "id":"6420628",

4 "Filer":"GREGG, JOHN R"

5 },

6 "Core?":{

7 "token":"f-core",

8 "id":"1",

9 "Core?":"1"

10 }

Page 46: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 45

Filing Year

Filing Year describes the year in which the data was reported to the disclosure agency. Morespeci�cally, it is determined by the reporting period of the report on which it is disclosed.

Category: GeneralToken: f-y

Tag: Filing_YearCon�icts: Election Year (y)

Filter

Valid values for the �ling year are years in which data has been �led.

f-y=2012

Contributions to Candidates and Committees on reports �led in 2012

f-y=2011,2012

Contributions to Candidates and Committees on reports �led in 2011,2012

Group

Fields added by grouping:gro=f-y adds: Filing_Year

Added by: None

Tag

token: �f-y�id: �ling year

value: �ling year

Example 3.19 Filing Year: XML

1 <Filing_Year token="f-y" id="2011">

2 2011

3 </Filing_Year >

Example 3.20 Filing Year: JSON

1 "Filing_Year":{

2 "token":"f-y",

3 "id":"2011",

4 "Filing_Year":"2011"

5 }

Page 47: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 46

Office Sought

O�ce Sought describes the speci�c seat for which a candidate is running. Since the id value ofthat seat doesn't have useful context on its own, the display value of that o�ce refers to thedistrict and o�ce for that seat. In statewide elections, as an example, two gubernatorial seatsin di�erent states will have di�erent id numbers since they are di�erent seats. They will bothbe listed as 'GOVERNOR' for the description.

Category: GeneralToken: c-r-osid

Tag: O�ce_SoughtCon�icts: None

Filter

Valid values for the o�ce sought are ids for the individual o�ces.

c-r-osid=9400

Contributions to candidates in WA-GOVERNOR

c-r-osid=9400,9155

Contributions to candidates in WA-GOVERNOR and MO-LIEUTENANT GOVERNOR

Group

Fields added by grouping:gro=c-r-osid adds: Office_Sought

Added by: Candidate

Political_Race

Tag

token: �c-r-osid�id: id of o�ce

value: description of o�ce

Example 3.21 O�ce Sought: XML

1 <Office_Sought token="c-r-osid" id="9400">

2 GOVERNOR

3 </Office_Sought >

Example 3.22 O�ce Sought: JSON

1 "Office_Sought":{

2 "token":"c-r-osid",

3 "id":"9400",

4 "Office_Sought":"GOVERNOR"

5 }

Page 48: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 47

Office

O�ce describes the general type of seat for which a candidate is running. As and example forthis token, all single-candidate gubernatorial races will have a value of 'GOVERNOR'.

Category: GeneralToken: c-r-oc

Tag: O�ceCon�icts: Type of O�ce (c-r-ot)

Filter

Valid values for the the o�ce are o�ce codes of the form `D##' where the leading letter indicatesthe type of o�ce and the digits represent a sub-type.

c-r-oc=G00

Contributions to GOVERNOR candidates

c-r-oc=G00,G01

Contributions to GOVERNOR or GOVERNOR / LIEUTENANT GOVERNOR candi-dates

Group

Fields added by grouping:gro=c-r-oc adds: Office

Added by: None

Tag

token: �c-r-oc�id: code of o�ce

value: description of o�ce

Example 3.23 O�ce: XML

1 <Office token="c-r-oc" id="G00">

2 GOVERNOR

3 </Office >

Example 3.24 O�ce: JSON

1 "Office":{

2 "token":"c-r-oc",

3 "id":"G00",

4 "Office":"GOVERNOR"

5 }

Page 49: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 48

Incumbency Data

Incumbency Data describes whether or not a candidate was an incumbent.Category: Advanced

Token: c-t-i

Tag: Incumbency_DataCon�icts: None

Filter

Valid values for the incumbency data are ids for the di�ering types of incumbency.

c-t-i=2

Contributions to candidates with incumbency data of Not an Incumbent

c-t-i=2,6

Contributions to candidates with incumbency data of Not an Incumbent or Incumbentfor this Race

Group

Fields added by grouping:gro=c-t-i adds: Incumbency_Data

Added by: None

Tag

token: �c-t-i�id: id of incumbency type

value: description of incumbency

Example 3.25 Incumbency Data: XML

1 <Incumbency_Data token="c-t-i" id="6">

2 Incumbent for this Race

3 </Incumbency_Data >

Example 3.26 Incumbency Data: JSON

1 "Incumbency_Data":{

2 "token":"c-t-i",

3 "id":"6",

4 "Incumbency_Data":"Incumbent for this Race"

5 }

Page 50: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 49

Incumbency Advantage

Incumbency Advantage describes a comparison of candidates running for an election and theirrelative incumbency status. As an example, consider a sitting governor and a sitting legislatorboth running in a gubernatorial race. Since the governor is attempting to be re-elected tothe same position, that person would be an incumbent. The legislator would be a currento�ce holder who is challenging an incumbent. This relationship is what is encoded with theincumbency advantage token.

Category: AdvancedToken: c-t-icod

Tag: Incumbency_AdvantageCon�icts: None

Filter

Valid values for the incumbency advantage or the ids of the di�erent advantage types.

c-t-icod=8

Contributions to candidates with incumbency advantage of Incumbent

c-t-icod=8,5

Contributions to candidates with incumbency advantage of Current O�ce Holder - Chal-lenging Incumbent or Incumbent

Group

Fields added by grouping:gro=c-t-icod adds: Incumbency_Advantage

Added by: None

Tag

token: �c-t-icod�id: id of advantage type

value: description of advantage type

Example 3.27 Incumbency Advantage: XML

1 <Incumbency_Advantage token="c-t-icod" id="5">

2 Current Office Holder - Challenging Incumbent

3 </Incumbency_Advantage >

Example 3.28 Incumbency Advantage: JSON

1 "Incumbency_Advantage":{

2 "token":"c-t-icod",

3 "id":"5",

4 "Incumbency_Advantage":"Current Office Holder - Challenging

Incumbent"

5 }

Page 51: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 50

Original Name

Original Name describes the name as reported to the disclosure agency. Due to the variousreporting methods across states being compressed into a single database, this value may notalways perfectly match the original report.

Category: AdvancedToken: d-nme

Tag: Original_NameCon�icts: None

Filter

Filtering on the original name is disabled.

Group

Fields added by grouping:gro=d-nme adds: Original_Name

Added by: None

Tag

token: �d-nme�id: id of name

value: original name

Example 3.29 Original Name: XML

1 <Original_Name token="d-nme" id="3540226">

2 NAU , JOHN L

3 </Original_Name >

Example 3.30 Original Name: JSON

1 "Original_Name":{

2 "token":"d-nme",

3 "id":"3540226",

4 "Original_Name":"NAU, JOHN L"

5 }

Page 52: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 51

Amount

Amount describes the amount reported to the disclosure agency.Category: Advanced

Token: d-amt

Tag: Filing_StateCon�icts: None

Filter

Valid values for the amount are numbers. Filtering the data by the amount can be done in oneof two ways. If a single value is given, the resulting data will contain only records of exactlythat amount. If two values are given, then all records with an amount in between those givenvalues will be returned. Thus, setting d-amt=1000,5000 will return all records with an amountbetween 1000 and 5000 inclusive.

d-amt=1000

Contributions in the amount of $1000 to Candidates and Committees

d-amt=1000,5000

Contributions with amounts between $1000 and $5000 to Candidates and Committees

Group

Fields added by grouping:gro=d-amt adds: Amount

Added by: None

Tag

token: �d-amt�id: amount on record

value: amount on record

Example 3.31 Amount: XML

1 <Amount token="d-amt" id="1000">

2 1000.00

3 </Amount >

Example 3.32 Amount: JSON

1 "Amount":{

2 "token":"d-amt",

3 "id":"1000",

4 "Amount":"1000.00"

5 }

Page 53: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 52

Date

Date describes the date of the contribution as reported to the disclosure agency. This value maynot be a technically valid date due to errors in reporting, or the date not being disclosed at all.

Category: AdvancedToken: d-dte

Tag: DateCon�icts: None

Request

Valid values for the date are dates in the form of `YYYY-MM-DD'. Filtering the data by the datecan be done in one of two ways. If a single value is given, the resulting data will contain onlyrecords with exactly that date. If two values are given, then all records with a date betweenthose given values will be returned. Thus, setting d-dte=2012-01-01,2012-01-31 would returnall records with a date in January, 2012.

d-dte=2012-01-01

Contributions donated on Jan 01, 2012 to Candidates and Committees

d-dte=2012-01-01,2012-01-31

Contributions donated between Jan 01, 2012 and Jan 31, 2012 to Candidates and Com-mittees

Group

Fields added by grouping:gro=d-dte adds: Date

Added by: None

Tag

token: �d-dte�id: date of donation

value: date of donation

Example 3.33 Date: XML

1 <Date token="d-dte" id="2012-04-23">

2 2012-04-23

3 </Date>

Example 3.34 Date: JSON

1 "Date":{

2 "token":"d-dte",

3 "id":"2012-04-23",

4 "Date":"2012-04-23"

5 }

Page 54: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 53

Last Updated

Last Updated describes when a �eld or relationship concerning the record was most recentlychanged. The changes that cause an update to this date include recipient and donor changes.

Category: AdvancedToken: d-ludte

Tag: Last_UpdatedCon�icts: None

Filter

Valid values for last updated are dates in the form of `YYYY-MM-DD'. Filtering by when the datawas last updated can be done in the same way as date. Giving a single value will return datathat was updated on a speci�c day. If two values are given, then all records updated betweenthe two values will be returned. Thus, setting d-ludte=2012-01-01,2012-01-31 would returnall records that were most recently updated in January, 2012.

d-ludte=2012-01-01

Contributions updated on Jan 01, 2012 to Candidates and Committees

d-ludte=2012-01-01,2012-01-31

Contributions updated between Jan 01, 2012 and Jan 31, 2012 to Candidates and Com-mittees

Group

Fields added by grouping:gro=d-ludte adds: Last_Updated

Added by: None

Tag

token: �d-ludte�id: date of last update

value: date of last update

Example 3.35 Last Updated: XML

1 <Last_Updated token="d-ludte" id="2013-04-06">

2 2013-04-06

3 </Last_Updated >

Example 3.36 Last Updated: JSON

1 "Last_Updated":{

2 "token":"d-ludte",

3 "id":"2013-04-06",

4 "Last_Updated":"2013-04-06"

5 }

Page 55: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 54

Type of Transaction

Type of Transaction describes the type of donation or expenditure reported. Most donations areconsidered direct contributions, or 'DIR', but there are other types of records such as in-kind,unitemized, or even returned contributions.

Category: AdvancedToken: d-typ

Tag: Type_of_TransactionCon�icts: None

Filter

Valid values for the type of transaction are the ids of the various transaction types. Only onetransaction type can be �ltered for at a time.

d-typ=1

DIR contributions to Candidates and Committees

d-typ=3

E contributions to Candidates and Committees

Group

Fields added by grouping:gro=d-typ adds: Type_of_Transaction

Added by: None

Tag

token: �d-typ�id: id of transaction type

value: code for transaction type

Example 3.37 Type of Transaction: XML

1 <Type_of_Transaction token="d-typ" id="1">

2 DIR

3 </Type_of_Transaction >

Example 3.38 Type of Transaction: JSON

1 "Type_of_Transaction":{

2 "token":"d-typ",

3 "id":"1",

4 "Type_of_Transaction":"DIR"

5 }

Page 56: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 55

Candidate

Candidate describes the individual or individuals running for a speci�c o�ce. Since it describesa speci�c run, the same individual running for di�erent races will have multiple candidacies.

Category: CandidatesToken: c-t-id

Tag: CandidateCon�icts: Election State (s)

Election Year (y)O�ce Sought (c-r-osid)Party Details (c-t-pt)Career Summary (c-t-eid)

Political Race (c-r-id)Incumbency Status (c-t-ico)

Filter

Valid values for the candidate are the entity ids of the candidate running for o�ce. In the caseof individuals running on a joint ticket, usually Governor & Lieutenant Governor, this entity idis for both individuals together.

c-t-id=134567

Contributions to INSLEE, JAY ROBERT

c-t-id=134567,71954

Contributions to GREGG, JOHN R or INSLEE, JAY ROBERT

Group

Fields added by grouping:gro=c-t-id adds: Candidate

Party_Details

Election_State

Election_Year

Election_Type

Office_Sought

Election_Status

Incumbency_Status

Added by: None

Tag

token: �c-t-id�id: entity id of candidate(s)

value: name of candidate(s)

Example 3.39 Candidate: XML

1 <Candidate token="c-t-id" id="134567">

2 INSLEE , JAY ROBERT

3 </Candidate >

Example 3.40 Candidate: JSON

1 "Candidate":{

2 "token":"c-t-id",

3 "id":"134567",

4 "Candidate":"INSLEE, JAY ROBERT"

5 }

Page 57: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 56

Political Party

Political Party describes the general classi�cation of a speci�c party. Currently, these values arelimited to Democratic, Republican, third-party, non-partisan, and unknown.

Category: CandidatesToken: c-t-p

Tag: Political_PartyCon�icts: Party Details (c-t-pt)

Filter

Valid values are the ids of the political parties.

c-t-p=3

Contributions to Third-Party candidates

c-t-p=1,2

Contributions to Democratic or Republican candidates

Group

Fields added by grouping:gro=c-t-p adds: Political_Party

Added by: None

Tag

token: �c-t-p�id: id of party

value: description of party

Example 3.41 Political Party: XML

1 <Political_Party token="c-t-p" id="2">

2 Republican

3 </Political_Party >

Example 3.42 Political Party: JSON

1 "Political_Party":{

2 "token":"c-t-p",

3 "id":"2",

4 "Political_Party":"Republican"

5 }

Page 58: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 57

Party Details

Party Details describes a more speci�c party, such as Libertarian or Colorado Reform.Category: Candidates

Token: c-t-pt

Tag: Party_DetailsCon�icts: Political Party (c-t-p)

Filter

Filtering by party details is disabled.

Group

Fields added by grouping:gro=c-t-pt adds: Party_Details

Added by: Candidate

Tag

value: description of party

Example 3.43 Party Details: XML

1 <Party_Details >

2 Democratic-npl

3 </Party_Details >

Example 3.44 Party Details: JSON

1 "Party_Details":{

2 "Party_Details":"Democratic-npl"

3 }

Page 59: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 58

Career Summary

Career Summary provides information on all of a politician's candidacies. Like candidate, thiscan represent multiple people running with a joint ticket. Unlike candidate, however, this spansyears and o�ces.

Category: CandidatesToken: c-t-eid

Tag: Career_SummaryCon�icts: None

Filter

Valid values for the career summary are entity ids for a politician.

c-t-eid=2918294

Contributions to MCKENNA, ROBERT M

c-t-eid=2918294,6674339

Contributions to MCKENNA, ROBERT M or MCCRORY, PAT

Group

Fields added by grouping:gro=c-t-eid adds: Career_Summary

Added by: None

Tag

token: �c-t-eid�id: entity id of individual(s)

value: name of individual(s)

Example 3.45 Career Summary: XML

1 <Career_Summary token="c-t-eid" id="2912405">

2 INSLEE , JAY ROBERT

3 </Career_Summary >

Example 3.46 Career Summary: JSON

1 "Career_Summary":{

2 "token":"c-t-eid",

3 "id":"2912405",

4 "Career_Summary":"INSLEE, JAY ROBERT"

5 }

Page 60: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 59

Political Race

Political race encapsulates all of the di�erent candidates running for a speci�c o�ce in a speci�cstate and year. Because a political race is de�ned by the o�ce, state, and year of an election,political race has no tag of its own. Instead, grouping by the race adds the identifying informationfrom the other tags into the �elds.

Category: CandidatesToken: c-r-id

Con�icts: Election State (s)Election Year (y)O�ce Sought (c-r-osid)

Filter

Valid values for the political race or ids for the individual races.

c-r-id=38955

Contributions to candidates in the UT GOVERNOR / LIEUTENANT GOVERNOR2012 race

c-r-id=38955,15896

Contributions to candidates in the NH GOVERNOR 2012 race or the UT GOVERNOR/ LIEUTENANT GOVERNOR 2012 race

Group

Fields added by grouping:gro=c-r-id adds: Election_State

Election_Year

Election_Type

Office_Sought

Added by: None

Tag

Since all identifying information about the po-litical race is contained within other tags, thereis no separate tag.

Note: The following examples show the identifying information contained in other tags for thepolitical race since it has no tag of its own.

Example 3.47 Political Race: XML

1 <Election_State token="s" id="NH">NH</Election_State >

2 <Election_Year token="y" id="2012">2012</Election_Year >

3 <Election_Type token="c-r-t" id="1">Standard </Election_Type >

4 <Office_Sought token="c-r-osid" id="9292">GOVERNOR </Office_Sought >

Example 3.48 Political Race: JSON

1 "Election_State":{"token":"s","id":"NH","Election_State":"NH"},

2 "Election_Year":{"token":"y","id":"2012","Election_Year":"2012"},

3 "Election_Type":{"token":"c-r-t","id":"1","Election_Type":"Standard"

},

4 "Office_Sought":{"token":"c-r-osid","id":"9292","Office_Sought":"

GOVERNOR"}

Page 61: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 60

Type of Office

Type of O�ce describes the general category for the o�ce. While related to the o�ce, it is moregeneral than o�ce. Within o�ce, Governor is di�erent than Lieutenant Governor. Instead, intype of o�ce, all o�ces related to the governorship are included in the same category. Thisprinciples applies to other o�ces as well.

Category: CandidatesToken: c-r-ot

Tag: Type_of_O�ceCon�icts: None

Filter

Valid values for o�ce type are letter codes describing each general type of o�ce.

c-r-ot=G

Contributions to Gubernatorial candidates

c-r-ot=U,L

Contributions to US House or US Senate candidates

Group

Fields added by grouping:gro=c-r-ot adds: Type_of_Office

Added by: None

Tag

token: �c-r-ot�id: code of o�ce type

value: description of o�ce type

Example 3.49 Type of O�ce: XML

1 <Type_of_Office token="c-r-ot" id="G">

2 Gubernatorial

3 </Type_of_Office >

Example 3.50 Type of O�ce: JSON

1 "Type_of_Office":{

2 "token":"c-r-ot",

3 "id":"G",

4 "Type_of_Office":"Gubernatorial"

5 }

Page 62: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 61

Status of Candidate

Status of Candidate describes the result of the election for a candidate. In addition to winningor losing, this also can indicate withdrawals, disquali�cations, or other similar events.

Category: CandidatesToken: c-t-sts

Tag: Status_of_CandidateCon�icts: None

Filter

Valid values for the status of candidate are the ids of the di�erent statuses.

c-t-sts=1

Contributions to Won candidates

c-t-sts=1,2

Contributions to Won or Lost candidates

Group

Fields added by grouping:gro=c-t-sts adds: Status_of_Candidate

Added by: None

Tag

token: �c-t-sts�id: id of status

value: description of status

Example 3.51 Status of Candidate: XML

1 <Status_of_Candidate token="c-t-sts" id="1">

2 Won

3 </Status_of_Candidate >

Example 3.52 Status of Candidate: JSON

1 "Status_of_Candidate":{

2 "token":"c-t-sts",

3 "id":"1",

4 "Status_of_Candidate":"Won"

5 }

Page 63: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 62

Incumbency Status

Incumbency Status describes whether or not a candidate for an o�ce is an incumbent or achallenger. In the event that there is no incumbent, the status is marked as open.

Category: CandidatesToken: c-t-ico

Tag: Incumbency_StatusCon�icts: None

Filter

Valid values are single letter codes for each type of status.

c-t-ico=I

Contributions to candidates with an incumbency status of Incumbent

c-t-ico=I,O

Contributions to candidates with an incumbency status of Incumbent or Open

Group

Fields added by grouping:gro=c-t-ico adds: Incumbency_Status

Added by: Candidate

Tag

token: �c-t-ico�id: code of status

value: description of status

Example 3.53 Incumbency Status: XML

1 <Incumbency_Status token="c-t-ico" id="O">

2 Open

3 </Incumbency_Status >

Example 3.54 Incumbency Status: JSON

1 "Incumbency_Status":{

2 "token":"c-t-ico",

3 "id":"O",

4 "Incumbency_Status":"Open"

5 }

Page 64: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 63

Contributor

Contributor describes the standardized entity who is named in a record �led with a disclosureagency.

Category: ContributorsToken: d-eid

Tag: ContributorCon�icts: Type of Contributor (d-et)

Filter

Valid values for contributor are numerical entity ids.

d-eid=2927819

METRO MILWAUKEE ASSOCIATION OF COMMERCE contributions to Candidatesand Committees

d-eid=2927819,943

EXPRESS SCRIPTS or METRO MILWAUKEE ASSOCIATION OF COMMERCE con-tributions to Candidates and Committees

Group

Fields added by grouping:gro=d-eid adds: Contributor

Type_of_Contributor

Added by: None

Tag

token: �d-eid�id: entity id of contributor

value: name of contributor

Example 3.55 Contributor: XML

1 <Contributor token="d-eid" id="943">

2 EXPRESS SCRIPTS

3 </Contributor >

Example 3.56 Contributor: JSON

1 "Contributor":{

2 "token":"d-eid",

3 "id":"943",

4 "Contributor":"EXPRESS SCRIPTS"

5 }

Page 65: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 64

Type of Contributor

Type of Contributor describes whether or not a contributor entity is considered to be an indi-vidual or a non-individual. It can also have a value of �other," describing a concept instead of aphysical entity. An example would be the entity for �Unitemized Contributions�.

Category: ContributorsToken: d-et

Tag: Type_of_ContributorCon�icts: Contributor

Filter

Valid values for the type of contributor are numerical ids for each di�erent type of contributor.Only one value can be �ltered at a time.

d-et=2

Individuals' contributions to Candidates and Committees Committees

d-et=3

Non-Individuals' contributions to Candidates and Committees Committees

Group

Fields added by grouping:gro=d-et adds: Type_of_Contributor

Added by: None

Tag

token: �d-et�id: id of the type

value: description of the type

Example 3.57 Type of Contributor: XML

1 <Type_of_Contributor token="d-et" id="2">

2 Individual

3 </Type_of_Contributor >

Example 3.58 Type of Contributor: JSON

1 "Type_of_Contributor":{

2 "token":"d-et",

3 "id":"2",

4 "Type_of_Contributor":"Individual"

5 }

Page 66: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 65

Business Classification

Business Classi�cation is the most speci�c classi�cation of a category of business. Some examplesare defense shipbuilders, railroad unions, and food wholesalers. A full list can be found atbeta.followthemoney.org/our-data/about-our-data.

Category: ContributorsToken: d-ccb

Tag: Business_Classi�cationCon�icts: Industry (d-cci) (grouping only)

Sector (d-ccg) (grouping only)

Filter

Valid values for business classi�cation are numerical ids for the di�erent types.

d-ccb=336

Industrial & commercial equipment and materials contributions to Candidates and Com-mittees

d-ccb=336,324

Manufacturing or Industrial & commercial equipment and materials contributions to Can-didates and Committees

Group

Fields added by grouping:gro=d-ccb adds: Business_Classification

Industry

Sector

Added by: None

Tag

token: �d-ccb�id: id of business classi�cation

value: description of business classi�cation

Example 3.59 Business Classi�cation: XML

1 <Business_Classification token="d-ccb" id="324">

2 Manufacturing

3 </Business_Classification >

Example 3.60 Business Classi�cation: JSON

1 "Business_Classification":{

2 "token":"d-ccb",

3 "id":"324",

4 "Business_Classification":"Manufacturing"

5 }

Page 67: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 66

Industry

Industry is the middle classi�cation of a category of business. Some examples are MiscellaneousDefense, Transportation Unions, and Food Processing & Sales. A full list can be found atbeta.followthemoney.org/our-data/about-our-data.

Category: ContributorsToken: d-cci

Tag: IndustryCon�icts: Sector(d-ccg) (grouping only)

Filter

Valid values for industry are numerical ids of the di�erent industry types.

d-cci=61

Business Services contributions to Candidates and Committees

d-cci=61,59

Retail Sales and Business Services contributions to Candidates and Committees

Group

Fields added by grouping:gro=d-cci adds: Industry

Sector

Added by: Business_Classification

Tag

token: �d-cci�id: id of industry

value: description of industry

Example 3.61 Industry: XML

1 <Industry token="d-cci" id="113">

2 Lodging & Tourism

3 </Industry >

Example 3.62 Industry: JSON

1 "Industry":{

2 "token":"d-cci",

3 "id":"113",

4 "Industry":"Lodging & Tourism"

5 }

Page 68: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 67

Sector

Industry is the most general classi�cation of a category of business. Some examples are Defense,Labor, and Agriculture. A full list can be found at beta.followthemoney.org/our-data/

about-our-data.Category: Contributors

Token: d-ccg

Tag: SectorCon�icts: None

Filter

Valid values for sector are numerical ids of the di�erent sector types.

d-ccg=7

General Business contributions to Candidates and Committees

d-ccg=7,8

General Business and Health contributions to Candidates and Committees

Group

Fields added by grouping:gro=d-ccg adds: Filing_State

Added by: Business_Classification

Industry

Tag

token: �d-ccg�id: id of sector

value: description of sector

Example 3.63 Sector: XML

1 <Sector token="d-ccg" id="7">

2 General Business

3 </Sector >

Example 3.64 Sector: JSON

1 "Sector":{

2 "token":"d-ccg",

3 "id":"7",

4 "Sector":"General Business"

5 }

Page 69: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 68

City

City describes the city portion of the address provided to the disclosure agency. Due to reportingerrors and di�ering reporting requirements, this may not be accurate.

Category: ContributorsToken: d-ad-cty

Tag: CityCon�icts: None

Filter

Valid values

d-ad-cty=SEATTLE

Contributions from SEATTLE to Candidates and Committees

d-ad-cty=SEATTLE,DENVER

Contributions from SEATTLE or DENVER to Candidates and Committees

Group

Fields added by grouping:gro=d-ad-cty adds: City

Added by: None

Tag

token: �d-ad-cty�id: city name

value: city name

Example 3.65 City: XML

1 <City token="d-ad-cty" id="SEATTLE">

2 SEATTLE

3 </City>

Example 3.66 City: JSON

1 "City":{

2 "token":"d-ad-cty",

3 "id":"SEATTLE",

4 "City":"SEATTLE"

5 }

Page 70: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 69

State

State lists the state portion of the address provided to the disclosure agency. Due to reportingerrors and di�ering reporting requirements, this is not always accurate.

Category: ContributorsToken: d-ad-st

Tag: StateCon�icts: None

Filter

Valid values

d-ad-cty=MT

Contributions from MT to Candidates and Committees

d-ad-cty=MT,CO

Contributions from MT, CO to Candidates and Committees

Group

Fields added by grouping:gro=d-ad-st adds: State

Added by: None

Tag

token: �d-ad-st�id: state

value: state

Example 3.67 State: XML

1 <State token="d-ad-st" id="NY">

2 NY

3 </State >

Example 3.68 State: JSON

1 "State":{

2 "token":"d-ad-st",

3 "id":"NY",

4 "State":"NY"

5 }

Page 71: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 70

Zip

Zip lists the zip code portion of the address provided to the disclosure agency. Due to reportingerrors and di�ering reporting requirements, this is not always accurate.

Category: ContributorsToken: d-ad-zip

Tag: ZipCon�icts: None

Filter

Valid values

d-ad-zip=46240

Contributions from 46240 to Candidates and Committees

d-ad-zip=46240,28211

Contributions from 46240 or 28211 to Candidates and Committees

Group

Fields added by grouping:gro=d-ad-zip adds: Zip

Added by: None

Tag

token: �d-ad-zip�id: zip code

value: zip code

Example 3.69 Zip: XML

1 <Zip token="d-ad-zip" id="28211">

2 28211

3 </Zip>

Example 3.70 Zip: JSON

1 "Zip":{

2 "token":"d-ad-zip",

3 "id":"28211",

4 "Zip":"28211"

5 }

Page 72: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 71

In-State

In-State describes whether or not a contribution came from the same state as the election or ifit came from outside the state.

Category: ContributorsToken: d-ins

Tag: In-StateCon�icts: None

Filter

Valid values are integers where 1 is in-state, 0 is out-of-state, and 2 indicates unknown. It isconsidered unknown when no state address information is given.

d-ins=1

In State contributions to Candidates and Committees

d-ins=0

Out of State contributions to Candidates and Committees

Group

Fields added by grouping:gro=d-ins adds: In-State

Added by: None

Tag

token: �d-ins�id: in-state id

value: in-state id

Example 3.71 In-State: XML

1 <In-State token="d-ins" id="1">

2 1

3 </In-State >

Example 3.72 In-State: JSON

1 "In-State":{

2 "token":"d-ins",

3 "id":"1",

4 "In-State":"1"

5 }

Page 73: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 72

Employer

Employer is the employer name as reported to the disclosure agency.Category: Contributors

Token: d-empl

Tag: EmployerCon�icts: None

Filter

Valid values are a string describing the name of the employer.

d-empl=AMAZON.COM

Contributions with Employer of "AMAZON.COM" to Candidates and Committees

d-empl=SELF-EMPLOYED,AMAZON.COM

Contributions with Employer of "AMAZON.COM" or "SELF-EMPLOYED" to Candi-dates and Committees

Group

Fields added by grouping:gro=d-empl adds: Employer

Added by: None

Tag

token: �d-empl�id: employer name

value: employer name

Example 3.73 Employer: XML

1 <Employer token="d-empl" id="CBI">

2 CBI

3 </Employer >

Example 3.74 Employer: JSON

1 "Employer":{

2 "token":"d-empl",

3 "id":"CBI",

4 "Employer":"CBI"

5 }

Page 74: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 3. RECORDS 73

Occupation

Occupation is the occupation reported to the disclosure agency.Category: Contributors

Token: d-occupation

Tag: OccupationCon�icts: None

Filter

Valid values are strings describing the occupation.

d-occupation=RETIRED

Contributions with Occupation of "RETIRED" to Candidates and Committees

d-occupation=RETIRED,INVESTOR

Contributions with Occupation of "RETIRED" or "INVESTOR" to Candidates andCommittees

Group

Fields added by grouping:gro=d-occupation adds: Occupation

Added by: None

Tag

token: �d-occupation�id: occupation name

value: occupation name

Example 3.75 Occupation: XML

1 <Occupation token="d-occupation" id="RETIRED">

2 RETIRED

3 </Occupation >

Example 3.76 Occupation: JSON

1 "Occupation":{

2 "token":"d-occupation",

3 "id":"RETIRED",

4 "Occupation":"RETIRED"

5 }

Page 75: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

Appendix 44.1 Full XML Example

Below is an example of what is returned by an XML API call. In this instance, the datarequested was for donations to gubernatorial candidates running in 2012 from general business.It is grouped by the donors. For the sake of space, a portion of the individual records have beenremoved.

If you would like to see this data on the website and look at the API call yourself, this datais available at beta.followthemoney.org/show-me?y=2012&c-r-ot=G&d-ccg=7.

1 <response >

2 <metaInfo >

3 <format >xml</format >

4 <completeness >

5 <allReports >108</allReports >

6 <availableReports >108</availableReports >

7 <completeReports >108</completeReports >

8 <incompleteAvailable >0</incompleteAvailable >

9 <lastUpdated >2013-07-23 14 :23:49 </lastUpdated >

10 <mostRecentReportDate >2013-01-20 </mostRecentReportDate >

11 </completeness >

12 <paging >

13 <pageLink >p=0</pageLink >

14 <minPage >0</minPage >

15 <currentPage >0</currentPage >

16 <maxPage >60</maxPage >

17 <totalPages >61</totalPages >

18 <totalRecords >6055</totalRecords >

19 <recordsPerPage >100</recordsPerPage >

20 <recordsThisPage >100</recordsThisPage >

21 </paging >

22 <grouping >

23 <groupLink >gro=d-eid</groupLink >

24 <currentGrouping >

25 <d-eid >Contributor (Contributors)</d-eid>

26 </currentGrouping >

27 <availableGrouping >

28 <s>Election State (General)</s>

29 <y>Election Year (General)</y>

30 <f-s>Filing State (General)</f-s>

31 <f-eid >Filer (General)</f-eid >

32 <f-y>Filing Year (Advanced)</f-y>

33 <c-r-osid >Office Sought (Advanced)</c-r-osid >

34 <c-r-oc >Office (Advanced)</c-r-oc >

74

Page 76: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 4. APPENDIX 75

35 <c-t-i >Incumbency Data (Advanced)</c-t-i>

36 <c-t-icod >Incumbency Advantage (Advanced)</c-t-icod >

37 <d-nme >Original Name (Advanced)</d-nme>

38 <d-amt >Amount (Advanced)</d-amt>

39 <d-dte >Date (Advanced)</d-dte >

40 <d-ludte >Last Updated (Advanced)</d-ludte >

41 <d-typ >Type of Transaction (Advanced)</d-typ >

42 <d-ad-str >Street (Advanced)</d-ad-str >

43 <c-t-id >Candidate (Candidates)</c-t-id >

44 <c-t-p >Political Party (Candidates)</c-t-p >

45 <c-t-pt >Party Details (Candidates)</c-t-pt >

46 <c-t-eid >Career Summary (Candidates)</c-t-eid >

47 <c-r-id >Political Race (Candidates)</c-r-id >

48 <c-r-ot >Type of Office (Candidates)</c-r-ot >

49 <c-t-sts >Status of Candidate (Candidates)</c-t-sts >

50 <c-t-ico >Incumbency Status (Candidates)</c-t-ico >

51 <d-id>Record (Contributors)</d-id>

52 <d-ccb >Business Classification (Contributors)</d-ccb>

53 <d-cci >Industry (Contributors)</d-cci>

54 <d-ccg >Sector (Contributors)</d-ccg>

55 <d-ad-cty >City (Contributors)</d-ad-cty >

56 <d-ad-st >State (Contributors)</d-ad-st >

57 <d-ad-zip >Zip (Contributors)</d-ad-zip >

58 <d-ins >In-State (Contributors)</d-ins>

59 <d-empl >Employer (Contributors)</d-empl >

60 <d-occupation >Occupation (Contributors)</d-occupation >

61 </availableGrouping >

62 </grouping >

63 <sorting >

64 <sortLink >so=u-tot&amp;sod=0</sortLink >

65 <currentSorting >

66 <u-tot >Total_$</u-tot>

67 </currentSorting >

68 <sortingDirection >descending </sortingDirection >

69 <availableSorting >

70 <d-eid >Contributor </d-eid >

71 <d-et>Type_of_Contributor </d-et>

72 <u-rec >#_of_Records </u-rec >

73 </availableSorting >

74 </sorting >

75 <recordFormat >

76 <request >y=2012& amp;c-r-ot=G&amp;d-ccg=7</request >

77 <Contributor token="d-eid" id="token value">

78 display value

79 </Contributor >

80 <Type_of_Contributor token="d-et" id="token value">

81 display value

82 </Type_of_Contributor >

83 <Num_of_Records >

84 display value

85 </Num_of_Records >

86 <Total_Dollars >

87 display value

88 </Total_Dollars >

89 </recordFormat >

90 </metaInfo >

91 <records >

92 <record record_id="1">

93 <request >y=2012& amp;c-r-ot=G&amp;d-ccg =7& amp;d-eid =16180879 </

request >

Page 77: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 4. APPENDIX 76

94 <Contributor token="d-eid" id="16180879">WHITE , DEAN V</

Contributor >

95 <Type_of_Contributor token="d-et" id="2">Individual </

Type_of_Contributor >

96 <Num_of_Records >5</Num_of_Records >

97 <Total_Dollars >435000.00 </Total_Dollars >

98 </record >

99 <record record_id="2">

100 <request >y=2012& amp;c-r-ot=G&amp;d-ccg =7& amp;d-eid =14153417 </

request >

101 <Contributor token="d-eid" id="14153417">DEVOS SR, RICHARD M</

Contributor >

102 <Type_of_Contributor token="d-et" id="2">Individual </

Type_of_Contributor >

103 <Num_of_Records >2</Num_of_Records >

104 <Total_Dollars >251000.00 </Total_Dollars >

105 </record >

106...

107 <record record_id="99">

108 <request >y=2012& amp;c-r-ot=G&amp;d-ccg =7& amp;d-eid =3714940 </

request >

109 <Contributor token="d-eid" id="3714940">SLBS LIMITED

PARTNERSHIP </Contributor >

110 <Type_of_Contributor token="d-et" id="3">Non-Individual </

Type_of_Contributor >

111 <Num_of_Records >2</Num_of_Records >

112 <Total_Dollars >15000.00 </Total_Dollars >

113 </record >

114 <record record_id="100">

115 <request >y=2012& amp;c-r-ot=G&amp;d-ccg =7& amp;d-eid =10795508 </

request >

116 <Contributor token="d-eid" id="10795508">LEGACY PHARMACEUTICAL

PACKAGING </Contributor >

117 <Type_of_Contributor token="d-et" id="3">Non-Individual </

Type_of_Contributor >

118 <Num_of_Records >1</Num_of_Records >

119 <Total_Dollars >15000.00 </Total_Dollars >

120 </record >

121 </records >

122 </response >

4.2 Full JSON Example

Below is an example of what is returned by a JSON API call. In this instance, the datarequested was for donations to gubernatorial candidates running in 2012 from general business.It is grouped by the donors. For the sake of space, a portion of the individual records have beenremoved.

If you would like to see this data on the website and look at the API call yourself, this datais available at beta.followthemoney.org/show-me?y=2012&c-r-ot=G&d-ccg=7.

1 {

2 "metaInfo":{

3 "format":"json",

4 "completeness":{

5 "allReports":"108",

6 "availableReports":"108",

7 "completeReports":"108",

8 "incompleteAvailable":"0",

Page 78: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 4. APPENDIX 77

9 "lastUpdated":"2013-07-23 14:23:49",

10 "mostRecentReportDate":"2013-01-20"

11 },

12 "paging":{

13 "pageLink":"p=0",

14 "minPage":0,

15 "currentPage":0,

16 "maxPage":60,

17 "totalPages":61,

18 "totalRecords":"6055",

19 "recordsPerPage":100,

20 "recordsThisPage":100

21 },

22 "grouping":{

23 "groupLink":"gro=d-eid",

24 "currentGrouping":{

25 "d-eid":"Contributor (Contributors)"

26 },

27 "availableGrouping":{

28 "s":"Election State (General)",

29 "y":"Election Year (General)",

30 "f-s":"Filing State (General)",

31 "f-eid":"Filer (General)",

32 "f-y":"Filing Year (Advanced)",

33 "c-r-osid":"Office Sought (Advanced)",

34 "c-r-oc":"Office (Advanced)",

35 "c-t-i":"Incumbency Data (Advanced)",

36 "c-t-icod":"Incumbency Advantage (Advanced)",

37 "d-nme":"Original Name (Advanced)",

38 "d-amt":"Amount (Advanced)",

39 "d-dte":"Date (Advanced)",

40 "d-ludte":"Last Updated (Advanced)",

41 "d-typ":"Type of Transaction (Advanced)",

42 "d-ad-str":"Street (Advanced)",

43 "c-t-id":"Candidate (Candidates)",

44 "c-t-p":"Political Party (Candidates)",

45 "c-t-pt":"Party Details (Candidates)",

46 "c-t-eid":"Career Summary (Candidates)",

47 "c-r-id":"Political Race (Candidates)",

48 "c-r-ot":"Type of Office (Candidates)",

49 "c-t-sts":"Status of Candidate (Candidates)",

50 "c-t-ico":"Incumbency Status (Candidates)",

51 "d-id":"Record (Contributors)",

52 "d-ccb":"Business Classification (Contributors)",

53 "d-cci":"Industry (Contributors)",

54 "d-ccg":"Sector (Contributors)",

55 "d-ad-cty":"City (Contributors)",

56 "d-ad-st":"State (Contributors)",

57 "d-ad-zip":"Zip (Contributors)",

58 "d-ins":"In-State (Contributors)",

59 "d-empl":"Employer (Contributors)",

60 "d-occupation":"Occupation (Contributors)"

61 }

62 },

63 "sorting":{

64 "sortLink":"so=u-tot&sod=0",

65 "currentSorting":{

66 "u-tot":"Total_$"

67 },

68 "sortingDirection":"descending",

Page 79: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 4. APPENDIX 78

69 "availableSorting":{

70 "d-eid":"Contributor",

71 "d-et":"Type_of_Contributor",

72 "u-rec":"#_of_Records"

73 }

74 },

75 "recordFormat":{

76 "request":"y=2012& c-r-ot=G&d-ccg=7",

77 "Contributor":{

78 "token":"d-eid",

79 "id":"token value",

80 "Contributor":"display value"

81 },

82 "Type_of_Contributor":{

83 "token":"d-et",

84 "id":"token value",

85 "Type_of_Contributor":"display value"

86 },

87 "#_of_Records":{

88 "#_of_Records":"display value"

89 },

90 "Total_$":{

91 "Total_$":"display value"

92 }

93 }

94 },

95 "records":[

96 {

97 "record_id":1,

98 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =16180879",

99 "Contributor":{

100 "token":"d-eid",

101 "id":"16180879",

102 "Contributor":"WHITE, DEAN V"

103 },

104 "Type_of_Contributor":{

105 "token":"d-et",

106 "id":"2",

107 "Type_of_Contributor":"Individual"

108 },

109 "#_of_Records":{

110 "#_of_Records":"5"

111 },

112 "Total_$":{

113 "Total_$":"435000.00"

114 }

115 },

116 {

117 "record_id":2,

118 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =14153417",

119 "Contributor":{

120 "token":"d-eid",

121 "id":"14153417",

122 "Contributor":"DEVOS SR, RICHARD M"

123 },

124 "Type_of_Contributor":{

125 "token":"d-et",

126 "id":"2",

127 "Type_of_Contributor":"Individual"

128 },

Page 80: API Documentation for XML and JSON - FollowTheMoney.org · 2015-10-27 · API Documentation for XML and JSON A technical reference for programmatically obtaining atda from ... with

CHAPTER 4. APPENDIX 79

129 "#_of_Records":{

130 "#_of_Records":"2"

131 },

132 "Total_$":{

133 "Total_$":"251000.00"

134 }

135 },

136...

137 {

138 "record_id":99,

139 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =3714940",

140 "Contributor":{

141 "token":"d-eid",

142 "id":"3714940",

143 "Contributor":"SLBS LIMITED PARTNERSHIP"

144 },

145 "Type_of_Contributor":{

146 "token":"d-et",

147 "id":"3",

148 "Type_of_Contributor":"Non-Individual"

149 },

150 "#_of_Records":{

151 "#_of_Records":"2"

152 },

153 "Total_$":{

154 "Total_$":"15000.00"

155 }

156 },

157 {

158 "record_id":100,

159 "request":"y=2012& c-r-ot=G&d-ccg =7& d-eid =10795508",

160 "Contributor":{

161 "token":"d-eid",

162 "id":"10795508",

163 "Contributor":"LEGACY PHARMACEUTICAL PACKAGING"

164 },

165 "Type_of_Contributor":{

166 "token":"d-et",

167 "id":"3",

168 "Type_of_Contributor":"Non-Individual"

169 },

170 "#_of_Records":{

171 "#_of_Records":"1"

172 },

173 "Total_$":{

174 "Total_$":"15000.00"

175 }

176 }

177 ]

178 }