List public offerings
Changed onReturns the offerings shown on wefunder.com/explore — the curated set of companies that meet Wefunder's discoverability bar (a soft-confirmed traction threshold plus approval), one offering per company. An "offering" is a fundraise, addressed by its id (ofr_...).
Public view (read:public). Reachable with either a server-side (client_credentials) token or a user access token. Private rounds (e.g. Reg D 506(b)) are never listed, and low-traction or unapproved companies are excluded — exactly as they are on the website for a logged-out visitor.
Logged-in view (read:explore). A user access token carrying read:explore gets what that user sees on wefunder.com/explore: the public offerings plus any the user qualifies for (accredited-only / Vault deals, invited private rounds), each checked against the same visibility policy the website applies. The response is a strict superset of the public one — same fields and ids — with two extra attributes, publicly_visible and invested, and meta.personalized: true. A server-side key can never hold read:explore; a token with read:explore but no resolvable user gets the public view.
Order with sort (default: most raised); paginate with cursor. meta.total_count is the number of offerings across all pages, after filters.
Filters are objective, per-offering terms — exemption family, security type, TTW vs. live, minimum investment ceiling, close date, amount raised floor. The response echoes the applied set in meta.filters. An out-of-vocabulary value is a 400 naming the accepted values. There are deliberately no relevance, quality, or ranking criteria.
Use this endpoint to:
- Discover and monitor active deals
- Build deal aggregators and public listings
Request
- Base URL: https://api.wefunder.com
- URL: https://api.wefunder.com/explore
- Auth: one of:
- OAuth 2 (authorization code, authorization URL https://wefunder.com/oauth/authorize, token URL https://api.wefunder.com/oauth/token; client credentials, token URL https://api.wefunder.com/oauth/token, scopes: read:public)
- OAuth 2 (authorization code, authorization URL https://wefunder.com/oauth/authorize, token URL https://api.wefunder.com/oauth/token; client credentials, token URL https://api.wefunder.com/oauth/token, scopes: read:explore)
Query parameters
Cursor-based pagination token. Use the next_cursor value from the previous response's meta object to retrieve the next page of results. Omit this parameter to retrieve the first page.
Result ordering:
- most_raised (default) — highest amount raised first
- closing_soon — soonest funding close first
- newest — most recently launched first
- most_investors — highest investor count first
Only offerings under this SEC exemption family. Reg CF and Reg D are the supported public filters.
Only offerings issuing this kind of security — the security.type value on results.
false — only live rounds accepting investments; true — only Testing-the-Waters rounds collecting non-binding reservations.
Only offerings whose minimum investment is at most this amount (USD).
Only offerings whose funding close date is on or before this date (ISO 8601). Offerings with no close date are excluded.
Only offerings that have raised at least this amount so far (USD).
Only companies tagged with any of these industries — the curated tags the wefunder.com explore page filters by (see each offering's industries). One value or a comma-separated list; unknown values are a 400 listing the vocabulary. Objective facets, not a ranking.
Only companies with any of these business models (see each offering's business_models). One value or a comma-separated list.
Logged-in view only (read:explore with a user). true — only companies the authorizing user follows on wefunder.com (their watchlist); false — only companies they do not follow. A 400 on the public view, which has no user to filter by.
Response
Successful response
Example response
{
"data": [
{
"id": "ofr_yw3OhusvpfJP4Pk3wRYV1F2R",
"type": "offering",
"attributes": {
"company_name": "ZeroBorder Self-Banking Centers",
"tagline": "Example tagline",
"url": "https://wefunder.com/zeroborder",
"card_image_url": "https://uploads.wefunder.com/uploads/company/custom_card_photo/189517/large_card.jpg",
"logo_url": "https://uploads.wefunder.com/uploads/company/logo/189517/large_logo.png",
"exemption": {
"family": "reg_cf",
"label": "Reg CF"
},
"security": {
"label": "SAFE",
"terms": {
"valuation_cap": "10000000",
"discount_percent": "20"
}
},
"intended_security": {
"label": "SAFE"
},
"industries": [
{
"type": "robotics",
"label": "Robotics"
}
],
"business_models": [
{
"type": "robotics",
"label": "Robotics"
}
],
"status": "open",
"funding_target": "1000000",
"min_investment": "100",
"amount_raised": "642300",
"investor_count": 1203,
"started_at": "2025-03-01T12:00:00Z",
"closes_at": "2025-04-30T03:59:59Z",
"closed_at": "2025-03-01T12:00:00Z",
"publicly_visible": true
},
"company": "co_8Kd0aB3xQ9k2vF8mNp1zT5wY",
"warnings": [
{
"code": "prior_rounds",
"message": "This company completed 2 earlier rounds on Wefunder. amount_raised and investor_count cover this offering only, not the company's lifetime total."
}
],
"etag": "a1b2c3d4e5f6"
}
],
"meta": {
"total_count": 119,
"page_count": 25,
"has_more": true,
"sort": "most_raised",
"filters": {
"security": "safe",
"testing_the_waters": false
},
"next_cursor": 25
}
}Changes
- info
the security scope
read:publicwas added to the endpoint's security schemebearerAuth - info
the security scope
read:explorewas removed from the endpoint's security schemebearerAuth
- info
- breaking
the response property
//became nullable for the status - breaking
the
//response's property type changed fromobjecttostringfor status - warning
removed the optional property
///from the response with the status - warning
removed the optional property
///from the response with the status - warning
removed the optional property
///from the response with the status - warning
removed the optional property
///from the response with the status - warning
added the new
otherenum value to the////response property for the response status - info
added the new optional
queryrequest parameterbusiness_model - info
added the new optional
queryrequest parameterclosing_before - info
added the new optional
queryrequest parameterexemption - info
added the new optional
queryrequest parameterfollowed - info
added the new optional
queryrequest parameterindustry - info
added the new optional
queryrequest parametermax_min_investment - info
added the new optional
queryrequest parametermin_amount_raised - info
added the new optional
queryrequest parametersecurity - info
added the new optional
queryrequest parametertesting_the_waters - info
added the non-success response with the status
- info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
/to the response with the status
- breaking