Polymarket feed filters
Developer reference for filtering Polymarket markets in feed configurations.
Filter Structure
All filters are nested under filters in your feed config:
{
"filters": {
"candidate_source": "polymarket-items",
"candidate_source_type": "posts"
// ... filter options below
}
}1. Date Filters (polymarket_filters)
polymarket_filters)Filter markets by date ranges using relative time syntax or Unix timestamps. Date filters help you target markets based on when they were created, when they resolve, or when the underlying events occur.
Market Start Date (polymarket_start_date)
polymarket_start_date)Filter by when the market was created. This lets you focus on recently launched markets or markets from a specific time period.
Fields:
start_timestamp_from- Earliest start datestart_timestamp_to- Latest start date
Time syntax (all options available for both fields):
"days_ago:N"- N days ago"hours_ago:N"- N hours ago"days_from_now:N"- N days from now"hours_from_now:N"- N hours from now- Unix timestamp string:
"1577836800"
Example:
"polymarket_start_date": {
"start_timestamp_from": "days_ago:30",
"start_timestamp_to": "days_ago:1"
}Market End Date (polymarket_end_date)
polymarket_end_date)Filter by when the market closes/resolves. Use this to find markets that resolve soon (for active trading) or far in the future (for long-term positions).
Fields:
end_timestamp_from- Earliest end dateend_timestamp_to- Latest end date
Time syntax (all options available for both fields):
"days_ago:N"- N days ago"hours_ago:N"- N hours ago"days_from_now:N"- N days from now"hours_from_now:N"- N hours from now- Unix timestamp string:
"1735689600"
Example:
"polymarket_end_date": {
"end_timestamp_from": "days_from_now:1",
"end_timestamp_to": "days_from_now:90"
}Game/Event Start Time (polymarket_game_start_time)
polymarket_game_start_time)Filter by when the underlying event/game starts. This is useful for sports markets or event-based markets where you want to target markets around specific event times.
Fields:
game_start_timestamp_from- Earliest game start timegame_start_timestamp_to- Latest game start time
Time syntax (all options available for both fields):
"days_ago:N"- N days ago"hours_ago:N"- N hours ago"days_from_now:N"- N days from now"hours_from_now:N"- N hours from now- Unix timestamp string:
"1577836800"
Example:
"polymarket_game_start_time": {
"game_start_timestamp_from": "days_from_now:1",
"game_start_timestamp_to": "days_from_now:7"
}2. Ordering (order_by)
order_by)Sort markets before scoring. Ordering determines the initial sequence of markets before any scoring algorithm is applied, allowing you to prioritize by volume, price movement, or time. Available options:
Time-based:
chronological- Newest markets first
Price changes:
price_change_1hr- 1-hour price changeprice_change_24hr- 24-hour price changeprice_change_1wk- 1-week price changeprice_change_1mo- 1-month price change
Volume:
volume- Total volumevolume_24hr- 24-hour volumevolume_1wk- 1-week volumevolume_1mo- 1-month volumevolume_1yr- 1-year volume
Market metrics:
spread- Market spreadspan_days- Number of days the market lasts (duration)liquidity- Market liquidity
Example:
"order_by": "price_change_24hr"3. AI Labels (ai_labels, remove_ai_labels)
ai_labels, remove_ai_labels)Filter by content classification labels. AI labels automatically categorize markets by topic, sentiment, and content quality, helping you surface relevant markets without manual keyword matching.
Static labels:
- Topics:
arts_culture,business_entrepreneurs,science_technology,sports, etc. - Sentiment:
positive,neutral,negative - Moderation:
spam,sexual,hate,violence, etc.
Dynamic labels:
"user/user_id/mbd_ai_labels_topics"- Automatically uses user's trading history to determine relevant labels
Examples:
"ai_labels": [
"science_technology",
"user/user_id/mbd_ai_labels_topics"
]
"remove_ai_labels": [
"business_entrepreneurs",
"spam"
]4. Keywords (include_keywords, exclude_keywords)
include_keywords, exclude_keywords)Filter by text content in market question or description. Keywords provide precise text-based filtering when you need to target specific terms or topics mentioned in market titles and descriptions.
Examples:
"include_keywords": ["bitcoin", "election"]
"exclude_keywords": ["spam", "test"]5. Market Status Flags (market_info)
market_info)Filter by market status using boolean flags. Status flags let you include or exclude markets based on their administrative state (featured, restricted, closed) to control what types of markets appear in your feed.
Include/Exclude flags:
market_featured- Include only featured (true) or exclude (false)market_restricted- Include only restricted (true) or exclude (false)market_closed- Include only closed (true) or exclude (false)exclude_featured- Exclude featured marketsexclude_restricted- Exclude restricted marketsexclude_closed- Exclude closed markets
Example:
"market_info": {
"exclude_closed": true,
"exclude_restricted": false,
"market_featured": null
}6. Numeric Range Filters
Include Ranges (include_market_info)
include_market_info)Include markets within specified numeric ranges. These filters let you target markets with specific trading characteristics, such as minimum liquidity for active trading or price movements within certain thresholds.
Volume filters:
market_min_volume/market_max_volume- Total volume (USD)market_min_volume_24hr/market_max_volume_24hr- 24-hour volume (USD)market_min_volume_1wk/market_max_volume_1wk- 1-week volume (USD)market_min_volume_1mo/market_max_volume_1mo- 1-month volume (USD)
Liquidity filters:
market_min_liquidity/market_max_liquidity- Liquidity (USD)
Price change filters (decimal, -1 to 1):
market_min_price_change_1hr/market_max_price_change_1hr- 1-hour change (e.g., 0.05 = 5%)market_min_price_change_24hr/market_max_price_change_24hr- 24-hour changemarket_min_price_change_7d/market_max_price_change_7d- 7-day changemarket_min_price_change_30d/market_max_price_change_30d- 30-day change
Example:
"include_market_info": {
"market_min_liquidity": 100,
"market_max_liquidity": 1000000,
"market_min_price_change_24hr": -0.5,
"market_max_price_change_24hr": 0.5
}Exclude Ranges (remove_market_info)
remove_market_info)Exclude markets matching numeric criteria. Use this to filter out markets that don't meet your quality thresholds, such as markets with too little volume or extreme price volatility.
Volume filters:
min_volume/max_volume- Total volume (USD)min_volume_24hr/max_volume_24hr- 24-hour volume (USD)min_volume_1wk/max_volume_1wk- 1-week volume (USD)min_volume_1mo/max_volume_1mo- 1-month volume (USD)
Liquidity filters:
min_liquidity/max_liquidity- Liquidity (USD)
Price change filters (decimal, -1 to 1):
min_price_change_1hr/max_price_change_1hr- 1-hour changemin_price_change_24hr/max_price_change_24hr- 24-hour changemin_price_change_7d/max_price_change_7d- 7-day changemin_price_change_30d/max_price_change_30d- 30-day change
Example:
"remove_market_info": {
"min_volume": 0,
"max_volume": 1000000000,
"min_liquidity": 0
}Complete Example
{
"filters": {
"candidate_source": "polymarket-items",
"candidate_source_type": "posts",
"ai_labels": ["user/user_id/mbd_ai_labels_topics", "science_technology"],
"include_keywords": ["crypto"],
"exclude_keywords": ["spam"],
"remove_ai_labels": ["business_entrepreneurs"],
"order_by": "liquidity",
"market_info": {
"exclude_closed": true
},
"include_market_info": {
"market_min_liquidity": 100
},
"polymarket_filters": {
"polymarket_start_date": {
"start_timestamp_from": "days_ago:30",
"start_timestamp_to": "days_ago:1"
},
"polymarket_end_date": {
"end_timestamp_from": "days_from_now:1",
"end_timestamp_to": "days_from_now:90"
}
},
"remove_market_info": {
"min_volume": 100000000,
"max_volume": 1000000000
}
}
}Updated 4 days ago
