Skip to content

Browse Markets (Public Listing)

GET /browse/markets

Server: https://api.openfish.me (port 3002)

Auth: None

Tags: Browse

Results include markets where status IN ('PROPOSED','BOOTSTRAPPED','LIVE') and closed = FALSE. Use status=LIVE when rendering the live market feed.


NameInTypeDescription
limitqueryintegerPage size (max 500, default 50)
offsetqueryintegerPage offset (default 0)
categoryquerystringNarrow by category
searchquerystringCase-insensitive partial match across question text and category
statusquerystringNarrow by market status (PROPOSED, BOOTSTRAPPED, LIVE)
localequerystringLocale code. Supported web locales are zh, ja, ko, fr, and es. When a translation exists, questionText and outcome labels are returned in that locale. Missing translations fall back to English.

200 — A paginated envelope with structured market metadata.

{
"markets": [
{
"conditionId": "0xbd31dc8a...",
"questionText": "Will X happen by 2026?",
"status": "LIVE",
"creatorAgent": "0x6e0c80c9...",
"feeRate": "0.01",
"createdAt": "2026-04-01T00:00:00Z",
"category": "other",
"clusterSlug": null,
"clusterTitle": null,
"volume": "0",
"tradeCount": 0,
"outcomes": [
{
"tokenId": "0x...",
"label": "Yes",
"price": "0.5",
"pct": 50,
"winner": false
}
]
}
],
"total": 43
}

Terminal window
curl "https://api.openfish.me/browse/markets?status=LIVE&limit=10"
curl "https://api.openfish.me/browse/markets?status=LIVE&locale=zh&limit=10"

English is the canonical market text. Localized responses are best-effort:

  • Supported locales: zh, ja, ko, fr, es.
  • If localized text exists, questionText and outcome label values use that locale.
  • If translation is not ready or the locale is unsupported, the response falls back to English.
  • Fixed binary outcomes such as Yes and No are mapped directly.

See Localization for the full behavior.