Search Demos
search_demosSearch and filter .dm91 demo files in DEMOPATH (local directory or s3:// URI). Returns up to N matching demos sorted by the chosen criterion. Supports filtering by recency, gametype, map, player, win/loss, minimum kills…
How it works ↓Pricing
Per call
$0.02
Model
time-based
Pay only for what you use. No subscriptions.
Inputs
pov_won
booleannulloffset
integernullbefore
stringnulldeep_scan
booleannullmax_age_days
numbernullsort
stringnullmin_size_bytes
integernullmin_kills
integernullgametype
stringnulllimit
integernullafter
stringnullmap
stringnullmin_duration_secs
integernullplayer
stringnullInput Parameters
Cost per run
Execution cost$0.02
About Search Demos
Search and filter .dm_91 demo files in DEMO_PATH (local directory or s3:// URI). Returns up to N matching demos sorted by the chosen criterion. Supports filtering by recency, gametype, map, player, win/loss, minimum kills, and duration. Use deep_scan=true (or filters like pov_won/min_kills) to decode demos and get full rosters and scoreboards. NOTE: deep_scan is NOT supported when DEMO_PATH is an s3:// URI; only shallow (filename-based) filters work over S3. WARNING: deep_scan opens and fully reads every candidate demo file — it is expensive on large libraries. Avoid it when gametype, map, and player are your only filters: standard filenames already encode these fields. deep_scan is only necessary for roster-based player matching, pov_won, min_kills, min_duration_secs, or sort=longest.
Frequently Asked Questions
Search and filter .dm_91 demo files in DEMO_PATH (local directory or s3:// URI). Returns up to N matching demos sorted by the chosen criterion. Supports filtering by recency, gametype, map, player, win/loss, minimum kills, and duration. Use deep_scan=true (or filters like pov_won/min_kills) to decode demos and get full rosters and scoreboards. NOTE: deep_scan is NOT supported when DEMO_PATH is an s3:// URI; only shallow (filename-based) filters work over S3. WARNING: deep_scan opens and fully reads every candidate demo file — it is expensive on large libraries. Avoid it when gametype, map, and player are your only filters: standard filenames already encode these fields. deep_scan is only necessary for roster-based player matching, pov_won, min_kills, min_duration_secs, or sort=longest.
Search Demos costs $0.02 per call on xpay. No subscription, no minimums. Pay only for the calls you make. New accounts get $5 in free credits.
Connect the Mcps MCP endpoint to your client — Claude Code: claude mcp add --transport http quakelive "https://quakelive.mcp.xpay.sh/mcp?key=YOUR_XPAY_KEY"; Cursor/Windsurf/Cline/VS Code: same URL in mcp.json. The agent will see search_demos as a callable tool with the input schema and run it directly. (Unified across all providers: https://mcp.xpay.sh/mcp?key=YOUR_XPAY_KEY, then xpay_run with toolPath quakelive/search_demos.)
Yes — that's exactly what xpay is for. You don't need a Mcps account or API key. Sign up at xpay.tools (Google or email), get $5 free credit, and run Search Demos immediately. Billing flows through your xpay balance.
Search Demos accepts 14 input parameters: pov_won, offset, before, deep_scan, max_age_days, sort…. See the input schema and runnable form on this page for details and to test live.

