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.
API License
Use of the Donor Tools API is subject to the API License Agreement .
Example App
Check out our dead-simple example app on Github: https://github.com/donortools/Donor-Tools-Consumer-Rails-3 (Rails 3) or https://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.
HTTPS Protocol
Everything in the Donor Tools API uses XML over HTTPS using the four REST verbs
GET/POST/PUT/DELETE
.
The Donor Tools API tries to follow
REST
principles pretty closely.
Authentication
Donor Tools uses HTTP Basic authentication. Every request must include the Authorization HTTP header. For example:
curl -u my-user@example.com:it2at9yags https://demo.donortools.com/donations.xml
API User
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.
SSL
All requests must be made over SSL (port 443).
Available Resources
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
Personas are the backbone of recordkeeping in Donor Tools. A persona can have many donations.
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
Sources describe where a donation is coming from. Sources are frequently used to represent fundraising campaigns or specific mailings.
Funds
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.
GET
curl -u user@example.com:it2at9yags https://demo.donortools.com/donations.xml
POST, PUT
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 user@example.com:it2at9yags https://demo.donortools.com/donations.xml