demand-intent.read scope and a valid Authorization: Bearer <token> header.
Common query parameters
All list endpoints on this page share the following query parameters.string
default:"7d"
The time window to aggregate over. One of
day, 7d, or 30d.integer
Restrict results to games belonging to this console. Omit to return results across all consoles.
string
Override the target date. Defaults to the latest computed date for the selected period. Format:
YYYY-MM-DD.integer
default:"25"
Page size. Capped by your plan’s
max_page_size.integer
default:"1"
Page number (page-mode pagination).
string
Cursor token for cursor-mode pagination. Pass
paginate=cursor to opt in.string
default:"page"
Pagination mode. Set to
cursor to use cursor-based pagination.Derived fields
Several fields in the response are computed from the raw demand data rather than stored directly. Understanding how they are derived helps you interpret what they signal.momentum
When a game has no 30-day baseline (it is newly tracked, or had no activity in the prior 30 days), both
value and label are returned as null / "unknown".
demand_score
A single 0–100 index blending intent, reach, and watch demand into one comparable number. Each component is normalised against the highest value in the current period and console scope, so the top-ranked title always scores 100 and every other title is scored relative to it.
The three signals blended are:
- Intent — redirect volume (purchase-intent clicks).
- Reach — distinct users who generated those clicks.
- Watch demand — watchlist alert count.
mobile_share
The fraction of demand activity that originated from a mobile device, expressed as a value between 0.0 (no mobile activity) and 1.0 (all mobile). Useful for understanding your buyers’ browsing context.
GET /api/v1/demand-intent/games
Returns a ranked leaderboard of games by demand for the selected period. Use this endpoint to answer “what should I source and stock right now?”Query parameters
In addition to the common parameters:string
default:"intent"
Sort order for the leaderboard. One of:
intent— by redirect volume (default)watches— bywatch_countdescending (latent demand)momentum— by the momentum ratio descending (fastest-rising first)
Response
Returns a paginated array of leaderboard rows. Themeta object includes the resolved period, period_date, and sort.
array
Array of leaderboard rows, each representing one game ranked by the selected sort.
integer
The game’s rank within the current period and sort. Precomputed from the demand metrics tables.
object
object
object
Watchlist / notification alert signals (latent demand).
integer
Number of active watchlist alerts for this game in the period.
object
object
integer
Composite 0–100 demand index. The highest-ranked title in the result set always scores 100.
object
string
The resolved period (
day, 7d, or 30d).string
The date the data was computed for (YYYY-MM-DD).
string
The active sort (
intent, watches, or momentum).object
Standard pagination metadata (see Pagination).
GET /api/v1/demand-intent/games/
Returns a full demand profile for one game, with metrics shown side-by-side for all three periods (day, 7d, and 30d). Use this to understand how a specific title is performing across different time horizons.
Path parameters
integer
required
The numeric ID of the game. You can resolve IDs from the Games catalog endpoints.
Response
object
object
object
Demand metrics for each time window.
object
object
Returns
404 not_found if the game_id does not correspond to an enabled game in the catalog.GET /api/v1/demand-intent/games//conditions
Returns a condition breakdown for one game, showing whether buyers most want it loose (cartridge/disc only), CIB (complete in box), new (sealed), or any (no condition preference). This is sourced from saved notification alerts — real buyer intent with a specific condition attached — making it a reliable signal for how to list your copy.Path parameters
integer
required
The numeric ID of the game.
Query parameters
string
default:"7d"
The time window to aggregate over. One of
day, 7d, or 30d.Response
object
object
object
array
All four condition rows, sorted by rank. Rows sum to approximately 1.0 on
condition_share.integer
Rank within this game’s conditions for the period.
string
One of
loose, cib, new, or any.integer
Number of active watchlist alerts for this game/condition pair.
integer
Number of price-drop notification triggers for this game/condition pair.
This condition’s share of all alerts across the game’s four conditions (0.0–1.0). All four rows sum to ~1.0.
integer
Unique users behind these alerts.
Fraction of alert activity from mobile devices (0.0–1.0).
All four conditions are always returned. A condition with no alerts in the selected period appears as a zeroed row (
watch_count: 0, condition_share: 0.0) ranked after the conditions that had activity. Returns 404 not_found if the game_id is unknown or disabled.GET /api/v1/demand-intent/trending
Returns games ranked by momentum — the fastest-rising titles whose recent daily activity most exceeds their 30-day baseline. Use this to get ahead of demand before prices move. The sort is fixed tomomentum and cannot be overridden.
Query parameters
string
default:"7d"
The time window to aggregate over. One of
day, 7d, or 30d.integer
Filter results to a single console.
string
Override the target date (defaults to latest computed).
integer
default:"25"
Page size.
integer
default:"1"
Page number.
string
Cursor token for cursor-mode pagination.
string
default:"page"
Set to
cursor for cursor-based pagination.Response
Returns a paginated array of leaderboard rows in the same shape asGET /api/v1/demand-intent/games. The meta.sort field is always "momentum".
GET /api/v1/demand-intent/watched
Returns the most-watched games — titles with the highest number of active watchlist alerts, representing buyers who are waiting for the right price before purchasing. This surfaces latent demand that redirect intent alone may not capture: a game with modest click-through but many alert saves signals a price-sensitive buyer pool ready to act.Query parameters
string
default:"7d"
The time window to aggregate over. One of
day, 7d, or 30d.integer
Filter results to a single console.
string
Override the target date (defaults to latest computed).
integer
default:"25"
Page size.
integer
default:"1"
Page number.
string
Cursor token for cursor-mode pagination.
string
default:"page"
Set to
cursor for cursor-based pagination.Response
Returns a paginated array of leaderboard rows in the same shape asGET /api/v1/demand-intent/games. The sort is fixed to watch_count descending. Redirect intent (intent.redirects) is left-joined from the intent table and may be 0 for titles that have watchlist saves but no purchase-intent clicks in the period.
Because this endpoint is built from the watch table rather than the intent table, you may see titles that do not appear on the main leaderboard at all — games people are waiting on but not yet actively clicking to buy.