OpportunityMarket trang chủ

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

GET/api/opportunities

Screener — filtered, paged list of opportunities.

  • q — text search across name and description
  • category — one category slug, e.g. ai-voice — see /methodology
  • status — comma-separated: EMERGING,RISING,HOT,STABLE,SATURATED,DECLINING,DEAD
  • quadrant — UNDERVALUED | HOT | CROWDED | DEAD
  • quality — comma-separated evidence quality: LOW,MEDIUM,HIGH
  • minScore / maxScore — Opportunity Score bounds, 0-100
  • minDemand, maxCompetition, minMomentum, minMonetization, minPain, minEvidence — numeric floors/ceilings on the matching sub-score
  • sort — score | momentum | demand | newest | evidence | pain | competition (default score)
  • limit / offset — paging, limit capped at 200 (default 50)
GET/api/opportunities/trending

Top opportunities by score weighted with momentum.

  • limit — default 20, max 100
GET/api/opportunities/rising

Strongest momentum right now.

  • limit — default 20, max 100
GET/api/opportunities/undervalued

High demand, low competition.

  • limit — default 20, max 100
GET/api/opportunities/:idOrSlug

One opportunity's full detail — scores, snapshots, status.

GET/api/opportunities/:idOrSlug/evidence

Raw evidence rows behind an opportunity, with excerpt, source and confidence.

  • role, source, limit, offset — filter/page the evidence list
GET/api/opportunities/:idOrSlug/history

Score snapshot history for the movement chart.

GET/api/opportunities/:idOrSlug/competitors

Observed competing products for this market.

GET/api/search-requests

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