Integrate our data with your app
Our API serves up project titles, descriptions, classroom photos, geo-tags, full teacher-written essays, and more. It can also be used to issue gift cards to your customers so they can support a classroom projects of their choosing, or to make donations. The API has been used by Chevron, SONIC Drive-In, NBC Universal, Bing, PayPal, Starbucks and others to build customized cause marketing and community engagement experiences.
In our Hacking Education contest, developers and data crunchers used our API to build 50 novel apps to improve public education in America. Check out the 8 contest finalists, these 25 awesome apps that wowed our judges and staff, and the Big Winner crowned by Stephen Colbert!
Check out the above examples of what others have built, then dive into our friendly Documentation to get started!
You will need to request an API key to get started.
What is JSON?
Learn more about JSON and access popular packages/parsers at http://www.json.org/.
How can I make an HTTP request?
Our API is simple: you make an HTTP request-assembled very similarly to a regular DonorsChoose front-end project search-and receive classroom project listings in a JSON response.
The easiest way to build your first request is to start by searching for projects on our site. For example, if you'd like to see a list of Arts & Music projects, the search results page address looks like this:
To view the same list in JSON format, simply change the URL like so:
Notice that in addition to changing the sub-domain from www. to api. and the URI from /donors/search.html to /common/json_feed.html, you will need to include an API Key on the query string.
Heads up that the first 70 lines of the response are blank so if you're viewing the response in your browser, you'll likely have to scroll a bit to get to the good stuff. (We know this is a bit annoying and hope to fix it soon.)
How can I receive a unique API key?
Once you're ready to make things official, request an API key.
Also, we suggest you join our email list so we can notify you of any functional or policy changes.