# Esp Ethereum — 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.

> Access information about Ethereum Foundation's grant programs, including open funding rounds, RFPs, and application details to find grants that match your project's needs. Browse blog posts, wishlist items, and office hours schedules to stay updated on ecosystem support opportunities.

**Category:** Web3 & Onchain | **Website:** [esp.ethereum.foundation/](https://esp.ethereum.foundation/) | **Docs:** [parse.bot/marketplace/baff1025-98b8-453d-abf7-2be0a9554bfb/esp-ethereum-foundation-api](https://parse.bot/marketplace/baff1025-98b8-453d-abf7-2be0a9554bfb/esp-ethereum-foundation-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/esp-ethereum/`
**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 about esp

Fetches information about ESP, its mission, and team sections. Returns a summary of the program and detailed descriptions of each team (Overview, Grant Management, Funding Coordination).

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-about-esp \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get applicants overview

Fetches the How to Apply overview page, returning ESP's mission and scope text, the step-by-step application process, and FAQ items. The process array is ordered sequentially from Browse through Complete.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-applicants-overview \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get blog post detail

Fetches full content of a specific blog post by its URL path. Accepts paths with or without the /en/ prefix and trailing slash. Returns the complete markdown content, frontmatter metadata, and canonical URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url_path` | string | Yes | URL path of the blog post in format YYYY/MM/DD/slug. Accepts variations: '/en/YYYY/MM/DD/post-slug/', '/YYYY/MM/DD/post-slug', or 'YYYY/MM/DD/post-slug'. Obtain from get_blog_posts results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-blog-post-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"url_path":"<string>"}'
```

### Get blog posts

Fetches blog posts from the Ecosystem Support Program category on the Ethereum blog. Returns posts with frontmatter metadata (title, date, author, category, image) and content preview text. Posts are ordered by date descending.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-blog-posts \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get domain dropdown options

Returns the complete list of available options for the Domain dropdown field in the Office Hours application form. These represent the categories of work ESP supports.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-domain-dropdown-options \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get office hours form fields

Returns all form fields with their metadata for the Office Hours application form, including field names, types, labels, required status, help text, and options for dropdowns/radios. Each field object describes one input in the form; dropdown fields include their full options array.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-office-hours-form-fields \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get office hours info

Fetches the Office Hours informational page, returning sections including Summary, Eligibility, Process, What we offer, What we DON'T offer, Before submitting, and FAQ. Each section key maps to its full text content.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-office-hours-info \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get open rounds

Fetches all currently active grant rounds. Returns an array which may be empty when no rounds are currently open. Each round object includes slug, name, description, tags, and date fields.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-open-rounds \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get profile type options

Returns available options for the Profile Type dropdown field in the Office Hours application form.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-profile-type-options \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get rfps

Fetches all Requests for Proposals (RFPs) with their details including name, description, tags, requirements, resources, and open/close dates. Each RFP object contains Salesforce-sourced fields.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-rfps \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get round details

Fetches full details for a specific grant round by its slug. Returns the round's frontmatter metadata (name, description, tags, dates), compiled MDX page content, and associated RFP items. Returns stale_input with kind input_not_found if the slug does not match any known round.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Round slug identifier, obtained from get_open_rounds results (e.g. 'phdfp26'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-round-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### Get wishlist

Fetches the ESP wishlist of project types that ESP is seeking proposals for. Each item includes name, description, tags, resources, and other metadata fields. Returns an empty array when no wishlist items are currently published.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/esp-ethereum/get-wishlist \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## 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.