Entwickler
API
Jede Zahl auf dieser Seite stammt aus einer Handvoll JSON-Dateien, ausgeliefert über HTTPS mit offenem CORS. Bitte cachen Sie auf Ihrer Seite und fragen Sie nicht öfter ab, als sich die Daten ändern. KI-Assistenten können stattdessen den MCP-Server nutzen.
- ohne Schlüssel und Anmeldung
- Kostenlos
- Anfragen pro IP, API und MCP zusammen
- 50 / 10 s
- keine Verfügbarkeitsgarantie, kein Service-Level
- Nach bestem Bemühen
- Quellen, kombiniertes Signal, Konfidenzwert
- Version 2
Auf dieser Seite
Endpoints
GET /api/v1/signals.json- Alles: kombinierte Werte und Werte je Quelle für jeden Coin × jedes Zeitfenster. Bei jedem Tick geschrieben (tick_seconds). Cache 10 s.
GET /api/v1/combined.json- Nur die kombinierten Werte. Einmal pro Minute geschrieben. Cache 30 s.
GET /api/v1/venues/{venue}.json- Die Werte einer Quelle. Quellen: polymarket, kalshi, limitless, gemini, binance_options, deribit_options, bybit_options, okx_options. Einmal pro Minute geschrieben. Cache 30 s.
GET /api/v1/history/{coin}.json- Die letzten 48 h: kombiniert minütlich und je Quelle im 5-Minuten-Raster. Jeder Coin, den eine Quelle laut meta.json abdeckt (derzeit mindestens BTC, ETH, SOL, XRP, DOGE, HYPE, BNB, ZEC, NEAR); ein Coin mit nur einem Regime-Signal hat keinen. Alle 5 Min. neu erstellt.
GET /api/v1/results.json- Live-Backtest: pro Coin und Strategie, was das Befolgen der Signale auf Coinbase USD im Vergleich zu Kaufen und Halten gebracht hat (Netto- und Bruttorendite, Ausführungen, Trades, Trefferquote, Rückgang, offene Position). Einmal pro Minute geschrieben. Cache 1 Min.
GET /api/v1/results/{coin}.json- Der Backtest eines Coins mit seinen letzten 100 Ausführungen je Strategie und seiner Kapitalkurve (alle 15 Min. über 48 h, stündlich bis 30 Tage, danach täglich). Alle 5 Min. geschrieben. Cache 5 Min.
GET /api/v1/meta.json- Bei den Quellen gefundene Coins, Zeitfenster (5m, 15m, 1h, 4h, 1d), Quellen mit Live-Abdeckung, Schwellenwerte und die Version der Methodik.
GET /api/v1/markets.json- Jeder Markt auf den Börsen von Cryptohopper, der die Tagestrend-Signale erhält: pro Börse Name, Anzahl der Märkte und die Märkte jedes Coins. Etwa täglich aktualisiert. Cache 10 min.
GET /api/v1/deliveries.json- Die jüngsten Tagestrend-Signale des Signalers, neueste zuerst: der Coin, Kauf oder Verkauf und wie viele Märkte jedes angenommen, abgelehnt oder verfallen ließen, und solange eine Entscheidung noch versendet wird, wie viele es noch erreichen muss (queued); totals zählt jedes Signal seit dem Start des Signalers. Nach jedem Versand neu geschrieben. Cache 1 Min.
GET /api/v1/trend-history.json- Das Tagestrend-Signal jedes Coins über die letzten 90 Schlusskurse, ein Buchstabe pro Tag (L Long, F Flat, - kein Schlusskurs) zur Liste der Daten; nach jeder Entscheidung um 00:05 UTC neu geschrieben. Die Seite Trendwechsel zeichnet es.
GET /api/v1/live/index.md- Gesamtsignal und Tagestrend-Signal jedes Coins als Markdown, für KI-Assistenten und Tools ohne JavaScript. Cache 30 s.
GET /api/v1/live/{coin}.md- Ein Coin als Markdown: jedes Fenster, jede Quelle, sein Tagestrend-Signal, die Cryptohopper-Märkte, die seine Signale erhalten, sein zuletzt zugestelltes Signal, sein Backtest und die neuesten Schlagzeilen, die ihn nennen. Ein Ticker in Kleinbuchstaben wird umgeleitet. Cache 30 s.
GET /api/v1/live/trend.md- Die Tagestrend-Wechsel als Markdown: die Coins, die bei jeder Entscheidung um 00:05 UTC zu Long (ein Kaufsignal an Cryptohopper) oder Flat (ein Verkauf) wechselten, und die letzte Entscheidung, auch wenn sie kein Signal änderte. Cache 5 min.
GET /api/v1/live/trend.xml- Dieselben Wechsel als Atom-Feed, ein Eintrag pro Entscheidung. Cache 5 min.
GET /api/v1/live/trend/{coin}.xml- Die Trendwechsel eines Coins als Atom-Feed. Cache 5 min.
GET /api/v1/live/markets.md- Jeder Markt, der die Tagestrend-Signale erhält, als Markdown: die Börsen mit ihren Zahlen, dann pro Börse die Märkte jedes Coins. Cache 1 Std.
GET /api/v1/live/markets/{exchange}.md- Die Märkte einer Börse pro Coin als Markdown, über ihren Cryptohopper-Schlüssel (binance, kraken2, crypto usw., wie in markets.json). Jede Börsenseite verlinkt ihre eigene. Cache 1 Std.
GET /api/v1/live/news.json- Die neuesten Krypto-Schlagzeilen von CoinArticle, mit den verfolgten Coins, die jede nennt. Cache 5 min.
GET /api/v1/openapi.json- OpenAPI-3.1-Beschreibung von allem oben.
POST /api/mcp- Der MCP-Server (Streamable HTTP, nur lesend, ohne Schlüssel) für Claude, ChatGPT, Cursor und andere KI-Assistenten; Einrichtung auf der MCP-Seite.
Beispiel
curl -s https://polysignals.net/api/v1/combined.json | jq '.coins.BTC.overall'
curl -s https://polysignals.net/api/v1/signals.json | jq '.coins.ETH.timeframes["1h"].combined.current.confidence'
curl -s https://polysignals.net/api/v1/venues/kalshi.json | jq '.coins.SOL["15m"].current.prob_up'signals.json, gekürzt auf einen Coin, ein Zeitfenster und eine Quelle:
{
"version": 2,
"generated_at": "2026-09-30T20:26:05Z",
"tick_seconds": 30,
"venues": ["polymarket", "kalshi", "limitless", "gemini", "binance_options", "deribit_options", "bybit_options", "okx_options"],
"coins": {
"BTC": {
"spot_usd": 83616.4,
"overall": { "score": 9, "direction": "neutral", "confidence": 71 },
"timeframes": {
"1h": {
"combined": {
"current": {
"prob_up": 0.511,
"score": 2,
"direction": "neutral",
"late_window": false,
"window_start": "2026-09-30T20:00:00Z",
"window_end": "2026-09-30T21:00:00Z",
"sources": ["polymarket", "kalshi", "limitless"],
"merged_options": [],
"divergence": 0.02,
"raw_divergence": 0.05,
"confidence": { "score": 88, "label": "high", "depth": 0.974, "agreement": 0.9, "timing": 1, "sources": 3, "independent_sources": 3, "qualifying_sources": 2, "divergence": 0.02 }
},
"next": null
},
"venues": {
"kalshi": {
"current": {
"venue": "kalshi", "coin": "BTC", "timeframe": "1h",
"window_start": "2026-09-30T20:00:00Z", "window_end": "2026-09-30T21:00:00Z",
"prob_up": 0.51, "score": 2, "direction": "neutral",
"spread": 0.01, "volume_usd": 333616, "liquidity_usd": null, "depth_usd": 12574,
"derived": true, "stale": false, "late_window": false,
"market_url": "https://kalshi.com/markets/kxbtcd/KXBTCD-26SEP3017",
"confidence": { "score": 72, "label": "high", "quality": 0.72, "timing": 1 }
},
"next": null
}
}
}
}
}
}
}Grenzen
Bis zu 50 Anfragen pro 10 Sekunden und IP über ganz /api/ (das JSON, das Live-Markdown und der MCP-Server zusammen); darüber antwortet die API 10 Sekunden lang mit 429. Die JSON-Dateien werden am Edge so lange gecacht, wie ihr Cache-Control angibt, und Query-Strings werden ignoriert; häufigeres Abfragen als die Cache-Zeiten oben liefert also dieselbe Datei. Lesen Sie den Verlauf eines Coins alle 5 Minuten, nicht bei jedem Tick.
Felder des kombinierten Werts
prob_up- Nach Qualität gewichteter Mittelwert der Up-Wahrscheinlichkeiten der Quellen (0 bis 1). null, wenn keine Quelle die Bedingungen erfüllt.
score- (prob_up - 0,5) × 200, gerundet. -100 bis +100. Vor allem eine Ablesung der Bewegung seit dem Öffnen des Fensters, keine Prognose (siehe Methodik).
direction- strong_up · up · neutral · down · strong_down.
late_window- true, wenn weniger als 20 % des Fensters übrig sind.
window_start / window_end- ISO-8601 UTC.
reference_price / reference_source / move_since_open / time_left- Der Preis des Fensters bei Eröffnung und seine Herkunft (venue, collector_spot oder candle), der Preis jetzt ÷ dieser - 1 und der verbleibende Anteil des Fensters. Die Referenz ist null für das nächste Fenster und für eines, das öffnete, bevor eine Referenz gespeichert war.
sources- Ids der Quellen, die in diesen Wert eingeflossen sind (Qualität > 0, oder jede bepreiste Quelle im gleich gewichteten Ausweichfall); ein zusammengeführter Optionswert nennt jede enthaltene Optionsquelle.
merged_options- Optionsquellen, die vor dem Mischen zu einem Wert zusammengeführt wurden: ihr Median von prob_up, gezählt als eine Quelle. Eine Optionsquelle mehr als 0,30 vom Median der anderen entfernt wird ausgelassen und als outlier markiert. Leer, wenn nichts zusammengeführt wurde.
divergence- max - min von prob_up unter den Quellen, die die Bedingungen erfüllen (Qualität ≥ 0,2); null bei weniger als zwei.
raw_divergence- max - min von prob_up über alle bepreisten Quellen, unabhängig von der Qualität; null, wenn weniger als zwei bepreist sind.
confidence- { score, label, depth, agreement, timing, sources, independent_sources, qualifying_sources, divergence }; score = round(100 × depth × agreement × timing). depth läuft über die unabhängigen Quellen (die Optionsquellen zu einer zusammengeführt). agreement = clamp(1 - divergence / 0,20, 0, 1) bei zwei oder mehr Quellen, die die Bedingungen erfüllen, sonst 0,7.
Felder eines Quellenwerts
prob_up / score / direction- Wie oben, nur für diese Quelle.
spread- Bester Ask - bester Bid des Up-Anteils. null für AMM-Quellen.
volume_usd- Das Volumen, wie die Seite der Quelle es meldet, bei jedem Tick aktualisiert (Kalshi zählt Kontrakte, die je 1 $ auszahlen).
depth_usd- Größe der wartenden Orders innerhalb von 0,05 um die Mitte, beide Seiten, in USD, aus Daten, die die Quelle ohnehin liefert: volles Orderbuch bei Polymarket, beste Stufe bei Kalshi; null für Limitless, Gemini und die Optionsquellen.
liquidity_usd- Pool-Liquidität bei AMM-Quellen, sonst null.
derived- true, wenn aus einer Strike-Leiter interpoliert (Kalshi stündlich, alle Optionswerte).
stale- true, wenn der Kurs nicht aktualisiert werden konnte und der vorige Wert gezeigt wird (Qualität 0).
market_url- Der Markt auf der Seite der Quelle.
bid / ask / options- Bester Bid und Ask des Up-Anteils, wo die Quelle das Fenster direkt notiert (null für Leitern und Optionen). Optionsquellen ergänzen options: { p_at_spot, atm_iv, rr25, forward_usd, basis, method }, jeweils null, wo die Quelle keinen Wert liefert; method sagt, ob prob_up und p_at_spot aus der impliziten Volatilität (iv) oder aus den Preisdifferenzen der Calls (curve) stammen.
flags- Nur vorhanden bei einem Wert, der veröffentlicht, aber nie eingemischt wird: outlier (eine Optionsquelle mehr als 0,30 vom Median der anderen Optionsquellen im selben Fenster entfernt) oder degenerate_curve (die impliziten Wahrscheinlichkeiten der Optionsleiter umfassen weniger als 0,50, daher ist prob_up null).
confidence- { score, label, quality, timing }; score = round(100 × quality × timing).
Pro Coin
overall ist der nach Konfidenz gewichtete Mittelwert der aktuellen kombinierten Scores der Zeitfenster 1h, 4h und 1d, mit eigener confidence; venue_overall.{venue} ist dasselbe, berechnet aus den Werten einer Quelle (auch als overall in venues/{venue}.json geliefert); spot_usd ist ein Spotpreis von Coinbase, nur zur Anzeige.
regime (nur in signals.json) ist das Signal der täglichen Regime-Strategie, einmal täglich um 00:05 UTC auf dem Coinbase-Schlusskurs des gerade beendeten Tages entschieden, ohne Daten der Quellen: { as_of, call, close, sma50, sigma20, upper, lower, distance_sigmas, days_in_state, next_decision_at, intraday }. call wird Long, sobald der Schlusskurs über upper = sma50 × (1 + sigma20) liegt, und Flat, sobald er unter lower = sma50 × (1 - sigma20) liegt. null für einen Coin mit weniger als 200 Tagesschlusskursen oder ohne den Schlusskurs des Tages. intraday: { call, as_of } ist die simulierte Vier-Stunden-Variante (Strategie regime_4h, nicht weitergeleitet): der Live-Preis von Coinbase Exchange gegen dasselbe Band an jeder 4-Stunden-Grenze in UTC, ausgehend vom Tagessignal; null vor der ersten Prüfung. Die Regel steht in der Methodik.
Wenn keine Quelle die Qualitätsschwelle erreicht (meist ein dünnes Fenster ohne gemeldetes Volumen), wird der kombinierte Wert trotzdem aus den verfügbaren Preisen gebildet, gleich gewichtet, mit confidence.score 0, sodass jedes bepreiste Fenster eine Richtung zeigt und die Konfidenz sagt, wie weit man ihr trauen kann.
Verlaufsdatei
{ coin, generated_at, resolution: { combined: "1m", venues: "5m" }, range_hours: 48, timeframes: { "1h": { combined: [{ t, prob_up, score, confidence }], venues: { kalshi: [ … ] } } } }. Minuten ohne verwertbaren Wert fehlen einfach.
Felder der Ergebnisse
results.json enthält pro Coin und Strategie (5m, 15m, 1h, 4h, 1d, overall, regime, regime_4h), was das Befolgen der Signale am Coinbase-USD-Markt des Coins gebracht hat, nur Long. Ein in einer Minute gelesenes Signal wird 1 Minute später zum besten Ask (Kauf) oder Bid (Verkauf) von Coinbase Exchange ausgeführt; das Kapital wird zum letzten Handelspreis bewertet. Durchgehend Anteile. Dies ist Ergebnisversion 2: Sie hat die Simulation von vorn begonnen, und die früheren Zahlen wurden verworfen. meta.json thresholds.results enthält fee, fillDelayMin und altFee (0.001), die niedrigere Gebühr, zu der die Ergebnisseite dieselben Ausführungen ebenfalls zeigt: (1 + gross_return) × (1 - altFee)^fills - 1.
return- Kapital jetzt ÷ Startkapital - 1, nach 0.006 Gebühr pro Ausführung. buy_hold.return: zum Ask von started_at mit einer Gebühr gekauft und gehalten.
gross_return- Dieselben Ausführungen ohne Gebühren: Kapital ÷ Startkapital - 1 vor Gebühren (der Bid/Ask-Spread ist trotzdem bezahlt).
fills- Ausführungen bisher, Käufe plus Verkäufe; jede zahlte die Gebühr.
trades- Abgeschlossene Round Trips (ein Kauf gefolgt von einem Verkauf). win_rate und avg_trade beziehen sich darauf; null ohne einen.
max_drawdown- Größter Rückgang des Kapitals vom Hoch zum Tief.
time_in_market- Anteil der bepreisten Minuten, in denen der Coin gehalten wurde.
fees_paid- Bisher gezahlte Gebühren, in Einheiten des Startkapitals.
position / since / entry_price- Die offene Position: coin seit since zu entry_price, oder usd.
call- Das Signal, das die Strategie gerade hält (buy, sell oder hold).
results_version- Die Regeln der Simulation („2“); ändern sie sich, beginnt die Simulation von vorn.
methodology_version- Die Methodik, nach der die Signale gelesen werden („5“).
Ergebnisdatei pro Coin
results/{coin}.json ist der Block des Coins aus results.json plus trades (je Strategie die letzten 100 Ausführungen, älteste zuerst: { side, t, price, equity, return? }, wobei der Preis beim Kauf der Ask und beim Verkauf der Bid ist) und curve, deren columns t, spot, 5m, 15m, 1h, 4h, 1d, overall, regime, regime_4h, buy_hold, 5m_gross, 15m_gross, 1h_gross, 4h_gross, 1d_gross, overall_gross, regime_gross, regime_4h_gross sind: das Nettokapital je Strategie, Kaufen und Halten, dann das Bruttokapital (ohne Gebühren) jeder Strategie. Zeilen gibt es alle 15 Minuten für die letzten 48 Stunden, stündlich bis 30 Tage, danach täglich.
Keine Finanzberatung. Nicht verbunden mit Polymarket, Kalshi, Limitless, Gemini, Binance, Deribit, Bybit oder OKX. Der Feed kann sich ohne Ankündigung ändern oder eingestellt werden. Die Nutzung unterliegt den Bedingungen.