NEW!!    APIs can now be accessed using Keys!

For nearly two decades, GuideStar has collected and distributed rich data about the nonprofit sector. Based on user feedback, and leveraging the latest technologies, GuideStar is taking a bold step forward in providing some of this data via APIs (Application Programming Interfaces) to enable users to engage our information in the formats they choose.

These APIs collectively establish GuideStar's leadership in the sector by delivering the next-generation data platform to our users. These APIs also serve as a building block to GuideStar's new strategic vision to revolutionize philanthropy: A nonprofit information system that enables accountability in nonprofit practice, compensation, program effectiveness, and giving across the sector, through data transparency.

GuideStar's fully-RESTful APIs provide users with these avenues for accessing our data: These APIs employ Basic Authentication over SSL v3.0 to control access to our data.

Please contact our sales department by calling 866-710-7663 or sending an email to sales@guidestar.org

If after reading this web site you still have difficulties, please send an email to apisupport@guidestar.org

Get the API that is right for you:
GuideStar
Charity Check API

GuideStar Charity Check is the only pre-grant due-diligence tool that is 100% compliant with IRS requirements.

The GuideStar Charity Check API provides this essential data via our RESTful API in XML or JSON formats.

View Details

GuideStar
Exchange API

The GuideStar Exchange API provides rich nonprofit-supplied data, obtained through the GuideStar Exchange program, for integration into your application or website.


View Details

GuideStar
Detail API

The GuideStar Detail API combines nonprofit-supplied data from the GuideStar Exchange program with data from other sources to provide comprehensive information about millions of organizations.

View Details




GuideStar Advanced
Search API

GuideStar Advanced Search API provides a targeted search of our most common set of data about nonprofits to quickly find organizations most relevant to your users, and use those results to get more data from our other APIs.


View Details

API Usage and Example calls
GuideStar Charity Check API
View Available Fields

OK, here is how you do it!

Requests

Format Example
https://data.guidestar.org/v1/charitycheck/{EIN}.{xml/json} https://data.guidestar.org/v1/charitycheck/54-1774039.xml


Request GuideStar Charity Check API information for GuideStar
and give me the results in a well-formed XML. (Sample Results)

https://data.guidestar.org/v1/charitycheck/54-1774039.json


Request GuideStar Charity Check API information for GuideStar
and give me the results in a JSON format. (Sample Results)

Common Error Codes
Error Explained
200 OK, all went through!
401 Unauthorized, returned when the request requires user authentication. The response header will include WWW-Authenticate header realm "GuideStar Middleware API"
403 Forbidden, returned when the API understood the request, but is refusing to fulfill it. Most commonly, this means that the user has exceeded their request limit or does not have permissions to access this API.
404 There is an error in the URL string, the requested EIN is not available, or the hyphen is missing from the EIN.
500 Server Error, returned when the API encountered an unexpected condition which prevented it from fulfilling the request. A generic message (security reasons) will be displayed to the consumer but detailed exception will be logged on API side.
503 Service Unavailable, returned when the API is unavailable to handle the request due to a temporary overloading or maintenance of the server. The existence of the 503 status code does not imply that we will be using it on a regular basis. It is here to cover rare cases only so that we can message and inform consumers if needed.
GuideStar Exchange API
View Available Fields

OK, here is how you do it!

Requests

Format Example
https://data.guidestar.org/v1/exchange/{OrganizationId}.{xml/json} https://data.guidestar.org/v1/exchange/7831216.xml


Request for a GuideStar Exchange with an organization Id 7831216 and give me the result in well-formed XML. (Sample Results)

https://data.guidestar.org/v1/exchange/7831216.json


Request for a GuideStar Exchange with an organization Id 7831216 and give me the result in JSON format. (Sample Results)

Common Error Codes
Error Explained
200 OK, all went through!
401 Unauthorized, returned when the request requires user authentication. The response header will include WWW-Authenticate header realm "GuideStar Middleware API"
403 Forbidden, returned when the API understood the request, but is refusing to fulfill it. Most commonly, this means that the user has exceeded their request limit or does not have permissions to access this API.
404 There is an error in the URL string, the requested EIN is not available, or the hyphen is missing from the EIN.
500 Server Error, returned when the API encountered an unexpected condition which prevented it from fulfilling the request. A generic message (security reasons) will be displayed to the consumer but detailed exception will be logged on API side.
503 Service Unavailable, returned when the API is unavailable to handle the request due to a temporary overloading or maintenance of the server. The existence of the 503 status code does not imply that we will be using it on a regular basis. It is here to cover rare cases only so that we can message and inform consumers if needed.
GuideStar Detail API
View Available Fields

OK, here is how you do it!

Requests

Format Example
https://data.guidestar.org/v1/detail/{OrganizationId}.{xml/json} https://data.guidestar.org/v1/detail/7831216.xml


Request data for organization Id 7831216 and get the result in well-formed XML. (Sample Results)

https://data.guidestar.org/v1/detail/7831216.json


Request data for organization Id 7831216 and give me the result in JSON format. (Sample Results)

Common Error Codes
Error Explained
200 OK, all went through!
401 Unauthorized, returned when the request requires user authentication. The response header will include WWW-Authenticate header realm "GuideStar Middleware API"
403 Forbidden, returned when the API understood the request, but is refusing to fulfill it. Most commonly, this means that the user has exceeded their request limit or does not have permissions to access this API.
404 There is an error in the URL string, the requested EIN is not available, or the hyphen is missing from the EIN.
500 Server Error, returned when the API encountered an unexpected condition which prevented it from fulfilling the request. A generic message (security reasons) will be displayed to the consumer but detailed exception will be logged on API side.
503 Service Unavailable, returned when the API is unavailable to handle the request due to a temporary overloading or maintenance of the server. The existence of the 503 status code does not imply that we will be using it on a regular basis. It is here to cover rare cases only so that we can message and inform consumers if needed.

Code Samples

Connect to the API using cURL

curl -3 -u username:password https://data.guidestar.org/v1/advancedsearch?q=ein:54-1774039
				

Connect to the API using .NET

var req = WebRequest.Create(uri); 
req.Credentials = new NetworkCredential(login,password); 
req.Proxy = null; 
var response = req.GetResponse(); 
Stream dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd(); 
Console.WriteLine(responseFromServer);
reader.Close(); 
dataStream.Close(); 
response.Close(); 

Connect to the API using Java

This example makes use of the Apache HttpClient library 4.1 to simplify http requests. To use this library, download the binaries with dependencies from http://hc.apache.org/ and add them to your project classpath. Include your GuideStar credentials in place of the user:password.


package org.guidestar.data.api;

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.codec.binary.Base64;

public class TestAPI {
	//this is the request string that calls the earch API. 
    //Search for Organizations in the 23188 zip code and return 25 results.

	private static String request = "https://data.guidestar.org/v1/advancedsearch?q=zip:23188&r=25";
	
	public static void main(String[] args) throws ClientProtocolException, IOException {
		
		 //encode login credentials
		 byte[] encodedBytes = Base64.encodeBase64(username + ":" + password.getBytes());
		 
		 //The recommended httpclient to use.
		 CloseableHttpClient httpclient = HttpClients.createDefault();
		 HttpGet httpget = new HttpGet(request);
		 
		 //Set the authorization header with the GuideStar API credentials
		 httpget.setHeader("Authorization","Basic " + new String(encodedBytes)); 
		 
		 //The recommended response object to use.
		 CloseableHttpResponse response = httpclient.execute(httpget);
		 
		 //We want to try and get an entity back from the response to our request
		 try {
			 HttpEntity entity = response.getEntity();
			 
			 if (entity != null) {
				 System.out.println(EntityUtils.toString(entity));
			 }
		 } 
		 catch(Exception e) {
			 e.printStackTrace();
		 } finally {        //close the response object and client object
		     response.close();
		     httpclient.close();
		 }
	 }
}            

Connect to the API using Ruby

require 'net/http' 
uri = URI('https://data.guidestar.org/v1/charitycheck/54-1774039')

Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| 
  request = Net::HTTP::Get.new uri.request_uri
  request.basic_auth 'username', 'password' 
  
  response = http.request request # Net::HTTPResponse object 

  puts response.body 
end