+EV-Möglichkeiten
Finden Sie Wettmöglichkeiten mit positivem Erwartungswert bei allen Sportwettenanbietern.
GET /api/v1/opportunities/evDieser Endpoint ersetzt die früheren Endpoints /positive-ev und /value-bets. Alle Bewertungsfelder (confidence_score, kelly_percent, fair_probability) sind jetzt in jeder Antwort enthalten.
Multi-Book-Ergebnisse: Wenn mehrere Sportwettenanbieter bei derselben Auswahl +EV haben, gibt die API für jeden Anbieter eine separate Möglichkeit zurück. Wenn beispielsweise DraftKings +105, FanDuel +103 und BetMGM +101 auf dieselbe Moneyline anbieten, sehen Sie drei Einträge — jeder mit eigenem sportsbook, odds_american, ev_percentage, kelly_percent und confidence_score. Die Ergebnisse werden standardmäßig nach EV% absteigend sortiert, sodass der Anbieter mit den besten Quoten zuerst erscheint. Verwenden Sie den sportsbook-Filter, um auf bestimmte Anbieter einzugrenzen.
Live-Spielstatus: EV-Zeilen enthalten keine Spielstände, Spielabschnitte oder Spielzeit. Der Live-Spielstatus wird ausschließlich über den Game State-Endpoint und den gamestate-Streamkanal bereitgestellt. Verknüpfen Sie Zeilen mit dem Spielstatus über event_id.
Authentifizierung
Erfordert API-Key. Pro-Tarif oder höher erforderlich. Ihr Konto muss das ev-Feature aktiviert haben.
Query-Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
sport | string | alle | Filtern nach Sportart(en), kommagetrennt (z. B. basketball, football, ice_hockey) |
league | string | alle | Filtern nach Liga(en), kommagetrennt (z. B. nba, nfl, nhl) |
sportsbook | string | tarifabhängig | Filtern nach Sportwettenanbieter(n), kommagetrennt. Tarifgrenzen werden durchgesetzt. |
market | string | alle | Filtern nach Markttyp(en), kommagetrennt. Unterstützt Kategorie-Aliase (main, spread, total, props) oder exakte Typen (point_spread, player_points). |
event | string | alle | Filtern nach Spiel-/Event-ID(s), kommagetrennt |
min_ev | number | 0 | Mindestschwellenwert für EV-Prozentsatz |
max_ev | number | — | Höchstschwellenwert für EV-Prozentsatz |
live | boolean | — | true = nur live, false = nur vor dem Spiel, weglassen = beides |
min_odds | number | — | Minimale American Odds (z. B. -200) |
max_odds | number | — | Maximale American Odds (z. B. +500) |
min_market_width | number | — | Minimale Marktbreite (Vig-Indikator). Geringere Breite = schärferer Markt. |
max_market_width | number | — | Maximale Marktbreite |
max_hold | number | 5.0 | Maximaler Buchmacher-Hold (Vig) in Prozent. Verwirft Möglichkeiten, bei denen der Markt-Hold diesen Schwellenwert überschreitet. |
min_kelly | number | — | Minimaler Kelly-Prozentsatz (z. B. 2 = 2 % Bankroll-Allokation) |
max_kelly | number | — | Maximaler Kelly-Prozentsatz |
min_confidence | number | — | Minimaler Confidence-Score (0–100) |
max_confidence | number | — | Maximaler Confidence-Score (0–100) |
max_odds_age | number | — | Maximales Alter der Quoten in Sekunden. Filtert veraltete Möglichkeiten heraus, bei denen die zugrundeliegenden Quoten älter als dieser Schwellenwert sind. |
is_player_prop | boolean | — | true = nur Player Props, false = nur Spielmärkte auf Spielebene |
is_alternate_line | boolean | — | true = nur alternative Linien, false = nur Hauptlinie |
arb_available | boolean | — | true = nur Möglichkeiten, die zusätzlich einen Arbitrage-Querverweis haben |
player_name | string | — | Filter auf einen bestimmten Spieler (Alias: player). Groß-/Kleinschreibung wird ignoriert, exakte Übereinstimmung mit dem kanonischen Namen (z. B. Aaron Judge). |
stat_category | string | — | Filter auf eine Player-Prop-Statistikkategorie (z. B. points, rebounds, passing_yards) |
selection | string | — | Filter auf einen bestimmten Auswahlnamen (Groß-/Kleinschreibung wird ignoriert, exakte Übereinstimmung) |
devig_book | string | — | Überschreibt das Sharp-Anchor-Buch, das für das Devigging verwendet wird. Standardmäßig Pinnacle. |
date_range | string | — | Filtern nach Event-Datum: today, tomorrow oder week. Daten werden in US Eastern Time (ET) ausgewertet. |
sort | string | -ev | Sortierfeld. Optionen: ev, confidence/confidence_score, kelly/kelly_percent, time/start_time, book_count/books. Mit - als Präfix für absteigende Sortierung. |
limit | integer | 50 | Ergebnisse pro Seite (max. 200) |
offset | integer | 0 | Paginierungs-Offset (max. 5000) |
Filtern mehrerer Werte
Verwenden Sie kommagetrennte Werte für Mehrfachauswahl-Filter:
?sportsbook=draftkings,fanduel&league=nba,nflBeispielanfragen
cURL
# Grundlegende EV-Möglichkeiten für die NBA
curl -X GET "https://api.sharpapi.io/api/v1/opportunities/ev?league=nba&min_ev=2" \
-H "X-API-Key: YOUR_API_KEY"Antwort
Erfolg (200)
{
"success": true,
"data": [
{
"id": "ev_dk_nba_33483153_ml_PHO",
"game_id": "evt_nba_phi_pho_20260208",
"ev_percentage": 4.2,
"odds_american": -105,
"odds_decimal": 1.952,
"no_vig_odds": -118,
"fair_probability": 0.541,
"market_width": 3.2,
"devig_method": "power",
"sharp_book": "pinnacle",
"selection": "PHO Suns",
"market": "moneyline",
"line": null,
"sportsbook": "draftkings",
"game": "PHI 76ers vs PHO Suns",
"sport": "basketball",
"league": "nba",
"home_team": "PHI 76ers",
"away_team": "PHO Suns",
"start_time": "2026-02-08T19:00:00Z",
"is_live": false,
"confidence_score": 87,
"kelly_percent": 2.1,
"book_count": 5,
"arb_available": false,
"arb_profit": null,
"is_player_prop": false,
"player_name": null,
"stat_category": null,
"possibly_stale": false,
"oldest_odds_age_seconds": null,
"warnings": [],
"detected_at": "2026-02-08T14:22:10.456Z"
},
{
"id": "ev_fd_nba_33483153_ml_PHO",
"game_id": "evt_nba_phi_pho_20260208",
"ev_percentage": 2.8,
"odds_american": -108,
"odds_decimal": 1.926,
"no_vig_odds": -118,
"fair_probability": 0.541,
"market_width": 3.2,
"devig_method": "power",
"sharp_book": "pinnacle",
"selection": "PHO Suns",
"market": "moneyline",
"line": null,
"sportsbook": "fanduel",
"game": "PHI 76ers vs PHO Suns",
"sport": "basketball",
"league": "nba",
"home_team": "PHI 76ers",
"away_team": "PHO Suns",
"start_time": "2026-02-08T19:00:00Z",
"is_live": false,
"confidence_score": 82,
"kelly_percent": 1.5,
"book_count": 5,
"arb_available": false,
"arb_profit": null,
"is_player_prop": false,
"player_name": null,
"stat_category": null,
"possibly_stale": false,
"oldest_odds_age_seconds": null,
"warnings": [],
"detected_at": "2026-02-08T14:22:10.456Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"has_more": false,
"next_offset": null
},
"meta": {
"source": "redis",
"last_update": "2026-02-08T14:22:10.456Z",
"summary": {
"count": 24,
"avg_ev": 3.8,
"max_ev": 7.1,
"by_sportsbook": {
"draftkings": 9,
"fanduel": 8,
"betmgm": 7
},
"by_sport": {
"basketball": 12
},
"by_market": {
"moneyline": 5,
"point_spread": 4,
"player_points": 3
}
},
"filters": {
"sport": null,
"league": ["nba"],
"sportsbook": null,
"market": null,
"min_ev": 2.0,
"max_ev": null,
"live": null,
"sort": "-ev",
"include": null
}
}
}Antwort-Header
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 1707401000
X-Data-Delay: 0
X-Request-Id: req_abc123def456Fehlerantworten
401 Unauthorized
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key",
"docs": "https://docs.sharpapi.io/en/authentication"
}
}403 Feature Required
{
"error": {
"code": "feature_required",
"message": "The 'ev' feature is required. Upgrade to Pro or higher.",
"docs": "https://docs.sharpapi.io/en/pricing"
}
}429 Rate Limited
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded",
"docs": "https://docs.sharpapi.io/en/api-reference/overview"
}
}Antwortfelder
Kernfelder
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige Möglichkeits-Kennung (Hash) |
game_id | string|null | Zugehörige Spiel-/Event-Kennung |
external_event_id | string|null | Native Event-ID des Sportwettenanbieters |
selection_id | string|null | Native Outcome-/Selection-ID des Sportwettenanbieters (für Deep Linking zum Wettschein) |
ev_percentage | number | Erwartungswert in Prozent (z. B. 4.2 = 4,2 % EV). Veralteter Alias: ev_percent. |
odds_american | number | Aktuelle American Odds beim Sportwettenanbieter |
odds_decimal | number | Decimal Odds (z. B. 1.952) |
no_vig_odds | number|null | Faire (vig-freie) American Odds, abgeleitet aus der Sharp Line |
fair_probability | number|null | Vig-freie (devigged) faire Wahrscheinlichkeit (0,0 bis 1,0) |
market_width | number|null | Breite des Marktes (Vig-Indikator) |
devig_method | string | Verwendete Devig-Methode (z. B. power) |
sharp_book | string | Als Referenz verwendetes Sharp Book (z. B. pinnacle). Veralteter Alias: devig_book. |
selection | string | Die Auswahl (Teamname, Over/Under, Spieler usw.) |
market | string | Markttyp (moneyline, point_spread, total_points usw.) |
line | number|null | Spread-/Total-Linie (z. B. -3.5, 220.5) |
sportsbook | string | Sportwettenanbieter, der diese Quoten anbietet. Es können mehrere Einträge für dieselbe Auswahl existieren, wenn mehrere Anbieter +EV haben. |
game | string | Menschenlesbarer Spielname |
sport | string | Sport-Kennung (Kleinbuchstaben) |
league | string | Liga-Kennung |
home_team | string|null | Name des Heimteams |
away_team | string|null | Name des Auswärtsteams |
start_time | string|null | ISO 8601 Event-Startzeit |
is_live | boolean | Ob das Event derzeit live ist |
confidence_score | number | Multifaktor-Confidence-Score (0–100) |
kelly_percent | number|null | Optimaler Prozentsatz der Bankroll für Full Kelly (0–100, z. B. 2.1 = 2,1 % der Bankroll). Die meisten Praktiker wenden vor der Einsatzbestimmung einen Fractional-Kelly-Multiplikator (¼ oder ½) an — siehe Kelly-Kriterium unten. |
book_count | number | Anzahl der Sportwettenanbieter, die diesen Markt anbieten |
arb_available | boolean | Ob auf diesem Markt eine Arbitrage existiert |
arb_profit | number|null | Arbitrage-Gewinnprozentsatz, falls verfügbar |
is_player_prop | boolean | Ob es sich um einen Player-Prop-Markt handelt |
player_name | string|null | Spielername (bei Player Props) |
stat_category | string|null | Statistiktyp (bei Player Props, z. B. points, rebounds) |
possibly_stale | boolean | true, wenn sich die zugrundeliegenden Quoten seit der Erkennung möglicherweise verändert haben |
oldest_odds_age_seconds | number|null | Alter der ältesten in der EV-Berechnung verwendeten Quoten (in Sekunden) |
warnings | string[] | Datenqualitätswarnungen (z. B. POTENTIALLY_STALE_ODDS, LIVE_STALE_ODDS) |
detected_at | string | ISO 8601 Zeitstempel der ersten Erkennung des +EV |
Meta-Summary-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
summary.count | number | Gesamtzahl der Möglichkeiten, die den Filtern entsprechen |
summary.avg_ev | number | Durchschnittlicher EV über alle Ergebnisse |
summary.max_ev | number | Höchster gefundener EV |
summary.by_sportsbook | object | Anzahl der Möglichkeiten pro Sportwettenanbieter |
summary.by_sport | object | Anzahl der Möglichkeiten pro Sportart |
summary.by_market | object | Anzahl der Möglichkeiten pro Markttyp |
Den Erwartungswert verstehen
Der Erwartungswert (EV) misst den durchschnittlichen Gewinn oder Verlust pro Wette über die Zeit. Eine Wette mit positivem EV (+EV) bedeutet, dass Sie einen mathematischen Vorteil gegenüber dem Sportwettenanbieter haben.
EV% = (fair_probability x decimal_odds - 1) x 100Wobei:
fair_probability= Vig-freie Wahrscheinlichkeit, abgeleitet vom Sharp Book (Pinnacle)decimal_odds= Die vom Soft Book angebotenen Decimal Odds
Wie SharpAPI EV berechnet
SharpAPI verwendet Pinnacle (ein Sharp Book mit effizienten Quoten) als Quelle der Wahrheit für die faire Wahrscheinlichkeit.
Schritt 1: Holen Sie die Sharp-Book-Quoten
Pinnacle: Team A -115 / Team B +105Schritt 2: Entfernen Sie den Vig, um die faire Wahrscheinlichkeit zu finden (Power-Methode)
// Implied probabilities (with vig)
probA = 1 / 1.87 = 0.535 // -115 in decimal = 1.87
probB = 1 / 2.05 = 0.488 // +105 in decimal = 2.05
total = 1.023 // 2.3% vig
// Power devig: solve for k where probA^k + probB^k = 1
// k ≈ 1.036 for this market
fairProbA = 0.535^1.036 = 0.522 (52.2%)
fairProbB = 0.488^1.036 = 0.478 (47.8%)Schritt 3: Vergleichen Sie mit einem Soft Book
DraftKings: Team A -105 (decimal 1.952)
Fair probability: 52.3%
EV% = (0.523 x 1.952 - 1) x 100
EV% = +2.1%Ein +2,1 % EV bedeutet, dass Sie für jede 100 $ Einsatz auf diese Wette langfristig 2,10 $ Gewinn erwarten.
Warum dies funktioniert
| Buchmachertyp | Eigenschaften |
|---|---|
| Sharp (Pinnacle) | Geringer Vig, effiziente Quoten, genaue Wahrscheinlichkeiten |
| Soft (DraftKings, FanDuel, BetMGM) | Höherer Vig, langsamere Anpassung, ausnutzbar |
Wenn Soft Books ihre Quoten nach einer Marktbewegung langsam aktualisieren, weicht ihre implizite Wahrscheinlichkeit von der Realität ab und schafft eine +EV-Möglichkeit.
EV-Schwellenwerte
| EV % | Qualität | Empfohlene Aktion |
|---|---|---|
| < 0% | Negativer EV | Vermeiden |
| 0 - 2% | Marginal | Nur bei hohem Volumen sinnvoll |
| 2 - 5% | Gut | Standard-Profitabilitätsschwelle |
| 5%+ | Ausgezeichnet | Möglichkeiten mit hoher Confidence |
Wir empfehlen, min_ev=2 für die meisten Anwendungsfälle einzustellen. Marginaler EV (unter 2 %) kann durch Linienbewegung erodieren, bevor Sie die Wette platzieren.
Kelly-Kriterium
Das Feld kelly_percent gibt den optimalen Prozentsatz Ihrer Bankroll (0–100) an, der laut Full-Kelly-Kriterium gesetzt werden sollte. Ein Wert von 2.1 bedeutet, dass Full Kelly 2,1 % der Bankroll empfiehlt; ein Wert von 34.4 bedeutet 34,4 %.
Kelly% = (fair_prob × decimal_odds - 1) / (decimal_odds - 1) × 100Dies ist Full Kelly, berechnet aus der fairen Wahrscheinlichkeit des Modells ohne Anpassung für die Signalqualität. Full Kelly ist mathematisch nur dann optimal, wenn die wahre Wahrscheinlichkeit genau bekannt ist. In der Praxis sind Sharp Anchors mit Unsicherheit behaftet (einzelne Sharp-Referenz, spät eintreffende Live-Quoten, geringe Cross-Validation), und Full Kelly kann gefährlich große Einsatzempfehlungen erzeugen. Konsultieren Sie confidence_score, cross_ref_count und warnings (z. B. SINGLE_SHARP_REF, LIVE_STALE_ODDS), bevor Sie die Einsatzgröße bestimmen.
Verwenden Sie einen Fractional-Kelly-Multiplikator: Die meisten Praktiker wenden ¼ oder ½ Kelly an (kelly_percent × 0.25 oder × 0.5). Begrenzen Sie jede einzelne Wette auf 1–2 % der Bankroll, unabhängig davon, was kelly_percent angibt, insbesondere wenn warnings nicht leer ist oder confidence_score < 80 ist.
Kelly-Sizing-Leitfaden
kelly_percent | Risikograd | Empfehlung |
|---|---|---|
| < 1 | Niedrig | Geringer Edge, Auslassen erwägen |
| 1 – 3 | Moderat | Standard-Einsatzgröße — Quarter Kelly = 0,25–0,75 % der Bankroll |
| 3 – 5 | Aggressiv | Starker Edge — Quarter Kelly = 0,75–1,25 % der Bankroll |
| 5+ | Sehr aggressiv | Ausgezeichneter Edge oder Sharp-Signal-Artefakt; in jedem Fall auf 1–2 % der Bankroll begrenzen |
Varianzwarnung: +EV garantiert keinen Gewinn bei jeder Wette. Über 100 Wetten bei 5 % EV können die tatsächlichen Ergebnisse stark variieren. Der Edge materialisiert sich erst über Hunderte oder Tausende von Wetten. Wetten Sie niemals mehr, als Sie sich leisten können zu verlieren.
Best Practices
- Setzen Sie einen Mindest-EV-Schwellenwert - Verwenden Sie
min_ev=2oder höher, um sich auf bedeutsame Edges zu konzentrieren - Verwenden Sie Kelly-Sizing -
kelly_percentist ein Prozentsatz (z. B.2.1= 2,1 % der Bankroll). Wenden Sie vor der Einsatzbestimmung einen Fractional-Kelly-Multiplikator (¼ oder ½) an - Filtern Sie nach Confidence - Verwenden Sie
confidence_score, um Möglichkeiten mit hoher Confidence zu priorisieren - Überwachen Sie
market_width- Schmale Märkte (geringe Breite) deuten auf effizientere Preisbildung und zuverlässigere EV-Berechnungen hin - Handeln Sie schnell - +EV-Möglichkeiten sind flüchtig; Linien bewegen sich schnell
- Verfolgen Sie Ihre Ergebnisse - Protokollieren Sie jede Wette und vergleichen Sie den tatsächlichen ROI mit dem erwarteten EV über die Zeit
- Verwenden Sie Fractional Kelly - Die meisten Profis verwenden Quarter oder Half Kelly, um die Varianz zu reduzieren
Verwandte Endpoints
- Arbitrage-Möglichkeiten - Garantierter Gewinn über mehrere Anbieter
- Low-Hold-Möglichkeiten - Engste Linien über mehrere Anbieter
- Middles - Möglichkeiten durch Linienunterschiede
- Beste Quoten - Finden Sie den besten Preis bei allen Anbietern
- EV-Berechnungs-Konzepte - Tiefer Einblick in die Mathematik