Skip to content
Back to skills

Polymarket Sports Edge

ASecurity

Find odds divergence between sportsbook consensus and Polymarket sports markets, then trade the gap.

  • 33 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
developmentpythongobashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill polymarket-sports-edge --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Polymarket Sports Edge?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Polymarket Sports Edge
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-polymarket-sports-edge/badge)](https://www.skillsdirectory.com/skills/dvcrn-polymarket-sports-edge)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: polymarket-sports-edge
description: "Find odds divergence between sportsbook consensus and Polymarket sports markets, then trade the gap."
---

# Polymarket Sports Edge

> **This is a template.** The default signal compares sportsbook consensus odds
> against Polymarket prices and trades when divergence exceeds a threshold.
> Remix it — adjust the sports, threshold, sizing, or add your own filters
> (e.g., only trade NBA, require minimum volume, weight by recency).

## What It Does

Scans active Polymarket sports markets and compares prices against the
sportsbook consensus from The Odds API. When a market is mispriced relative
to sharp bookmaker lines, it buys the underpriced side.

**The edge:** Sportsbook lines are set by professional oddsmakers with billions
in handle — they're extremely well-calibrated. Polymarket sports markets are
thinner and less efficient. When they disagree, the books are usually right.

## How It Works

1. Fetch active sports markets from Simmer (`GET /api/sdk/markets?q=<sport>`)
2. Fetch current odds from The Odds API for the same sports
3. Match markets to games by comparing team names and dates
4. Calculate implied probability from the sportsbook consensus (average across all bookmakers)
5. Compare against the Polymarket price — if divergence exceeds the threshold, trade
6. Buy the underpriced side with reasoning logged

## Setup

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `SIMMER_API_KEY` | Yes | Your Simmer API key |
| `THE_ODDS_API_KEY` | Yes | Free key from [the-odds-api.com](https://the-odds-api.com) (500 req/month free) |
| `MIN_DIVERGENCE` | No | Minimum probability gap to trade (default: `0.08` = 8%) |
| `TRADE_AMOUNT` | No | Amount per trade in venue currency (default: `10.0`) |
| `SPORTS` | No | Comma-separated Odds API sport keys (default: NBA, NFL, NHL, MLB, MMA, EPL, MLS) |
| `LIVE` | No | Set to `true` for real trades. Default is dry-run. |

### Get a Free Odds API Key

1. Go to [the-odds-api.com](https://the-odds-api.com)
2. Sign up for the free tier (500 requests/month)
3. Copy your API key
4. Set it: `export THE_ODDS_API_KEY=your_key_here`

## Running

```bash
# Dry run (default) — logs what it would trade
python sports_edge.py

# Live trading
LIVE=true python sports_edge.py
```

## Example Output

```
[Sports Edge] Scanning 3 sports...
[Sports Edge] NBA: Found 6 games with odds
[Sports Edge] Matched: "Will the Celtics win vs Pacers?" → Celtics vs Pacers (2026-03-05)
[Sports Edge] Polymarket YES: 0.58 | Sportsbook consensus: 0.69 | Divergence: +0.11
[Sports Edge] TRADE: Buying YES at 0.58 (edge: 11%) — 10.00 $SIM
[Sports Edge] NHL: Found 4 games with odds
[Sports Edge] No divergence above threshold.
[Sports Edge] Done. 1 trade executed, 0 skipped.
```

Files in this skill

  • SKILL.md2.8 KB
  • clawhub.json236 B
  • sports_edge.py10.8 KB
  • test_odds.py1.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…