API dữ liệu Opportunity Market
Every endpoint below is public, read-only, and unauthenticated — the same data the site itself renders, as JSON. Responses are shaped { data: … } on success or { error: … } with a non-2xx status on failure. There is no API key: results are cached briefly server-side (scores move on an hourly cycle) and requests are otherwise unlimited, so please be a reasonable neighbour — cache on your side too if you're polling.
Endpoints
/api/opportunitiesScreener — filtered, paged list of opportunities.
q— text search across name and descriptioncategory— one category slug, e.g. ai-voice — see /methodologystatus— comma-separated: EMERGING,RISING,HOT,STABLE,SATURATED,DECLINING,DEADquadrant— UNDERVALUED | HOT | CROWDED | DEADquality— comma-separated evidence quality: LOW,MEDIUM,HIGHminScore / maxScore— Opportunity Score bounds, 0-100minDemand, maxCompetition, minMomentum, minMonetization, minPain, minEvidence— numeric floors/ceilings on the matching sub-scoresort— score | momentum | demand | newest | evidence | pain | competition (default score)limit / offset— paging, limit capped at 200 (default 50)
/api/opportunities/trendingTop opportunities by score weighted with momentum.
limit— default 20, max 100
/api/opportunities/risingStrongest momentum right now.
limit— default 20, max 100
/api/opportunities/undervaluedHigh demand, low competition.
limit— default 20, max 100
/api/opportunities/:idOrSlugOne opportunity's full detail — scores, snapshots, status.
/api/opportunities/:idOrSlug/evidenceRaw evidence rows behind an opportunity, with excerpt, source and confidence.
role, source, limit, offset— filter/page the evidence list
/api/opportunities/:idOrSlug/historyScore snapshot history for the movement chart.
/api/opportunities/:idOrSlug/competitorsObserved competing products for this market.
/api/search-requestsMost-requested terms the index doesn't cover yet (or the state of one, with ?q=term).
What each field means and how it is computed is on the scoring methodology page. Try a live example: /api/opportunities/trending?limit=5.