API Documentation
GiveRadar REST API v1
Contents
Authentication
All API requests require an API key. Get yours free at /api/keys/.
Option 1: Authorization header (recommended)
curl -H "Authorization: Bearer gr_your_key_here" \
"https://giveradar.com/api/v1/search/?q=oxfam"
Option 2: Query parameter
curl "https://giveradar.com/api/v1/search/?q=oxfam&api_key=gr_your_key_here"
Rate Limits
| Tier | Daily Limit | Price | Data Access |
|---|---|---|---|
| Free | 100 requests/day | $0 | Search + basic data |
| Pro | 10,000 requests/day | $99/month | Full data: financials, officers, contacts |
| Enterprise | Unlimited | Custom | Bulk export, webhooks, SLA |
Limits reset at midnight UTC. Every response includes requests_remaining in the _meta object.
Errors
| Code | Meaning | What to do |
|---|---|---|
| 401 | No API key provided | Add your key as a Bearer token |
| 403 | Invalid or deactivated key | Check your key at /api/keys/ |
| 404 | Charity not found | Check the slug is correct |
| 429 | Rate limit exceeded | Wait until midnight UTC or upgrade |
Search Charities
/api/v1/search/
Search charities by name, EIN, or country. Returns up to 30 results sorted by trust score and revenue.
Parameters
| q | string | Search query (name or EIN) |
| country | string | 2-letter country code (e.g. US, GB, DE) |
Example
curl -H "Authorization: Bearer gr_your_key" \
"https://giveradar.com/api/v1/search/?q=red+cross&country=US"
Response
{
"query": "red cross",
"country": "US",
"count": 15,
"results": [
{
"slug": "american-national-red-cross",
"name": "American National Red Cross",
"country_code": "US",
"trust_score": 82,
"annual_revenue": 3200000000,
"program_spend_pct": 89.2,
"category": "Human Services",
"verified": true
}
]
}
Charity Detail
/api/v1/charity/{slug}/
Get complete charity profile including financials, officers, red flags, and reviews.
Response fields
name — Organization name
trust_score — 0-100 trust score
description — Description
website — Website URL
email — Contact email
phone — Phone number
address — Physical address
city / state_province
annual_revenue — Annual revenue
annual_expenses — Annual expenses
program_expenses — Program spend
overhead_ratio — Overhead %
top_exec_name — CEO/Director
top_exec_compensation — Pay
employee_count — Staff size
founded_year — Year founded
ein — US EIN number
sanctions_status — clear/matched
verified — GiveRadar verified
data_sources — Data provenance
recent_filings — Last 3 filings
officers — Up to 20 officers
red_flags — Active warnings
review_summary — Avg rating + count
Example
curl -H "Authorization: Bearer gr_your_key" \
"https://giveradar.com/api/v1/charity/american-national-red-cross/"
Financial Filings
/api/v1/charity/{slug}/financials/
Get financial filing history (up to 10 years) plus executive compensation and spending breakdown.
Response includes
filings[] — Array of yearly filings: revenue, expenses, program/admin/fundraising spend, assets, liabilities
spending_breakdown — Current program_spend_pct, admin_spend_pct, overhead
executive_compensation — Top exec name, title, compensation
News & Sentiment
/api/v1/charity/{slug}/news/
Get recent news articles and average sentiment score for a charity. Powered by GDELT.
Response includes
articles[] — Title, URL, source, language, tone, published date
article_count — Number of articles
average_tone — Sentiment score (negative = bad, positive = good)
Reviews
/api/v1/charity/{slug}/reviews/
Submit a review for a charity.
Request body (JSON)
{
"user_name": "John Doe",
"user_role": "donor", // donor, volunteer, beneficiary, employee, other
"rating": 4, // 1-5
"title": "Great organization",
"comment": "Very transparent..."
}
Platform Stats
/api/v1/stats/
Get platform-wide statistics: total charities, countries, red flags, average trust score.
Code Examples
Python
import requests
API_KEY = "gr_your_key_here"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Search
resp = requests.get(
"https://giveradar.com/api/v1/search/",
params={"q": "unicef", "country": "US"},
headers=headers,
)
data = resp.json()
for charity in data["results"]:
print(f"{charity['name']}: {charity['trust_score']}/100")
JavaScript
const API_KEY = 'gr_your_key_here';
const resp = await fetch(
'https://giveradar.com/api/v1/search/?q=oxfam',
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
);
const data = await resp.json();
console.log(data.results);
Our data sources, methodology, and per-country documentation are open source.
matt-timmermans/giveradar-data