esp.ethereum.foundation APIesp.ethereum.foundation ↗
Access Ethereum Foundation ESP grant rounds, RFPs, wishlist items, blog posts, and application form fields via 12 structured endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/08f63c73-ce3b-42cd-b2f4-ad7c81056ed7/get_office_hours_form_fields' \ -H 'X-API-Key: $PARSE_API_KEY'
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.
No input parameters required.
{
"type": "object",
"fields": {
"fields": "array of form field objects with name, type, label, required, placeholder, options, help, and default properties"
},
"sample": {
"data": {
"fields": [
{
"name": "firstName",
"type": "text",
"label": "First name",
"required": true,
"placeholder": ""
},
{
"name": "profileType",
"type": "dropdown",
"label": "Profile Type",
"default": "Individual",
"options": [
"Individual",
"Team",
"Organization"
],
"required": true
}
]
},
"status": "success"
}
}About the esp.ethereum.foundation API
The Ethereum Foundation ESP API exposes 12 endpoints covering the full Ecosystem Support Program surface: active grant rounds, RFPs, wishlist items, blog posts, and application form metadata. The get_rfps endpoint returns Salesforce-backed RFP objects with fields like Name, Description__c, Tags__c, and Resources__c, while get_round_details fetches compiled MDX content and associated RFP items for any round by slug. Developers monitoring ESP funding opportunities or building grant-discovery tools get structured data without screen-scraping HTML.
Grant Rounds and RFPs
get_open_rounds returns an array of currently active grant round objects — or an empty array when no rounds are open, so your app can handle the off-cycle state cleanly. To drill into a specific round, call get_round_details with a slug parameter (e.g. phdfp26); the response includes frontmatter fields (name, description, tags, startDate, endDate), an rfp_items array of associated proposals, and a content_mdx string of the full compiled page content. get_rfps lists all Requests for Proposals with their Salesforce-native field names (Id, Name, Description__c, Tags__c, Resources__c), and get_wishlist returns the same shape for project types ESP is actively seeking.
Blog and Informational Content
get_blog_posts fetches all posts from the Ecosystem Support Program category on the Ethereum blog, returning each post's frontmatter (title, date, author, category, image), a content string, and a url. Individual posts can be fetched with get_blog_post_detail using a url_path in YYYY/MM/DD/slug format; the endpoint accepts paths with or without the /en/ prefix and trailing slash, returning the canonical URL, full markdown content, and frontmatter. get_applicants_overview returns the How to Apply page broken into mission_and_scope, process steps, and faq items — useful for surfacing eligibility context alongside listing data.
Application Form Metadata
get_office_hours_form_fields returns every field in the Office Hours application form as structured objects with name, type, label, required, placeholder, options, help, and default properties — enough to render the form programmatically or validate user input before submission. Two focused endpoints — get_domain_dropdown_options and get_profile_type_options — return the option arrays for those specific dropdowns independently, useful when you only need to populate a single select element. get_office_hours_info returns section strings for Summary, Eligibility, Process, What we offer, and FAQ.
Scope and Data Shape
All endpoints are GET requests with no required authentication. get_rfps and get_wishlist return Salesforce-style field names (__c suffix) reflecting the upstream data model. The get_round_details endpoint returns a stale_input error with kind: input_not_found when the provided slug doesn't match any known round, so callers should handle that case explicitly.
- Build a grant-discovery dashboard that surfaces open ESP rounds via
get_open_roundsand their full details viaget_round_details. - Aggregate all ESP RFPs and wishlist items into a searchable database using the
Tags__candDescription__cfields fromget_rfpsandget_wishlist. - Render a programmatic application form by consuming the field metadata from
get_office_hours_form_fields, including dropdown options and required-field flags. - Sync ESP blog posts into a content feed or newsletter by polling
get_blog_postsfor new entries by date fromfrontmatter. - Embed eligibility and process copy from
get_applicants_overviewinto a grant-matching tool so users see ESP scope before applying. - Track ESP team and mission changes over time by periodically calling
get_about_espand diffing thesummaryandteam_sectionsfields. - Populate domain and profile type dropdowns in an external intake form using
get_domain_dropdown_optionsandget_profile_type_options.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does the Ethereum Foundation ESP website have an official developer API?+
What does `get_round_details` return when a slug doesn't exist?+
slug parameter doesn't match any known grant round, the endpoint returns a stale_input error object with kind: input_not_found. Your client code should check for this before trying to access details, rfp_items, or content_mdx.Does the API expose grant application submission or status-checking functionality?+
get_office_hours_form_fields), informational content, and listing data. You can fork this API on Parse and revise it to add an endpoint targeting the submission flow or any status-check surface.Are past or archived grant rounds accessible, not just currently open ones?+
get_open_rounds only returns currently active rounds and returns an empty array during off-cycles. get_round_details accepts a slug for any round, including past ones, if you know the slug — but there is no endpoint that lists all historical rounds. You can fork this API on Parse and revise it to add a round-index or archive endpoint.