본문으로 건너뛰기
getcoinsight

개발자 API

마켓·기술 분석·뉴스 REST API — 이 사이트와 동일한 데이터. OpenAPI 명세 (JSON)

인증

모든 요청에는 Authorization 헤더에 API 키가 필요합니다.

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

키 생성 및 관리는 프로필

일일 쿼터

Free100 요청/일
Radar1,000 요청/일
Pro10,000 요청/일
Trader+100,000 요청/일

Free를 포함한 모든 요금제에 API 이용이 포함됩니다. /analysis는 모든 요금제에서 실시간 캔들을 반환하며, /fundamental은 펀더멘털 분석이 포함된 요금제(Pro 이상)가 필요합니다. 한 계정의 모든 키는 하나의 일일 한도를 공유하며, 순간 한도는 분당 60회 요청입니다.

응답에 X-RateLimit-Limit 및 X-RateLimit-Remaining 헤더가 포함됩니다. 쿼터 초과 시 HTTP 429.

엔드포인트

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

    시가총액 상위 코인: 가격, 시가총액, 거래량, 1h/24h/7d 변동.

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

    OHLCV 캔들(오래된 순, 봉 시간은 유닉스 초) — /analysis가 계산에 쓰는 바로 그 시계열, 요금제의 히스토리 범위까지.

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

    기술적 스냅샷: 가격, 추세, RSI/ADX/ATR, TA 합의 등급, 국면, 종합 점수. 간격: 1m–1M.

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

    펀더멘털 점수: 5개 카테고리 동종 그룹 백분위 + 90일 이력; assetId 없이는 최신 점수 목록. 펀더멘털 분석 플랜 필요.

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

    거래소 상장 / 상장폐지 / 유의 공지(Binance, Bybit, OKX, Upbit, Bithumb) — 공지 시점, 3분 후, 레이더 포착 시점의 가격과 1시간 / 24시간 / 7일 변동. Free 키는 포착 10분 뒤에, 최근 30일만 볼 수 있고, Radar 이상은 지연 없이 2021년부터의 전체 아카이브를 볼 수 있습니다.

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

    암호화폐 헤드라인 모음 (CoinDesk, Cointelegraph, Decrypt, The Block, Bitcoin Magazine).

  • GET /api/v1/presets

    스크리너 프리셋: ID, 이름, 적용 필터, 거래 방향, 요금제에서 제외되는 필터.

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

    무기한 선물 펀딩(8시간 환산, Binance/Bybit)과 Bybit/OKX/Hyperliquid 비교, 베이시스, 미결제약정 및 1h/4h/24h 변화. 정렬: rank, funding, fundingAbs, oiUsd, oiChangePct.

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

    스크린 실행: 요금제 범위 내에서 15m–1w 프리셋 및/또는 필터 적용. 점수, 셋업 레벨, TradingView 티커와 함께 현재 일치 결과를 반환합니다.

모든 엔드포인트는 JSON을 반환합니다: 성공 시 { "data": … }, 실패 시 { "error": "code" }. CORS 개방.

인증된 모든 응답에는 X-RateLimit-Reset(다음 초기화의 유닉스 초, 00:00 UTC)도 포함됩니다. 429와 502 응답에는 Retry-After(초)가 있으니 그만큼 기다리세요. 4xx는 그대로 재시도하지 마세요. 알 수 없는 심볼은 404 unknown_symbol입니다. v1 안에서는 필드가 추가만 되고 삭제되거나 타입이 바뀌지 않습니다.

스크리너는 503 busy(모든 스캔 슬롯 사용 중) 또는 502 upstream_degraded(대부분의 코인을 읽지 못함)로 응답할 수도 있습니다 — 둘 다 Retry-After가 붙고 할당량이 차감되지 않습니다. GET 이외의 메서드는 JSON 405를 받습니다.

봇에는 아래 공지 웹훅이 더 적합합니다: 저희가 보내고 실패하면 재전송합니다. 공지 폴링: since=<ms 단위 addedAt>를 보내고, 이후 호출마다 이전 응답의 nextCursor를 cursor로 보내세요. 행은 레이더가 추가한 순서대로 오므로 늦게 잡힌 공지도 절대 빠지지 않습니다. 중복은 id로 제거하세요. since가 없으면 가장 최근 게시물부터 나오며, hasMore가 true인 동안 cursor로 이전 페이지를 넘기세요. 행이 없는 폴링은 계정당 10초에 한 번까지 쿼터를 차감하지 않으므로(quotaCharged: false) 10초마다 폴링해도 어느 플랜에나 맞습니다. 행이 있는 응답은 평소대로 차감됩니다.

# 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"

티커별 가격: priceAtAnnouncement와 move1hPct / move24hPct / move7dPct는 공지된 분이 기준입니다 — 호환성을 위해 유지하지만, 빠른 상장에서는 거래할 수 있는 가격이 아닙니다. priceAt3m과 movesFrom3m(및 BTC 변동을 뺀 movesFrom3mVsBtc)은 공지 3분 뒤가 기준이며 사이트 통계의 기준입니다. priceAtDetection과 movesFromDetection은 레이더가 공지를 포착한 시점이 기준입니다. 모든 구간은 같은 시각 horizonsEndAt(공지된 분 + 1시간 / 24시간 / 7일)에 끝납니다: +3분부터의 "1시간"은 57분이며, 포착 시점에 남은 구간이 75% 미만이면 포착 기준 변동은 없습니다. 수수료·슬리피지·펀딩은 포함하지 않습니다.

봇용 필드(API 및 웹훅): market(spot / perp / alpha / tradfi), quotes(제목에 나온 마켓, 예: KRW, BTC, USDT — 없으면 빈 배열), tradingStartsAt(제목에 시각이 있을 때만, 없으면 null — 공지 본문은 파싱하지 않음), detectedAt(레이더가 처음 감지한 시각), tradable — 거래할 마켓 코드: role notice = 공지 대상 마켓(INITUSDT, KRW-INIT, INIT-USD), role reference = 가격을 읽는 Binance/Bybit 마켓.

스크리너 API

모든 스크리너 프리셋이나 직접 만든 필터를 코드로 실행하세요 — 웹사이트와 같은 엔진, 범위, 요금제 제한입니다. 결과마다 셋업 레벨과 TradingView 티커가 포함되어 봇에 바로 쓸 수 있습니다.

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 } } ] } }

파라미터: preset, filters (JSON), interval (15m, 1h, 4h, 1d, 1w), universe (요금제로 제한), limit. 분당 최대 6회 스캔. 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. 숫자 단축 파라미터: rsiMin, rsiMax, scoreMin, scoreMax, relVolumeMin, adxMin, adxMax, change24hMin, change24hMax, change7dMin, change7dMax, volumeMin.

트레이딩 봇용 웹훅

알림, 저장한 스크린의 새 일치 결과, 오늘의 아이디어를 내 https URL로 POST할 수 있습니다. 형식은 프로필 → 알림에서 선택하세요.

  • JSON — 알림마다 요청 1회, 구조화된 필드(이벤트 유형, 심볼, 거래소별 TradingView 티커, 방향, 가격, 타임프레임, 알림 id, 진입/손절/목표가)와 기존 subject/text/url 필드 포함.
  • 3Commas — 3Commas 시그널 봇 형식으로 시그널마다 요청 1회; 봇의 secret과 bot_uuid를 템플릿에 붙여 넣으세요.
  • Cornix — 이벤트마다 Cornix 스타일 텍스트 시그널 1개(페어, 거래소, 방향, 진입, 익절, 손절).
  • Custom — 이중 중괄호 플레이스홀더를 쓰는 사용자 템플릿; ticker, exchange, close, interval 같은 TradingView 스타일 이름도 사용할 수 있습니다.
{ "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", … } ] }

3Commas 시그널 봇 템플릿:

{
  "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"
}

플레이스홀더: {{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}}

action 플레이스홀더는 봇 거래를 허용한 신호에서만 enter_long / enter_short가 됩니다: 알림의 봇 설정(롱, 숏 또는 셋업 방향 따르기), 저장된 스크린의 “봇으로 보내기”(마감 봉의 확정 셋업만), 오늘의 아이디어 스위치. 가격 돌파만으로 방향이 정해지지 않습니다. 그 외는 정보용이며 3Commas나 Cornix에 전달되지 않습니다. 각 신호에는 signal_id와 원래 타임스탬프가 있으며, 재전송되지 않고, 5분 넘게 늦게 전송되지 않으며, 24시간당 일일 한도(≤ 10)까지만 전송됩니다.

브래킷 알림: 진입가에 닿으면 브래킷의 손절과 목표가를 담아 enter_long / enter_short를 보냅니다. 손절(또는 따라 올린 손절)과 마지막 목표가에서는 exit_long / exit_short를 보냅니다 — 저희 진입 신호를 받은 봇에게만. Cornix는 손절과 목표가가 담긴 진입 신호를 받아 스스로 청산합니다. 확인된 거래소 시장이 없는 코인, 3Commas / Cornix로 가는 주식, 현물 시장의 숏, 신호 자체의 가격 수준과 모순되는 방향은 거래로 보내지 않습니다.

모든 요청에는 서명이 있습니다: X-GCS-Signature: sha256=HMAC(본문, 내 시크릿). 봇 형식은 알림당 최대 10개 시그널을 전송합니다.

공지 웹훅(Radar 이상)

공지 설정에 맞는 상장, 상장폐지, 유의 공지는 레이더가 포착하면 JSON(event "announcement")으로 POST됩니다 — JSON 형식만 지원합니다. 시도마다 8초 기한이 있고 리디렉션은 따라가지 않으니 빠르게 2xx로 응답하세요. 실패한 시도는 최대 30분까지 늘어나는 간격으로 약 2시간 동안 최대 9회 재시도되므로 전송이 늦게 도착할 수 있습니다. 중복은 eventId(X-Getcoinsight-Delivery 헤더와 동일, attempt와 X-Getcoinsight-Attempt는 시도 횟수)로 제거하고, 신선도는 announcement.detectedAt 또는 firstAttemptAt으로 판단하세요 — timestamp는 해당 시도의 전송 시각입니다. 놓친 것은 /api/v1/announcements?since=…로 채우세요. 20회 연속 전송에 실패하면 웹훅이 꺼지고 알림 벨에 안내가 표시됩니다.

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" } }

프로필 → 알림에서 웹훅 설정 →