You're on track to get doubled donations (and unlock a reward for the colleague who referred you). Keep up the great work!
Take credit for your charitable giving! Check out your tax receipts
To use your $50 gift card credits, find a project to fund and we'll automatically apply your credits at checkout. Find a classroom project
Skip to main content

Help teachers & students in your hometown this season!
Use code HOME at checkout and your donation will be matched up to $100.

Your school email address was successfully verified.

Giving Pages

A Giving Page is an easy way for someone to encourage their friends to support classroom projects. You can read more about Giving Page features and see our biggest campaigns that use Giving Pages.

Once you have a Giving Page setup and live on the DonorsChoose front-end website, this documentation can help you access data from that Giving Page programmatically. Note that in various URL parameters, and JSON requests and responses, you may see Giving Pages and their IDs referred to as challenges or challenge IDs. This is leftover from when "Giving Pages" were called "Challenges."

JSON

Primary attributes

These key attributes are typically static over the life of a Giving Page: ID number, name, header message, front-end URL, image URL, and Top Giving "leaderboard" ID number. Below is an example Giving Page JSON request and you'll see these primary attributes are the first 6 fields in the JSON response:

https://api.donorschoose.org/common/json_challenge.html?APIKey=[YOUR_API_KEY]&id=25298 (where 25298 is the Giving Page's ID number)

{

"challengeId":"25298",
"challengeName":"Oliver's Mustache “La Revolucion”",
"challengeMessage":"Big thanks to everyone who supported my mustache!!! :)",
"challengeURL":"https://www.donorschoose.org/donors/viewChallenge.html?id=25298&category=&utm_source=api&utm_medium=widget&utm_content=newproject&utm_campaign=Tech092208",
"challengeImage":"https://www.donorschoose.org/images/givingpage/uploads/small/c25298_sm.jpg?1259851491088",
"primaryCategory":{"id":"142?,"name":"New York Growers"},
...

The Top Giving "leaderboard" (example) is typically a grouping of similar Giving Page's that are raising funds as a collective and often engaged in some friendly competition with each other.

Impact stats

The Giving Page's "social impact" stats start at zero and climbs as donations are made to the Giving Page. They are the number of dollars donated, donors participating, and students reached. In the above example Giving Page JSON request, you'll see the impact stats in fields 7-9 of the JSON response:

...
"amountDonated":"3922.65",
"numDonors":"44",
"studentsReached":"4078",
...

Donors and donation messages

The last 10 donations to the Giving Page are included in the same JSON response. A "tag line" describing the donor is always present and the donor's message is usually present, but not guaranteed to be included (since it's optional for donors). In the above example Giving Page JSON request, you'll see the 10 donations in the JSON response:

...
"donationMessages":[
{"tagline":"Marleen & Walter from Boston, MA",
"message":"I'm excited to support these young journalists!"},
{"tagline":"Anonymous from Cherryville, NC",
"message":"Good Luck!"},
{"tagline":"Russell from Seattle, WA",
"message":"I gave to this project because when I was a kid I was very lucky to have a teacher who showed me how much fun science and math can be. I had the benefit of access to great books, computers and fantastic science equipment. I still have a passion for science and I attribute that to the wonderful experiences I had as a kid."},
{"tagline":"Jed from New York",
"message":"I gave to this project because music rocks and you guys rock!"},
...

Project listings

Live Projects

You can request via JSON the live projects that the Giving Page owner hand-picked using this format: https://api.donorschoose.org/common/json_feed.html?APIKey=[YOUR_API_KEY]&challengeId=22110 (where 22110 is the Giving Page ID)

Just like regular project listings requests, the request format closely resembles the front-end project search URL for the same. For example, this is the front-end search results URL for that same Giving Page's classroom projects: https://www.donorschoose.org/donors/search.html?challengeId=22110(where 22110 is the Giving Page ID)

Note that it will only return the live projects that the Giving Page owner hand-picked. It will not show live projects that are automatically populated onto the Giving Page based on the owner's criteria, eg. STEM projects.

If the response is empty, it's likely that either the Giving Page owner has not hand-picked any project or the Giving Page is no longer being actively used.

Completed Projects

You can request via JSON the Giving Page's completed projects using this format:

https://api.donorschoose.org/common/json_feed.html?APIKey=[YOUR_API_KEY]&challengeId=25298&historical=true (where 25298 is the Giving Page ID)

Like above, the request format closely resembles the front-end project search URL for the same, for example: https://www.donorschoose.org/donors/search.html?challengeId=25298&historical=true (where 25298 is the Giving Page ID)

Supporters / Mobilized Donors

You can request via JSON the Giving Page's supporters using this format:

https://api.donorschoose.org/common/json_feed.html?APIKey=[YOUR_API_KEY]&challengeId=25298&supportersindex=0&supportersmax=10 (where 25298 is the Giving Page ID)

...
"supporters": [{
"author": "J. Alexandra Pruner",
"profileURL": "https://www.donorschoose.org/JAlex?utm_source=api&utm_medium=feed&utm_content=supporterlink&utm_campaign=DONORSCHOOSE",
"photoURL": "https://a248.e.akamai.net/f/248/48906/1h/s3.amazonaws.com/donorschoose-storage/dc_prod/images/user/small/u535697_sm.jpg?timestamp=1313704157000",
"message": "Mr. Crompton thanks for sharing the story of your classroom!"
}]
...