Overview

Demo functions for working with ProPublica’s Nonprofit Explorer.

Use this database to view summaries of 3 million tax returns from tax-exempt organizations and see financial details such as their executive compensation and revenue and expenses. You can browse IRS data released since 2013 and access more than 14 million tax filing documents going back as far as 2001.

From their site:

Nonprofit Explorer includes summary data for nonprofit tax returns and full Form 990 documents, in both PDF and digital formats.

The summary data contains information processed by the IRS during the 2012-2018 calendar years; this generally consists of filings for the 2011-2017 fiscal years, but may include older records. This data release includes only a subset of what can be found in the full Form 990s.

In addition to the raw summary data, we link to PDFs and digital copies of full Form 990 documents wherever possible. This consists of separate releases by the IRS of Form 990 documents processed by the agency, which we update regularly.

We also link to copies of audits nonprofit organizations that spent $750,000 or more in Federal grant money in a single fiscal year since 2016. These audits are copied from the Federal Audit Clearinghouse.

Which Organizations Are Here?

Every organization that has been recognized as tax exempt by the IRS has to file Form 990 every year, unless they make less than $200,000 in revenue and have less than $500,000 in assets, in which case they have to file form 990-EZ. Organizations making less than $50,000 don’t have to file either form but do have to let the IRS they’re still in business via a Form 990N “e-Postcard.”

Nonprofit Explorer has organizations claiming tax exemption in each of the 27 subsections of the 501(c) section of the tax code, and which have filed a Form 990, Form 990EZ or Form 990PF. Taxable trusts and private foundations that are required to file a form 990PF are also included. Small organizations filing a Form 990N “e-Postcard” are not included in this data.

Types of Nonprofits

There are 27 nonprofit designations based on the numbered subsections of section 501(c) of the tax code.

How to Research Tax-Exempt Organizations

We’ve created a guide for investigating nonprofits for those just getting started as well as for seasoned pros.

API

The data powering this website is available programmatically, via an API. Read the API documentation »

Get the Data

For those interested in acquiring the original data from the source, here’s where our data comes from:

API Capability

There is basic meta-data available for each organization (name, EIN, tax year, total revenue, etc.).

Information for each 990 depends on the type of filing - paper versions or e-files.

The API has some capability to access digitized information, as well as download PDFs of paper filers.

The generic API call will return a list with five tables:

Demo

Grab a table of meta-data available on all returns for one org:

library( RCurl )
library( jsonlite )
library( dplyr )
library( pander )

# API CALL
# https://projects.propublica.org/nonprofits/api/v2/organizations/010165097.json

ein <- "010165097"

URL <- paste0( "https://projects.propublica.org/nonprofits/api/v2/organizations/", ein, ".json" )

results.json <- getURL( URL, ssl.verifypeer = FALSE )

r2 <- gsub( "\n", "", results.json )

api.tables <- fromJSON( r2 )

names( api.tables )
## [1] "organization"         "filings_with_data"    "filings_without_data"
## [4] "data_source"          "api_version"
head( api.tables$organization ) %>% pander()
head( api.tables$filings_with_data ) %>% pander()
Table continues below
tax_prd tax_prd_yr formtype
201712 2017 1
201512 2015 1
201412 2014 1
201312 2013 0
201212 2012 1
201112 2011 1
Table continues below
pdf_url
NA
NA
NA
https://projects.propublica.org/nonprofits/download-filing?path=2014_09_EO%2F01-0165097_990O_201312.pdf
NA
NA
Table continues below
updated totrevenue totfuncexpns totassetsend
2019-10-15T18:40:39.744Z 174354 164641 98154
2017-06-30T00:40:46.710Z 169693 160351 90996
2017-06-30T00:24:53.693Z 172126 188041 58127
2017-06-30T00:05:00.581Z 194073 187045 74014
2017-06-29T23:56:02.188Z 171454 164369 65394
2017-06-29T23:41:38.920Z 180031 171155 60251
Table continues below
totliabend pct_compnsatncurrofcr subseccd totcntrbs prgmservrev
29381 -0.001 6 91145 6075
45962 -0.001 6 81195 10095
30732 -0.001 6 53740 37375
30704 0 6 NA NA
18167 -0.001 6 78910 0
20109 -0.001 6 89291 0
Table continues below
duesassesmnts othrinvstinc grsamtsalesastothr basisalesexpnsothr
75595 84 0 0
79061 45 0 0
73416 33 0 0
NA NA NA NA
59910 62 0 0
56042 116 0 0
Table continues below
gnsaleofastothr grsincgaming grsrevnuefndrsng direxpns netincfndrsng
0 0 8610 7524 1086
0 0 6007 7030 -1023
0 0 14930 7668 7262
NA 0 NA NA 6543
0 0 28708 9627 19081
0 0 25455 8722 16733
Table continues below
grsalesminusret costgoodsold grsprft othrevnue totrevnue totexpns
0 0 0 369 174354 164641
0 0 0 320 169693 160351
0 0 0 300 172126 188041
NA NA NA NA NA NA
0 0 0 13491 171454 164369
0 0 0 17849 180031 171155
Table continues below
totexcessyr othrchgsnetassetfnd totnetassetsend unrelbusincd
9713 0 68773 0
9342 8296 45034 0
-15915 0 27395 0
NA NA NA NA
7085 0 47227 0
8876 0 40142 0
Table continues below
initiationfee grspublicrcpts nonpfrea gftgrntrcvd170 txrevnuelevied170
0 0 0 0 0
0 0 0 NA 0
0 0 0 0 0
NA NA 0 NA 0
0 0 0 NA 0
0 0 0 0 0
Table continues below
srvcsval170 grsinc170 grsrcptsrelatd170 totgftgrntrcvd509
0 0 0 0
0 0 NA 0
0 0 0 0
0 0 NA 0
0 0 NA 0
0 0 0 0
Table continues below
grsrcptsadmiss509 txrevnuelevied509 srvcsval509 subtotsuppinc509
0 0 0 0
NA 0 0 0
0 0 0 0
NA 0 0 0
NA 0 0 0
0 0 0 0
Table continues below
totsupp509 ein tax_pd unrelbusinccd initiationfees
0 10165097 NA NA NA
0 10165097 NA NA NA
0 10165097 NA NA NA
0 10165097 NA Y 0
0 10165097 NA NA NA
0 10165097 NA NA NA
Table continues below
grsrcptspublicuse grsincmembers grsincother totcntrbgfts totprgmrevnue
NA NA NA NA NA
NA NA NA NA NA
NA NA NA NA NA
0 0 0 72449 114743
NA NA NA NA NA
NA NA NA NA NA
Table continues below
invstmntinc txexmptbndsproceeds royaltsinc grsrntsreal grsrntsprsnl
NA NA NA NA NA
NA NA NA NA NA
NA NA NA NA NA
61 0 0 0 0
NA NA NA NA NA
NA NA NA NA NA
Table continues below
rntlexpnsreal rntlexpnsprsnl rntlincreal rntlincprsnl netrntlinc
NA NA NA NA NA
NA NA NA NA NA
NA NA NA NA NA
0 0 0 0 0
NA NA NA NA NA
NA NA NA NA NA
Table continues below
grsalesecur grsalesothr cstbasisecur cstbasisothr gnlsecur gnlsothr
NA NA NA NA NA NA
NA NA NA NA NA NA
NA NA NA NA NA NA
0 0 0 0 0 0
NA NA NA NA NA NA
NA NA NA NA NA NA
Table continues below
netgnls grsincfndrsng lessdirfndrsng lessdirgaming netincgaming
NA NA NA NA NA
NA NA NA NA NA
NA NA NA NA NA
0 13761 7218 0 0
NA NA NA NA NA
NA NA NA NA NA
Table continues below
grsalesinvent lesscstofgoods netincsales miscrevtot11e
NA NA NA NA
NA NA NA NA
NA NA NA NA
0 0 0 277
NA NA NA NA
NA NA NA NA
Table continues below
compnsatncurrofcr othrsalwages payrolltx profndraising txexmptbndsend
NA NA NA NA NA
NA NA NA NA NA
NA NA NA NA NA
0 0 0 0 0
NA NA NA NA NA
NA NA NA NA NA
Table continues below
secrdmrtgsend unsecurednotesend retainedearnend totnetassetend
NA NA NA NA
NA NA NA NA
NA NA NA NA
0 0 0 43310
NA NA NA NA
NA NA NA NA
gftgrntsrcvd170 grsrcptsrelated170 grsrcptsadmissn509
NA NA NA
NA NA NA
NA NA NA
0 0 0
NA NA NA
NA NA NA
head( api.tables$filings_without_data ) %>% pander()
Table continues below
tax_prd tax_prd_yr formtype formtype_str
201812 2018 0
201012 2010 0
200912 2009 0
200812 2008 0
200712 2007 0
200612 2006 0
pdf_url
https://projects.propublica.org/nonprofits/download-filing?path=09_2019_prefixes_01-06%2F010165097_201812_990EO_2019092016671845.pdf
https://projects.propublica.org/nonprofits/download-filing?path=2011_04_EO%2F01-0165097_990EO_201012.pdf
https://projects.propublica.org/nonprofits/download-filing?path=2010_07_EO%2F01-0165097_990EO_200912.pdf
https://projects.propublica.org/nonprofits/download-filing?path=2009_08_EO%2F01-0165097_990EO_200812.pdf
https://projects.propublica.org/nonprofits/download-filing?path=2008_07_EO%2F01-0165097_990O_200712.pdf
https://projects.propublica.org/nonprofits/download-filing?path=2007_10_EO%2F01-0165097_990O_200612.pdf
api.tables$data_source %>% pander()

ProPublica Nonprofit Explorer API: https://projects.propublica.org/nonprofits/api/IRS Exempt Organizations Business Master File Extract (EO BMF): https://www.irs.gov/charities-non-profits/exempt-organizations-business-master-file-extract-eo-bmfIRS Annual Extract of Tax-Exempt Organization Financial Data: https://www.irs.gov/uac/soi-tax-stats-annual-extract-of-tax-exempt-organization-financial-data

api.tables$api_version 
## [1] 2

Batch PDF Download

Available PDFs will be listed in the filings_without_data table.

Preview PDFs: [ ON GITHUB ] [ Download ]

For the organizations with paper filings available you can download PDFs using the following loop:

# BATCH DOWNLOAD PDFs

dir.create( "IRS990_PDFs" )

setwd( "./IRS990_PDFs" )

pdfs <- fromJSON( r2 )$filings_without_data

if( nrow(pdfs) > 0 )
{
 for( i in 1:nrow(pdfs) )
 {  

   file.name <- paste0( "EIN_", ein , "_YEAR_", pdfs$tax_prd_yr[i], ".pdf" )
   download.file( url=pdfs$pdf_url[i], 
                  destfile=file.name,
                  mode="wb" )  
 }
 
}

dir()
## [1] "EIN_010165097_YEAR_2004.pdf" "EIN_010165097_YEAR_2005.pdf"
## [3] "EIN_010165097_YEAR_2006.pdf" "EIN_010165097_YEAR_2007.pdf"
## [5] "EIN_010165097_YEAR_2008.pdf" "EIN_010165097_YEAR_2009.pdf"
## [7] "EIN_010165097_YEAR_2010.pdf" "EIN_010165097_YEAR_2018.pdf"

Draft Function

download_pdfs <- function( ein )
{
  
  URL <- paste0( "https://projects.propublica.org/nonprofits/api/v2/organizations/", ein, ".json" )
  
  results.json <- getURL( URL, ssl.verifypeer = FALSE )
  
  r2 <- gsub( "\n", "", results.json )
  
  d <- fromJSON( r2 )
  
  pdfs <- d$filings_without_data
  
  if( nrow(pdfs) > 0 )
  {
   for( i in 1:nrow(pdfs) )
   {  
  
     file.name <- paste0( "EIN_", ein , "_YEAR_", pdfs$tax_prd_yr[i], ".pdf" )
     download.file( url=pdfs$pdf_url[i], 
                    destfile=file.name,
                    mode="wb" )  
   }
   
  }
  
  return( dir() )

}

Full API Documentation

The full documentation of all API functionality can be found at Nonprofit Explorer API.






Nonprofit Open Data Collection

Code available on the NODC GitHub Project