Zum Inhalt springen
getcoinsight

Entwickler-API

REST-API für Märkte, technische Analyse und News — dieselben Daten wie auf dieser Website. OpenAPI-Spezifikation (JSON)

Authentifizierung

Jede Anfrage benötigt einen API-Schlüssel im Authorization-Header.

curl -H "Authorization: Bearer gcs_YOUR_KEY" \
  "https://getcoinsight.com/api/v1/markets?limit=10"

Schlüssel erstellst und verwaltest du in deinem Profil

Tägliche Kontingente

Free100 Anfragen/Tag
Radar1.000 Anfragen/Tag
Pro10.000 Anfragen/Tag
Trader+100.000 Anfragen/Tag

Jeder Tarif enthält API-Zugang, auch Free. /analysis liefert in jedem Tarif Echtzeit-Kerzen; /fundamental erfordert einen Tarif mit Fundamentalanalyse (Pro und höher). Alle Schlüssel eines Kontos teilen sich ein Tageskontingent, mit einem Burst-Limit von 60 Anfragen pro Minute.

Antworten enthalten X-RateLimit-Limit- und X-RateLimit-Remaining-Header. Über dem Kontingent → HTTP 429.

Endpunkte

  • GET /api/v1/markets?limit=100

    Top-Coins nach Marktkapitalisierung: Preis, Marktkapitalisierung, Volumen, Änderung 1h/24h/7d.

  • GET /api/v1/candles?symbol=btc&id=bitcoin&interval=1h&limit=300

    OHLCV-Kerzen (älteste zuerst, Balkenzeit in Unix-Sekunden) — genau die Reihe, auf der /analysis rechnet, bis zum Historienfenster deines Plans.

  • GET /api/v1/analysis?symbol=btc&id=bitcoin&interval=1h

    Technischer Snapshot: Preis, Trend, RSI/ADX/ATR, TA-Konsens, Regime, Composite-Score. Intervalle: 1m–1M.

  • GET /api/v1/fundamental?assetId=bitcoin

    Fundamental-Score: Perzentil in der Vergleichsgruppe über 5 Kategorien + 90-Tage-Verlauf; ohne assetId — Liste der letzten Scores. Erfordert einen Tarif mit Fundamentalanalyse.

  • GET /api/v1/announcements?kind=listings&days=7

    Listing-/Delisting-/Warn-Ankündigungen der Börsen (Binance, Bybit, OKX, Upbit, Bithumb) mit dem Preis zur Veröffentlichung, 3 Minuten danach und beim Erfassen durch unser Radar sowie den Bewegungen nach 1 h / 24 h / 7 T. Free-Schlüssel sehen eine Zeile 10 Minuten nach dem Erfassen und die letzten 30 Tage; Radar+ ohne Verzögerung und das ganze Archiv seit 2021.

  • GET /api/v1/news?limit=30

    Aggregierte Krypto-Schlagzeilen (CoinDesk, Cointelegraph, Decrypt, The Block, Bitcoin Magazine).

  • GET /api/v1/presets

    Screener-Presets: ID, Name, die angewandten Filter, die Handelsrichtung und welche Filter dein Plan verwirft.

  • GET /api/v1/funding?limit=100&sort=fundingAbs

    Perp-Funding (8h-Äquivalent, Binance/Bybit) mit Vergleich zu Bybit/OKX/Hyperliquid, Basis, Open Interest und dessen 1h/4h/24h-Änderung. Sortierung: rank, funding, fundingAbs, oiUsd, oiChangePct.

  • GET /api/v1/screener?preset=oversold_reversal&interval=4h

    Führt einen Screen aus: ein Preset und/oder Filter auf 15m–1w über das Universum deines Tarifs. Liefert die aktuellen Treffer mit Score, Setup-Leveln und TradingView-Ticker.

Alle Endpunkte liefern JSON: { "data": … } bei Erfolg, sonst { "error": "code" }. CORS ist offen.

Jede authentifizierte Antwort enthält zusätzlich X-RateLimit-Reset (Unix-Sekunden des nächsten Resets, 00:00 UTC). 429- und 502-Antworten enthalten Retry-After in Sekunden — so lange warten; einen 4xx nie unverändert wiederholen. Ein unbekanntes Symbol ergibt 404 unknown_symbol. Innerhalb von v1 kommen Felder nur hinzu, sie werden nie entfernt oder umtypisiert.

Der Screener kann auch 503 busy (alle Scan-Slots belegt) oder 502 upstream_degraded (die meisten Coins waren nicht lesbar) liefern — beide mit Retry-After und ohne Kontingentverbrauch. Jede andere Methode als GET erhält ein JSON-405.

Für einen Bot ist der Ankündigungs-Webhook unten der bessere Feed: Er wird zugestellt und wiederholt. Ankündigungen abfragen: since=<addedAt in ms> übergeben, danach bei jedem Aufruf den nextCursor der vorigen Antwort als cursor. Die Zeilen kommen in der Reihenfolge, in der unser Radar sie aufgenommen hat — eine spät erfasste Meldung geht nie verloren; Duplikate über id entfernen. Ohne since kommen die zuletzt veröffentlichten zuerst — ältere per cursor blättern, solange hasMore true ist. Eine Abfrage ohne Zeilen kostet einmal pro 10 Sekunden je Konto keine Kontingent-Einheit (quotaCharged: false) — Abfragen alle 10 Sekunden passen also in jeden Tarif; eine Antwort mit Zeilen zählt wie üblich.

# first call: everything added in the last hour, oldest first
curl -H "Authorization: Bearer gcs_YOUR_KEY" \
  "https://getcoinsight.com/api/v1/announcements?since=$(( $(date +%s) * 1000 - 3600000 ))"
# every next call: the nextCursor of the previous response
curl -H "Authorization: Bearer gcs_YOUR_KEY" \
  "https://getcoinsight.com/api/v1/announcements?cursor=NEXT_CURSOR"

Preise je Ticker: priceAtAnnouncement und move1hPct / move24hPct / move7dPct gelten ab der Minute der Veröffentlichung — aus Kompatibilitätsgründen beibehalten, bei einem schnellen Listing kein handelbarer Preis. priceAt3m mit movesFrom3m (und movesFrom3mVsBtc, abzüglich der BTC-Bewegung) beginnt 3 Minuten nach der Veröffentlichung — die Basis der Statistiken der Website; priceAtDetection mit movesFromDetection beginnt, als unser Radar die Meldung erfasste. Jeder Horizont endet zu einem Zeitpunkt, horizonsEndAt (Minute der Veröffentlichung + 1 h / 24 h / 7 T): „1 h“ ab +3 Min. umfasst 57 Minuten, und ein Horizont, von dem bei unserer Erfassung weniger als 75 % übrig waren, hat keine Bewegung ab Erfassung. Ohne Gebühren, Slippage und Funding.

Bot-Felder (API und Webhook): market (spot / perp / alpha / tradfi), quotes (die im Titel genannten Quote-Märkte, z. B. KRW, BTC, USDT — leer, wenn nicht angegeben), tradingStartsAt (nur wenn der Titel eine Uhrzeit nennt, sonst null — der Text der Meldung wird nicht ausgewertet), detectedAt (wann unser Radar sie zuerst sah) und tradable — die Marktcodes der Börsen: role notice = der Markt der Meldung (INITUSDT, KRW-INIT, INIT-USD), role reference = der Binance/Bybit-Markt, aus dem wir die Preise lesen.

Screener-API

Führe jedes Screener-Preset oder eigene Filter per Code aus — dieselbe Engine, dasselbe Universum und dieselben Tarifgrenzen wie auf der Website. Jedes Ergebnis enthält die Setup-Level und einen TradingView-Ticker, bereit für einen Bot.

curl -H "Authorization: Bearer gcs_YOUR_KEY" \
  "https://getcoinsight.com/api/v1/screener?preset=strong_uptrend&interval=4h&universe=100&limit=10"

# explicit filters (override the preset's):
curl -G -H "Authorization: Bearer gcs_YOUR_KEY" \
  "https://getcoinsight.com/api/v1/screener" \
  --data-urlencode 'filters={"rsiMax":35,"sma200":"above"}' \
  --data-urlencode "interval=1h"
{ "data": { "preset": "strong_uptrend", "interval": "4h", "universe": 100,
  "scanned": 97, "matched": 7, "skippedYoung": 2, "errored": 1,
  "scannedAt": "2026-10-01T18:30:08.283Z", "results": [ {
    "id": "solana", "symbol": "SOL", "rank": 6, "price": 152.3, "compositeScore": 0.41,
    "rating": "buy", "regime": "trending_up", "rsi": 61.2, "adx": 27.4, "atrPct": 2.1,
    "tvTicker": "BINANCE:SOLUSDT.P",
    "venue": { "exchange": "binance", "market": "perp", "symbol": "SOLUSDT" },
    "setup": { "side": "long", "entry": 152.3, "stop": 146.9, "targets": [161.2, 168],
               "rr": 1.6, "rrNet": 1.4, "viable": true, "status": "idea", "watchReason": null } } ] } }

Parameter: preset, filters (JSON), interval (15m, 1h, 4h, 1d, 1w), universe (durch den Tarif begrenzt), limit. Höchstens 6 Scans pro Minute. preset: oversold_reversal, overbought_rejection, volume_spike, volume_dump, breakout, breakdown, strong_uptrend, strong_downtrend, trend_pullback, downtrend_rally, bearish_breakdown, overbought, deep_drawdown, momentum_7d, accumulation, bb_squeeze, mean_reversion, relative_strength, deriv_squeeze, short_squeeze, smart_money, multi_pillar, strong_shorts, range_long, range_short, dip_weekly_uptrend, oi_build_flat, ema_cross_btc_up. Numerische Kurzformen: rsiMin, rsiMax, scoreMin, scoreMax, relVolumeMin, adxMin, adxMax, change24hMin, change24hMax, change7dMin, change7dMax, volumeMin.

Webhooks für Trading-Bots

Alarme, neue Treffer gespeicherter Screens und die Tagesideen können per POST an deine eigene https-URL gesendet werden. Das Format wählst du unter Profil → Benachrichtigungen.

  • JSON — eine Anfrage pro Benachrichtigung mit strukturierten Feldern (Ereignistyp, Symbol, TradingView-Ticker je Börse, Richtung, Preis, Zeitrahmen, Alarm-ID, Einstieg/Stop/Ziele) plus die ursprünglichen Felder subject/text/url.
  • 3Commas — eine Anfrage pro Signal im Format des 3Commas-Signal-Bots; füge secret und bot_uuid deines Bots in die Vorlage ein.
  • Cornix — ein Textsignal im Cornix-Stil pro Ereignis (Paar, Börse, Richtung, Einstieg, Take-Profits, Stop).
  • Custom — deine eigene Vorlage mit Platzhaltern in doppelten geschweiften Klammern; auch TradingView-Namen wie ticker, exchange, close und interval funktionieren.
{ "event": "notification", "type": "price_alert", "version": 2,
  "subject": "…", "text": "…", "url": "https://getcoinsight.com/…", "timestamp": "2026-01-01T12:00:00.000Z",
  "symbol": "BTC", "base": "BTC", "quote": "USDT", "coinId": "bitcoin",
  "exchange": "binance", "market": "perp", "venueSymbol": "BTCUSDT", "ticker": "BINANCE:BTCUSDT.P",
  "tickers": { "binance": "BINANCE:BTCUSDT.P", "bybit": "BYBIT:BTCUSDT.P", "okx": "OKX:BTCUSDT.P" },
  "side": "long", "direction": "above", "price": 65000, "timeframe": "1h",
  "alertId": "clx…", "alertType": "price_above", "threshold": 65000,
  "entry": 65000, "stop": 63500, "targets": [67500, 70000], "rr": 1.7,
  "assetUrl": "https://getcoinsight.com/coin/bitcoin?symbol=btc&interval=1h",
  "signals": [ { "event": "price_alert", "symbol": "BTC", … } ] }

Vorlage für den 3Commas-Signal-Bot:

{
  "secret": "PASTE_3COMMAS_SECRET",
  "max_lag": "300",
  "timestamp": "{{timenow}}",
  "trigger_price": "{{close}}",
  "tv_exchange": "{{exchange}}",
  "tv_instrument": "{{ticker}}",
  "action": "{{action}}",
  "bot_uuid": "PASTE_BOT_UUID"
}

Platzhalter: {{event}} {{kind}} {{symbol}} {{base}} {{quote}} {{coin_id}} {{tv_symbol}} {{ticker}} {{exchange}} {{tv_exchange}} {{tv_instrument}} {{venue}} {{market}} {{venue_symbol}} {{pair}} {{pair_3commas}} {{side}} {{direction}} {{action}} {{exit_action}} {{intent}} {{price}} {{close}} {{timeframe}} {{interval}} {{alert_id}} {{alert_type}} {{threshold}} {{screen_id}} {{screen_name}} {{entry}} {{stop}} {{target1}} {{target2}} {{targets}} {{rr}} {{url}} {{timestamp}} {{timenow}} {{subject}} {{text}} {{signal_id}} {{test}} {{leverage}} {{disclaimer}}

Der action-Platzhalter ist enter_long / enter_short NUR für Signale, die du für den Bot-Handel freigegeben hast: die Bot-Wahl eines Alerts (Long, Short oder Setup-Richtung folgen), „An Bot senden“ eines gespeicherten Screens (nur bestätigte Setups auf geschlossener Kerze) oder der Schalter für die täglichen Ideen. Ein Preisdurchbruch allein legt nie eine Richtung fest. Alles andere ist reine Information und erreicht 3Commas oder Cornix nie. Jedes Signal trägt signal_id und seinen ursprünglichen Zeitstempel; ein Signal wird nie erneut, nie mehr als 5 Minuten verspätet und höchstens bis zu deinem Tageslimit (≤ 10) pro 24 h gesendet.

Bracket-Alerts: Das Berühren des Einstiegs sendet enter_long / enter_short mit Stop und Zielen des Brackets; der Stop (oder der nachgezogene Stop) und das letzte Ziel senden exit_long / exit_short – nur an einen Bot, der unseren Einstieg erhalten hat. Cornix bekommt den Einstieg mit Stop und Zielen und schließt selbst. Ein Coin ohne verifizierten Börsenmarkt, eine Aktie an 3Commas / Cornix, ein Short auf einem Spot-Markt oder eine Richtung, die den eigenen Levels des Signals widerspricht, wird nie als Trade gesendet.

Jede Anfrage ist signiert: X-GCS-Signature: sha256=HMAC(Body, dein Secret). Bot-Formate senden höchstens 10 Signale pro Benachrichtigung.

Ankündigungs-Webhook (ab Radar)

Jede Listing-, Delisting- oder Warnmeldung, die zu deinen Ankündigungseinstellungen passt, wird als JSON (event "announcement") gePOSTet, wenn unser Radar sie erfasst — nur im JSON-Format. Jeder Versuch hat 8 Sekunden Frist, Weiterleitungen werden nicht verfolgt: schnell mit 2xx antworten. Ein fehlgeschlagener Versuch wird mit wachsendem Abstand bis 30 Minuten wiederholt, bis zu 9 Versuche über etwa 2 Stunden — eine Zustellung kann also verspätet ankommen. Duplikate über eventId entfernen (auch der Header X-Getcoinsight-Delivery; attempt und X-Getcoinsight-Attempt zählen die Versuche) und die Aktualität über announcement.detectedAt oder firstAttemptAt beurteilen — timestamp ist die Sendezeit dieses Versuchs. Verpasstes über /api/v1/announcements?since=… nachladen. Nach 20 fehlgeschlagenen Zustellungen in Folge wird der Webhook abgeschaltet und du erhältst eine Meldung in der Glocke.

POST <your https URL>
Content-Type: application/json
X-GCS-Signature: sha256=<hex HMAC-SHA256 of the raw body, your secret>
X-Getcoinsight-Delivery: announcement:binance:1234567
X-Getcoinsight-Attempt: 1

{ "event": "announcement", "type": "announcement", "version": 2,
  "subject": "…", "text": "…", "url": "https://getcoinsight.com/…", "timestamp": "2026-10-26T09:00:04.120Z",
  "eventId": "announcement:binance:1234567", "attempt": 1, "firstAttemptAt": "2026-10-26T09:00:04.100Z",
  "disclaimer": "…", "signals": [],
  "announcement": { "id": "binance:1234567", "exchange": "binance", "kind": "listing",
    "title": "Binance Will List X (X)", "symbols": ["X"],
    "publishedAt": "2026-10-26T09:00:00.000Z", "noticeUrl": "https://www.binance.com/…",
    "market": "spot", "quotes": ["USDT"], "tradingStartsAt": null, "detectedAt": "2026-10-26T09:00:03.900Z",
    "tradable": [ { "base": "X", "venue": "binance", "type": "spot", "symbol": "XUSDT", "role": "notice" } ],
    "eventId": "announcement:binance:1234567", "attempt": 1, "firstAttemptAt": "2026-10-26T09:00:04.100Z" } }

Richte deinen Webhook unter Profil → Benachrichtigungen ein →