algo-filter-cookbook

Filter Cookbook

Use these recipes as starting points for Console filters, Search API payloads, or algo-dsl search builders.

High-Volume Open Polymarket Markets

mbd.search()
  .index("polymarket-items")
  .include().numeric("volume_24hr", 1000)
  .include().term("closed", false)
  .sortBy("volume_24hr", "desc")
  .size(50);

Exclude Missing Fields

mbd.search()
  .index("polymarket-items")
  .include().notNull("liquidity_num")
  .exclude().isNull("question");

Match Account In-App Users

Use this when you have pushed your own users or wallets through Data Sources and want to filter to that account-owned set.

mbd.search()
  .index("polymarket-wallets")
  .include().inAppUsers("wallet_address");

Match Console Account Data

Use console_account when the match value lives in account-scoped console data.

{
  "filter": "console_account",
  "field": "wallet_address",
  "path": "in_app_users",
  "value": "0xabc..."
}

Boost Preferred Labels

mbd.search()
  .index("polymarket-items")
  .include().date("item_creation_timestamp", "now-7d", "now")
  .boost().terms("ai_labels_med", ["crypto", "markets"], 2.0);

Semantic Candidate Expansion

await mbd.search()
  .index("polymarket-items")
  .semantic("liquid election markets with active trader discussion")
  .size(30)
  .execute();

Leaderboard Wallets

await mbd.search()
  .index("polymarket-wallets")
  .include().numeric("num_trades_30d", 5)
  .asLeaderboard()
  .traderScore((wallet) => {
    const pnl = wallet.realized_pnl_usd || wallet.pnl || 0;
    const trades = wallet.num_trades_30d || 1;
    return pnl / Math.sqrt(trades);
  })
  .execute();

Discover Filter Values

const tags = await mbd.search()
  .index("polymarket-items")
  .frequentValues("tags", 25);

Data-Source User Interactions

For user-to-user events, use user_id_from and user_id_to.

{
  "user_id_from": "user.123",
  "user_id_to": "user.456",
  "event_type": "follow",
  "timestamp": 1762300000
}