# Allforgood — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and discover volunteer opportunities worldwide by cause, location, and required skills, then access detailed information about specific opportunities and organizations. Sign up directly for causes that match your interests through integrated signup links.

**Category:** Government & Public Data | **Website:** [allforgood.org/](https://allforgood.org/) | **Docs:** [parse.bot/marketplace/3b574f9a-ce32-45c9-bd4d-4a2ca43dc412/allforgood-org-api](https://parse.bot/marketplace/3b574f9a-ce32-45c9-bd4d-4a2ca43dc412/allforgood-org-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-allforgood-org-api-3b574f9a/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_opportunity_detail

Retrieve full details for a single volunteer opportunity by its ID. Returns the complete description, organization info, signup URL, location text, geographic coordinates, and date/time information. The ID is obtained from search_opportunities results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | The unique opportunity ID from search_opportunities results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-allforgood-org-api-3b574f9a/get_opportunity_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### get_organization_opportunities

List all volunteer opportunities posted by a specific organization. The org_id slug is available from get_opportunity_detail results in the organization.id field. Returns an array of opportunity summaries (id, title, url).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `org_id` | string | Yes | The organization slug ID from get_opportunity_detail results (organization.id field). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-allforgood-org-api-3b574f9a/get_organization_opportunities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"org_id":"<string>"}'
```

### get_signup_link

Retrieve the external signup or application URL for a specific volunteer opportunity. Returns the direct link where a volunteer can sign up. Some opportunities may not have an external signup link (empty string returned).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | The unique opportunity ID from search_opportunities results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-allforgood-org-api-3b574f9a/get_signup_link \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### search_opportunities

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.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `commitment_types` | string | No | Filter by commitment types (comma-separated): Ongoing, Event, AmeriCorps. |
| `hits_per_page` | integer | No | Number of results per page (e.g. 5, 10, 20). |
| `issue_areas` | string | No | 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. |
| `lat_lng` | string | No | Geographic coordinates as latitude,longitude for location-based search (e.g. 40.0379,-76.3025). |
| `page` | integer | No | Page number (0-based). |
| `presence` | string | No | Filter by presence type (comma-separated): Remote, In-Person. |
| `query` | string | No | Search keyword to match against opportunity titles and descriptions. |
| `radius` | integer | No | Search radius in meters (used with lat_lng). |
| `skills` | string | No | 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. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-allforgood-org-api-3b574f9a/search_opportunities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"commitment_types":"<string>","hits_per_page":"<integer>","issue_areas":"<string>","lat_lng":"<string>","page":"<integer>","presence":"<string>","query":"<string>","radius":"<integer>","skills":"<string>"}'
```
