Donor Tools API
Donor Tools is the first online donor management system to offer a truly open, full-featured API. Just about anything that can be done in Donor Tools can also be done outside Donor Tools, using the API. The only difference is that you're dealing with XML instead of HTML.
Use of the Donor Tools API is subject to the API License Agreement .
Check out our dead-simple example app on Github: https://github.com/donortools/Donor-Tools-Consumer-Rails-3 (Rails 3) or http://github.com/donortools/Donor-Tools-Consumer (Rails 2). The example app might give you some ideas about how you can interact with our API.
Donor Tools API Google Group
Join our Donor Tools API group on Google to keep up with the latest developments and seek advice from other developers.
Everything in the Donor Tools API uses XML over HTTPS using the four REST verbs
The Donor Tools API tries to follow
principles pretty closely.
Donor Tools uses HTTP Basic authentication. Every request must include the Authorization HTTP header. For example:
curl -u firstname.lastname@example.org:it2at9yags https://demo.donortools.com/donations.xml
You'll need to sign up for a Donor Tools account in order to use the API. If you don't already have a Donor Tools account, you can get one by going to www.donortools.com/signup .
Donor Tools' auditing feature logs each and every action for your account. Thus, if you provide your own username and password for the API (not recommended), all actions through the API will appear as being committed by you. We recommend creating a separate API user to provide finer grained reporting detail. This technique also helps protect your personal authentication parameters, as you can provide a different username and password.
All requests must be made over SSL (port 443).
Most resources are available via REST simply by attaching ".xml" to the URL. Try it with your web browser! For example, if you're viewing a donation at /donations/1, simply change the URL to /donations/1.xml to see the XML output in your browser.
Personas are the backbone of recordkeeping in Donor Tools. A persona can have many donations.
A donation belongs to a persona. Every donation must have one or more splits. A donation also may have one source. Each split must have one fund.
Sources describe where a donation is coming from. Sources are frequently used to represent fundraising campaigns or specific mailings.
Funds describe where a donation split is going to. Funds often correspond with an organization's programs.
Testing with cURL
You can use cURL to test many API methods.
curl -u email@example.com:it2at9yags https://demo.donortools.com/donations.xml
When using POST or PUT, remember to pass "application/xml" in the Content-type header.
curl -X POST -H 'Content-type: application/xml' --data @new_donation.xml \ -u firstname.lastname@example.org:it2at9yags https://demo.donortools.com/donations.xml