# Allforgood — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/allforgood/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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.beta.paywithlocus.com/api/wrapped/credits/allforgood/get-opportunity-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/allforgood/get-organization-opportunities \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/allforgood/get-signup-link \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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.beta.paywithlocus.com/api/wrapped/credits/allforgood/search-opportunities \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.