Discover/AllForGood API
live

AllForGood APIallforgood.org

Search and retrieve volunteer opportunities from the Points of Light network. Filter by location, issue area, skills, and commitment type across thousands of listings.

Endpoint health
verified 2d ago
search_opportunities
get_organization_opportunities
get_signup_link
get_opportunity_detail
4/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the AllForGood API?

The AllForGood.org API provides 4 endpoints for searching and retrieving volunteer opportunities from the Points of Light global network. The search_opportunities endpoint supports full-text search across opportunity titles and descriptions, geographic proximity filtering via lat_lng and radius, and returns paginated results alongside facet counts for dimensions like presence type, issue area, and skills. Individual listing details, organization-level listings, and direct signup links are each available through dedicated endpoints.

Try it
Page number (0-based).
Search keyword to match against opportunity titles and descriptions.
Search radius in meters (used with lat_lng).
Filter by skills/interests (comma-separated): Administrative, Advocacy, Teaching, Marketing, Business Skills, Media, Web Development, Social Media, Leadership, Nonprofit Management, Research, Data Science, Health Professional, Design, Skilled Labor, Photography, Human Resources, Event Support, Arts, Physical Labor, Technology, Legal, Writing, Caregiving, Finance, Public Speaking, Driving, Mentoring, Fundraising, Spanish Speakers, Food Service, Community Outreach, Accounting, Coaching, Facilitation, Board Service.
Geographic coordinates as latitude,longitude for location-based search (e.g. 40.0379,-76.3025).
Filter by presence type (comma-separated): Remote, In-Person.
Filter by issue areas (comma-separated): Education, Health & Wellness, Community Strengthening, Arts & Culture, Children & Youth, Animals, Seniors, Hunger, Disaster Response & Recovery, Environment, STEM, Veterans & Military Families, Disabilities, Technology, Civil Rights, Family Services, Women's Issues, Literacy, Poverty, Sports & Recreation, Immigrant & Refugee Services, Public Safety, Job Training & Employment, Homelessness, COVID-19, Mentoring, Adult Education.
Number of results per page (e.g. 5, 10, 20).
Filter by commitment types (comma-separated): Ongoing, Event, AmeriCorps.
api.parse.bot/scraper/495cbd4b-b6fe-472c-b766-2d09624cf903/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/495cbd4b-b6fe-472c-b766-2d09624cf903/search_opportunities?page=0&query=education&hits_per_page=5' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace allforgood-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Points of Light Engage API — find volunteer opportunities, drill into details."""
from parse_apis.points_of_light_engage_api import PointsOfLight, Presence, CommitmentType, ResourceNotFound

client = PointsOfLight()

# Search for remote education opportunities — limit= caps total items fetched.
for summary in client.opportunitysummaries.search(query="education", presence=Presence.REMOTE, limit=3):
    print(summary.title, summary.organization, summary.presence)

# Drill into the first result for full details.
first = client.opportunitysummaries.search(query="tutoring", commitment_types=CommitmentType.ONGOING, limit=1).first()
if first:
    detail = first.details()
    print(detail.title, detail.description[:100], detail.signup_url)

    # Get signup link via sub-resource (lighter than full detail fetch).
    link = first.signup.get()
    print(link.signup_url)

    # Explore the organization's other opportunities.
    org = client.organization(id=detail.organization.id)
    for opp in org.opportunities(limit=3):
        print(opp.title, opp.url)

# Typed error handling: catch not-found for a bad ID.
try:
    client.opportunities.get(id="nonexistent-id-12345")
except ResourceNotFound as exc:
    print(f"Not found: {exc}")

print("exercised: opportunitysummaries.search / details / signup.get / opportunities.get / organization.opportunities")
All endpoints · 4 totalmissing one? ·

Full-text search over volunteer opportunities with faceted filtering. Supports geographic proximity via lat_lng + radius, and categorical filters (presence, issue areas, skills, commitment types). Returns paginated results and facet counts for all filter dimensions. Each result is a summary; use get_opportunity_detail for full description and signup URL.

Input
ParamTypeDescription
pageintegerPage number (0-based).
querystringSearch keyword to match against opportunity titles and descriptions.
radiusintegerSearch radius in meters (used with lat_lng).
skillsstringFilter by skills/interests (comma-separated): Administrative, Advocacy, Teaching, Marketing, Business Skills, Media, Web Development, Social Media, Leadership, Nonprofit Management, Research, Data Science, Health Professional, Design, Skilled Labor, Photography, Human Resources, Event Support, Arts, Physical Labor, Technology, Legal, Writing, Caregiving, Finance, Public Speaking, Driving, Mentoring, Fundraising, Spanish Speakers, Food Service, Community Outreach, Accounting, Coaching, Facilitation, Board Service.
lat_lngstringGeographic coordinates as latitude,longitude for location-based search (e.g. 40.0379,-76.3025).
presencestringFilter by presence type (comma-separated): Remote, In-Person.
issue_areasstringFilter by issue areas (comma-separated): Education, Health & Wellness, Community Strengthening, Arts & Culture, Children & Youth, Animals, Seniors, Hunger, Disaster Response & Recovery, Environment, STEM, Veterans & Military Families, Disabilities, Technology, Civil Rights, Family Services, Women's Issues, Literacy, Poverty, Sports & Recreation, Immigrant & Refugee Services, Public Safety, Job Training & Employment, Homelessness, COVID-19, Mentoring, Adult Education.
hits_per_pageintegerNumber of results per page (e.g. 5, 10, 20).
commitment_typesstringFilter by commitment types (comma-separated): Ongoing, Event, AmeriCorps.
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "facets": "object with counts per filter category (presence, duration_kind, concentrated_skills, concentrated_features, concentrated_cause_areas)",
    "total_hits": "integer total matching opportunities",
    "total_pages": "integer total pages available",
    "opportunities": "array of opportunity summaries with id, title, organization, location, presence, dates, url"
  }
}

About the AllForGood API

Searching Volunteer Opportunities

The search_opportunities endpoint is the main entry point. It accepts a query string for keyword matching and supports layered filtering using issue_areas (e.g. Education, Health & Wellness, Arts & Culture), skills (e.g. Teaching, Advocacy, Marketing), and presence (Remote or In-Person). Geographic searches use the lat_lng parameter as a latitude,longitude string paired with a radius in meters. Results are paginated via page and hits_per_page. The response includes total_hits, total_pages, an opportunities array with fields like id, title, organization, location, presence, and url, plus a facets object with counts across all filter dimensions.

Opportunity and Organization Detail

get_opportunity_detail retrieves the full record for a single listing by its id from search results. The response adds fields not available in search summaries: description (full text), signup_url (the external application link), coordinates (an object with lat and lng floats), and date_time. The organization object contains both the organization name and its id slug. That slug feeds directly into get_organization_opportunities, which returns all opportunities posted by the same organization — useful for browsing a nonprofit's full listing set.

Signup Links

get_signup_link is a focused endpoint that returns only the signup_url for a given opportunity id. Some opportunities do not have an external signup link, in which case the field returns an empty string. This endpoint is useful when you already hold an opportunity ID and only need to surface the registration link without fetching the full detail record.

Reliability & maintenanceVerified

The AllForGood API is a managed, monitored endpoint for allforgood.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when allforgood.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official allforgood.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a volunteer matching app that filters opportunities by lat_lng, radius, and issue_areas to surface local causes
  • Aggregate remote-only volunteer listings using the presence=Remote filter across search_opportunities
  • Display a nonprofit's full opportunity catalog using get_organization_opportunities with the org_id from a detail record
  • Embed a direct 'Sign Up' button in a civic app by fetching signup_url via get_signup_link
  • Populate faceted search UI using the facets counts returned by search_opportunities for presence, skills, and cause area
  • Build a skills-based volunteer finder filtering by specific values like Teaching or Business Skills via the skills parameter
  • Track opportunity coverage across issue areas by paginating search_opportunities and aggregating concentrated_cause_ar facet data
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does AllForGood.org have an official developer API?+
Points of Light has published a developer-facing data feed under the AllForGood brand. Documentation is available at https://www.allforgood.org/docs. The Parse API surfaces the same opportunity data with a consistent endpoint structure and response schema.
What does `search_opportunities` return beyond the listing list?+
Beyond the opportunities array, the response includes a facets object with counts for each filter dimension — including presence, duration_kind, concentrated_skills, concentrated_features, and concentrated_cause_ar. These counts let you build accurate filter UIs without issuing separate queries per facet. total_hits and total_pages support pagination.
Are organization profile pages or nonprofit metadata exposed?+
Not currently. The API returns an organization name and id slug within opportunity records, and get_organization_opportunities lists all opportunities for a given org. Full nonprofit profiles, contact details, and organizational metadata are not covered. You can fork it on Parse and revise to add an organization detail endpoint if that data is available at the source.
What happens when an opportunity has no geographic coordinates?+
The coordinates field in get_opportunity_detail returns an empty object when location coordinates are unavailable. The location field still returns a text string in those cases. For geographic search, the lat_lng and radius parameters in search_opportunities apply proximity filtering, but individual records may omit precise coordinates.
Can I retrieve historical or expired volunteer opportunities?+
The API reflects current active listings on AllForGood.org. Expired or archived opportunities are not exposed through any of the four endpoints. You can fork it on Parse and revise to target archived listing data if that becomes accessible at the source.
Page content last updated . Spec covers 4 endpoints from allforgood.org.
Related APIs in Government PublicSee all →
idealist.org API
Search and retrieve volunteer opportunities, jobs, internships, and nonprofit organizations from Idealist.org to find meaningful work or discover organizations aligned with your values. View detailed information about specific listings and organizations to make informed decisions about where to contribute your time and skills.
getmyfirstjob.co.uk API
Search and browse apprenticeship and early career opportunities across the UK by occupation, location, and employer. Access detailed job descriptions, employer profiles, occupation categories, and the latest apprenticeship listings from GetMyFirstJob.co.uk.
devex.com API
Search and explore global development opportunities including tenders, grants, job postings, news, organizations, and events all in one place. Find funding details, discover career opportunities, and stay updated on international development initiatives through a single integrated platform.
snow.day API
Discover and search for high school extracurricular and enrichment programs by your interests, then access detailed information including costs, deadlines, and curated program lists. Browse trending opportunities and find the perfect enrichment activities tailored to your goals.
notgoingtouni.co.uk API
Search and discover apprenticeship opportunities across sectors and companies on NotGoingToUni.co.uk, filtering by opportunity types and viewing detailed information about specific roles. Browse featured apprenticeships and explore available sectors and employers to find the right career path.
shopgoodwill.com API
Search and browse Goodwill online listings to find items, view detailed product information, shipping costs, and bid history, plus explore categories and discover featured or newly listed items. Filter results with advanced search options to discover exactly what you're looking for across Goodwill's inventory.
rescuegroups.org API
Search for adoptable animals across rescue organizations by species, breed, location, and other criteria, then view detailed profiles with photos and contact information. Find the perfect pet match and connect directly with rescue organizations to start the adoption process.
grantwatch.com API
Search and browse thousands of grants from GrantWatch.com to find funding opportunities tailored to individuals, nonprofits, small businesses, and foundations. Get detailed grant information, filter by category, and discover newly posted grants to match your eligibility and funding needs.