Skip to Content
API-ReferenzClosing Line Value (CLV)

Closing Line Value (CLV)

Aggregierte Closing-Line-Value-Statistiken für die bewerteten +EV-Vorhersagen von SharpAPI. Für jede +EV-Gelegenheit, die die Engine markiert, erfasst das System später die Schlusslinie der Sharp-Referenz und bewertet den Pick dagegen — dieser Endpoint liefert diese Bewertungen, aggregiert entlang der von Ihnen gewählten Dimension (group_by), zusammen mit realisierten Gewinn-/Verlust-Ergebnissen, sofern das Spielergebnis bekannt ist.

GET /api/v1/historical/clv

Enterprise-Tier erforderlich. Die /api/v1/historical/*-Aggregat-Endpoints sind durch das history-Feature gesperrt. Niedrigere Tiers erhalten 403 tier_restricted. Wenn Sie Pro oder Sharp nutzen und Schlusslinien-Daten benötigen, verwenden Sie Schlussquoten — rohe Schlusspreise pro Event, verfügbar in Ihrem Tier.

Wie der CLV berechnet wirdPermalink for this section

Wenn ein Event vom Pre-Match- in den Live-Status übergeht, erfasst die Plattform den letzten Pre-Match-Preis jedes Buchmachers als Schlusslinie für dieses Event. Der Schlusspreis der Sharp-Referenz (devig_book — typischerweise Pinnacle) wird mit der Power-Methode zu einer No-Vig-Schlusswahrscheinlichkeit devigged, und jede bewertete Vorhersage wird wie folgt bewertet:

CLV% = (closing_no_vig_prob × entry_decimal_odds − 1) × 100

Dabei ist entry_decimal_odds der Preis zu dem Zeitpunkt, an dem SharpAPI die Gelegenheit markiert hat. Ein positiver CLV bedeutet, dass der markierte Preis die Schlusslinie geschlagen hat — Sie hätten zu besseren Quoten wetten können, als der finale faire Marktwert implizierte.

Die Daten stammen aus dem historischen ClickHouse-Speicher. Aggregate werden über logische Vorhersagen berechnet — wiederholte Preis-Snapshots desselben Picks (gleiches Event, gleicher Markt, gleiche Auswahl, gleicher Buchmacher, gleiche Linie) werden vor dem Zählen zu einer Zeile zusammengefasst, sodass ein Pick, der zu mehreren Preisen erneut beobachtet wurde, nicht mehrfach gezählt wird.

Query-ParameterPermalink for this section

ParameterTypStandardBeschreibung
fromstringvor 7 TagenStartdatum (YYYY-MM-DD oder ISO 8601). Wird auf das Verlaufsfenster Ihres Tiers begrenzt.
tostringheuteEnddatum (YYYY-MM-DD oder ISO 8601).
group_bystringsportsbookAggregationsdimension. Eine von: sportsbook, sport, league, market, day, devig_book.
sportstringalleFilter nach Sportart(en), kommagetrennt (z. B. basketball,baseball).
leaguestringalleFilter nach Liga(en), kommagetrennt (z. B. nba,mlb).
sportsbookstringalleFilter nach Sportsbook(s), kommagetrennt.
devig_bookstringalleFilter nach der Sharp-Referenz, gegen die der Pick bepreist wurde (z. B. pinnacle).

Verlaufsfenster nach TierPermalink for this section

Datumsbereiche werden auf das Rückblickfenster Ihres Tiers begrenzt (ersichtlich in meta.tier_window_days):

TierFenster
Free7 Tage
Hobby30 Tage
Pro90 Tage
Sharp365 Tage
EnterpriseUnbegrenzt

Filtern Sie nach devig_book=pinnacle für das aussagekräftige Signal. Die Validität des CLV wird von der Sharp-Referenz dominiert, gegen die der Pick bepreist wurde. Pinnacle-referenzierter CLV ist die prädiktive Serie; Picks, die gegen Fallback-Referenzen (z. B. bookmaker) bepreist wurden, weisen strukturell negativen CLV auf und sollten nicht als Edge gelesen werden. Gruppieren Sie nach devig_book, um die Aufteilung zu sehen.

BeispielanfragenPermalink for this section

# CLV nach Sportsbook für die letzten 7 Tage curl -X GET "https://api.sharpapi.io/api/v1/historical/clv?group_by=sportsbook" \ -H "X-API-Key: YOUR_API_KEY" # Nur Pinnacle-referenzierter CLV, gruppiert nach Sportart curl -X GET "https://api.sharpapi.io/api/v1/historical/clv?devig_book=pinnacle&group_by=sport" \ -H "X-API-Key: YOUR_API_KEY" # Tagesweiser CLV für DraftKings-Picks über einen Datumsbereich curl -X GET "https://api.sharpapi.io/api/v1/historical/clv?sportsbook=draftkings&group_by=day&from=2026-06-01&to=2026-06-08" \ -H "X-API-Key: YOUR_API_KEY"

AntwortPermalink for this section

Erfolg (200)Permalink for this section

{ "success": true, "data": { "date_range": { "from": "2026-06-03T14:12:30.437", "to": "2026-06-10T14:12:30.437" }, "group_by": "sportsbook", "groups": [ { "group_key": "novig", "total_graded": 1294, "wins": 262, "losses": 200, "win_rate": 0.5670995670995671, "avg_clv_percent": 0.673342797764432, "avg_ev_percent": 1.613983921390446, "total_predictions": 1555 }, { "group_key": "prophetx", "total_graded": 964, "wins": 191, "losses": 214, "win_rate": 0.47160493827160493, "avg_clv_percent": 0.07641414602522267, "avg_ev_percent": 1.4343012769214647, "total_predictions": 1331 } ] }, "meta": { "filters": { "devig_book": null, "group_by": "sportsbook", "league": null, "sport": null, "sportsbook": null }, "source": "clickhouse", "tier_window_days": "unlimited", "updated_at": "2026-06-10T14:12:58.75061216Z" } }

Ein leeres groups-Array ist eine gültige Antwort, wenn für die angefragten Filter und den Datumsbereich keine bewerteten Vorhersagen existieren — kein Fehler.

Drei verschiedene Zählungen — vermischen Sie die Nenner nicht. total_predictions zählt jeden verfolgten Pick (einschließlich nie bewerteter). total_graded zählt Picks mit einer CLV-Bewertung (eine Schlusslinie wurde erfasst und verglichen). wins + losses zählt die typischerweise kleinere Teilmenge, deren Spielergebnis ebenfalls abgerechnet ist — und win_rate wird nur über diese Teilmenge berechnet. Eine Gruppe kann legitim total_graded: 1294 neben wins + losses: 462 aufweisen. win_rate ist null, wenn eine Gruppe keine abgerechneten Wetten hat.

FehlerantwortenPermalink for this section

403 Tier Restricted

{ "error": { "code": "tier_restricted", "message": "This endpoint requires Enterprise tier or higher", "docs": "https://sharpapi.io/pricing", "tier": "pro", "required_tier": "enterprise" } }

400 Validation Error

{ "error": { "code": "validation_error", "message": "Invalid group_by. Must be one of: day, devig_book, league, market, sport, sportsbook" } }

AntwortfelderPermalink for this section

data-ObjektPermalink for this section

FeldTypBeschreibung
date_rangeobjectTatsächlich verwendete from/to-Werte nach Tier-Begrenzung
group_bystringDie für die Aggregation verwendete Dimension
groupsarrayArray von Gruppenzeilen

Felder der GruppenzeilePermalink for this section

FeldTypBeschreibung
group_keystringDer Gruppenbezeichner (Sportsbook-Name, Sportart, Liga, Markttyp, YYYY-MM-DD-Datum oder Devig-Book)
total_gradedintegerLogische Vorhersagen mit einer CLV-Bewertung (Schlusslinie erfasst und verglichen)
winsintegerBewertete Vorhersagen, deren Spielergebnis als Gewinn abgerechnet wurde
lossesintegerBewertete Vorhersagen, deren Spielergebnis als Verlust abgerechnet wurde
win_ratenumber | nullwins / (wins + losses). Wird nur über die abgerechnete Teilmenge berechnet; null, wenn keine abgerechneten Wetten in der Gruppe existieren
avg_clv_percentnumber | nullDurchschnittlicher CLV% über die bewerteten Vorhersagen. Positiv = markierte Preise haben die Schlusslinie im Durchschnitt geschlagen. null, wenn nicht berechenbar
avg_ev_percentnumber | nullDurchschnittlicher erwarteter Wert in % zum Erkennungszeitpunkt für die Vorhersagen der Gruppe. null, wenn nicht berechenbar
total_predictionsintegerAlle verfolgten Vorhersagen in der Gruppe, einschließlich (noch) nicht bewerteter

meta-ObjektPermalink for this section

FeldTypBeschreibung
filtersobjectEcho der angewendeten Filter (sport, league, sportsbook, devig_book, group_by); null für nicht verwendete Filter
sourcestring"clickhouse" — der historische Analytics-Speicher
tier_window_daysinteger | stringMaximaler Rückblick für Ihr Tier (z. B. 90) oder "unlimited"
updated_atstringISO 8601 Antwort-Zeitstempel

Interpretation des CLVPermalink for this section

CLV%Interpretation
> +2%Markierte Preise haben die Schlusslinie durchgängig deutlich geschlagen — hoher erfasster Wert
+0,5% bis +2%Preise haben die Schlusslinie leicht geschlagen — typisch für Soft Books gegenüber einer Sharp-Referenz
-0,5% bis +0,5%Marktnah — effiziente Preisbildung oder gemischte Ergebnisse
< -0,5%Preise haben sich zum Schluss hin verengt — spätes Steam oder Sharp-Side-Action

CLV ist nicht ROI — lesen Sie ihn mit den richtigen Vorbehalten.

  • Die Markteffizienz variiert. In den schärfsten, liquidesten Märkten (zum Beispiel NBA-Spreads und -Totals sowie Player Props der großen Ligen) führt das Schlagen der Schlusslinie nicht zuverlässig zu realisiertem Gewinn — Closing-Line-Beats spiegeln dort oft Rauschen in einem effizienten Markt wider statt Edge. In weicheren Märkten bleibt positiver CLV der beste Frühindikator für langfristige Profitabilität.
  • Nutzen Sie win_rate zusammen mit avg_clv_percent. Der Endpoint liefert realisierte Ergebnisse genau aus diesem Grund: Eine Gruppe mit positivem CLV, aber einer abgerechneten Bilanz unterhalb des Break-even über eine große Stichprobe sagt Ihnen, dass der CLV dort nicht konvertiert.
  • Achten Sie auf die Stichprobengröße. Gruppen mit kleinem total_graded oder wenigen abgerechneten Wetten (wins + losses) sind Rauschen — vergleichen Sie Gruppen nur bei aussagekräftigem Volumen.
  • Die Sharp-Referenz ist entscheidend. Nur Sharp-referenzierter CLV (Filter devig_book=pinnacle) trägt diese Bedeutung; Fallback-referenzierte Zeilen nicht.

Verwandte EndpointsPermalink for this section

Last updated on