Polymarket Monitor
Monitor Polymarket prediction markets and alert when odds cross a threshold. Use when a user wants to track any Polymarket market probability, set up recurri...
Description
name: polymarket-monitor description: Monitor Polymarket prediction markets and alert when odds cross a threshold. Use when a user wants to track any Polymarket market probability, set up recurring price checks, or get notified when a market's Yes/No probability exceeds a specific percentage. Covers searching for markets by topic, fetching current odds, and setting up cron-based alerts via Slack or other channels.
Polymarket Monitor
Set up ongoing monitoring for any Polymarket prediction market with threshold-based alerts.
Workflow
1. Find the market(s)
Search the Gamma API for active markets matching the user's topic:
curl "https://gamma-api.polymarket.com/events?search=<topic>&limit=10&active=true"
Parse the response to find relevant markets. For each, note:
conditionId— needed to fetch pricesquestion— market titleoutcomePrices— current Yes/No probabilities (JSON string)
See references/api.md for full API details.
2. Check current odds
Use the bundled script to fetch current prices for one or more markets:
python3 scripts/check_markets.py <conditionId1> [conditionId2 ...]
Output: JSON with question, yes_prob (0–1 float), and url per market.
3. Report current state
Show the user the markets found and their current probabilities before setting up monitoring.
4. Set up the cron alert
Create a cron job that runs every N minutes (default: 30) with sessionTarget: "isolated" and payload.kind: "agentTurn". The agent task should:
- Fetch each market via
web_fetchusing the Gamma API (conditionId endpoint) - Parse
outcomePrices[0]as the Yes probability - If any market exceeds the threshold: send a Slack DM alert via the
messagetool (channel=slack, target=<user_id>) - If none exceed threshold: do nothing (no output)
Use delivery.mode: "none" to suppress default cron delivery — the agent handles its own alerting.
Template cron task message:
Check these Polymarket markets. For each, fetch:
https://clob.polymarket.com/markets/<conditionId>
Parse tokens array: find outcome=="Yes" and use its price as probability (0–1).
If any exceeds <threshold> (e.g. 0.70):
Send Slack DM to <user_slack_id> with: market question, current %, and Polymarket URL.
If none exceed threshold, do nothing.
Markets:
- <question>: https://clob.polymarket.com/markets/<conditionId> | https://polymarket.com/event/<slug>
5. Confirm setup
Tell the user:
- Which markets are being monitored
- Current odds for each
- Alert threshold and check frequency
- How to cancel (cron job ID +
cron remove <id>)
Notes
- Polymarket has no "today" daily markets — use the nearest deadline market for short-term signals
outcomePricesis always["yes", "no"]— first value is Yes- Closed markets return prices of 0 or 1; skip them
- No API key needed
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!