모든 API

선물 API 데이터

REST 또는 MCP로 29개 선물의 최신 가격과 일봉 또는 1분봉 이력을 가져옵니다. 각 시리즈는 근월물 계약이므로 롤오버일에 가격에 단차가 생깁니다.

첫 요청

WTI 원유의 최신 가격 조회

curl --request GET \
  --url "https://api.narwhalapi.com/v1/futures/CL/price" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
응답 예시
{
  "id": "CL",
  "name": "WTI Crude Oil",
  "commodity_key": "crude-oil",
  "benchmark": "wti",
  "exchange": "NYMEX",
  "exchange_mic": "XNYM",
  "currency": "USD",
  "unit": "usd_per_barrel",
  "unit_key": "barrel",
  "price": "102.11",
  "market_session": "open",
  "timestamp": "2026-10-29T18:38:00Z",
  "stale": false
}

일봉 조회

curl --request GET \
  --url "https://api.narwhalapi.com/v1/futures/ES/bars?interval=1d&start=2017-04-03&end=2017-04-03" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
응답 예시
{
  "id": "ES",
  "currency": "USD",
  "bars": [
    {
      "timestamp": "2017-04-03T00:00:00Z",
      "open": "2357.5",
      "high": "2363.25",
      "low": "2340",
      "close": "2354.5"
    }
  ],
  "next_cursor": null
}

엔드포인트

GET선물 목록/v1/futures

Narwhal이 가격을 제공하는 모든 선물 계약을 이름, 카테고리, 거래소, 통화, 단위와 함께 나열합니다.

응답 필드

  • futures객체 목록

    Narwhal이 가격을 제공하는 모든 계약이며, 각각 id, 이름, 카테고리, 거래소, 통화, 단위를 포함합니다.


전체 레퍼런스 →
GET선물 가격 조회/v1/futures/{id}/price

한 계약의 최신 가격을 가져옵니다.

매개변수

  • id필수

    선물 id로, 거래소의 루트 코드입니다. 예: CL, GC, ES, 6E. 대소문자는 구분하지 않습니다. 시리즈는 조정하지 않은 연속 근월물이며 교체일마다 가격 차이가 있습니다.

주요 응답 필드

  • id문자열

    CL과 같은 루트 코드입니다.

  • name문자열

    계약의 공식 명칭입니다.

  • commodity_key문자열

    원자재의 고정 키이며 현물, 선물, 예측, 실물 가격에서 모두 같습니다. 예: gold, crude-oil. 이 키로 서로 연결할 수 있습니다. 주가지수, 금리, 통화 선물에서는 생략됩니다.

  • benchmarkwti, brent, urals, dubai 중 하나

    원유 기준물이며 wti, brent, urals, dubai 중 하나입니다. 원유에만 전달되며, 이 값이 없는 원유 행은 원유 전체를 뜻합니다.

  • exchange문자열

    계약이 거래되는 거래소입니다.

  • exchange_mic문자열

    거래소의 ISO 10383 시장 식별 코드입니다. 예: XNYM.

  • currency문자열

    가격의 통화입니다.

  • unit문자열

    가격의 기준 단위입니다. 예: usd_per_barrel, index_point.

  • unit_key문자열

    단위의 표준 소문자 이름이며, 이 단위를 사용하는 모든 화면에서 동일합니다. 예: barrel, troy_ounce, mmbtu, tonne. unit은 출처의 표기를 그대로 유지합니다.

  • price_scale문자열

    가격이 보조 단위로 표시될 때만 전송됩니다. price에 이 값을 곱하면 currency 기준 가격이 됩니다. 0.01은 price가 센트 단위라는 뜻이므로, unit이 cent_per_bushel인 price 450은 부셸당 4.50 USD입니다.


전체 레퍼런스 →
GET여러 선물 가격 조회/v1/futures/prices

한 번의 호출로 최대 50개 계약의 최신 가격을 가져옵니다.

매개변수

  • ids필수

    쉼표로 구분한 id이며 중복을 제거한 뒤 최대 50개입니다. 각 id는 단건 가격 경로와 같은 규칙을 따릅니다. 가격이 반환된 id마다 호출 1회로 계산됩니다.

응답 필드

  • prices객체 목록

    가격이 반환된 id마다 하나의 항목이 있으며, 단일 가격의 필드를 그대로 갖습니다.

  • errors객체 목록

    가격을 반환하지 않은 ID로, 각각 not_found 코드가 붙습니다. 비용은 들지 않습니다.


전체 레퍼런스 →
GET선물 바 조회/v1/futures/{id}/bars

한 계약의 일봉 또는 1분봉을 오래된 순으로 가져옵니다. 가격은 가공하지 않은 근월물 가격이므로 롤오버일에 단차가 생깁니다.

매개변수

  • id필수

    선물 id로, 거래소의 루트 코드입니다. 예: CL, GC, ES, 6E. 대소문자는 구분하지 않습니다. 시리즈는 조정하지 않은 연속 근월물이며 교체일마다 가격 차이가 있습니다.

  • interval선택

    1d(거래일당 막대 1개, 해당 거래일 날짜 기준) 또는 1m(1분 막대, 12개월간 보관). 그 외의 값은 400 invalid_interval입니다.

  • start선택

    첫 번째 막대입니다. 1d: 날짜(YYYY-MM-DD), 해당 날짜 포함이며, 생략하면 가장 오래된 막대부터입니다. 1m: UTC 시각(YYYY-MM-DDTHH:MM:SSZ, 또는 00:00 UTC를 뜻하는 날짜), 해당 시각 포함이며, 생략하면 end의 하루 전입니다.

  • end선택

    마지막 막대입니다. 1d: 날짜, 해당 날짜 포함이며, 생략하면 마감된 가장 최근 거래일입니다. 1m: UTC 시각, 해당 시각 미포함이며, 생략하면 현재 시각 또는 start로부터 5일 뒤입니다. 1m에서 start와 end의 간격은 최대 5일입니다(400 range_too_large).

  • cursor선택

    이전 페이지의 next_cursor이며, 매개변수는 동일하게 사용합니다.

응답 필드

  • id문자열

    CL과 같은 루트 코드입니다.

  • commodity_key문자열

    원자재의 고정 키이며 현물, 선물, 예측, 실물 가격에서 모두 같습니다. 예: gold, crude-oil. 이 키로 서로 연결할 수 있습니다. 주가지수, 금리, 통화 선물에서는 생략됩니다.

  • benchmarkwti, brent, urals, dubai 중 하나

    원유 기준물이며 wti, brent, urals, dubai 중 하나입니다. 원유에만 전달되며, 이 값이 없는 원유 행은 원유 전체를 뜻합니다.

  • currency문자열

    가격의 통화입니다.

  • price_scale문자열

    가격이 보조 단위로 표시될 때만 전송됩니다. price에 이 값을 곱하면 currency 기준 가격이 됩니다. 0.01은 price가 센트 단위라는 뜻이므로, unit이 cent_per_bushel인 price 450은 부셸당 4.50 USD입니다.

  • start문자열

    범위의 시작이 뒤로 옮겨졌을 때만 전송됩니다.

  • end문자열

    전송되지 않습니다. 가격이 모든 계정에서 실시간이기 때문입니다.

  • bars객체 목록

    오래된 순으로 정렬된 바입니다. 각 바에는 timestamp, open, high, low, close가 있으며 거래량은 없습니다.

  • next_cursor문자열

    다음 페이지를 읽으려면 이 값을 다시 전달합니다. 마지막 페이지에서는 null입니다.


전체 레퍼런스 →

활용 사례

전체 이력 백필

이력 전체를 페이지 단위로 가져와 파일에 저장하고, 중단되면 이어서 받습니다.

가이드 읽기 →

매일 데이터 가져오기

작은 스크립트를 하루에 한 번 실행하고 결과를 CSV에 추가합니다.

가이드 읽기 →

캐싱과 429 오류

Cache responses by data type and tell a rate limit (429) from an empty credit balance (402).

가이드 읽기 →

데이터 범위

원자재 선물

  • WTI 원유CL · NYMEX · 배럴당 USD
  • 헨리 허브 천연가스NG · NYMEX · MMBtu당 USD
  • RBOB 가솔린RB · NYMEX · 갤런당 USD
  • 뉴욕항 초저유황 디젤HO · NYMEX · 갤런당 USD
  • 금GC · COMEX · 트로이온스당 USD
  • 은SI · COMEX · 트로이온스당 USD
  • 백금PL · NYMEX · 트로이온스당 USD
  • 구리HG · COMEX · 파운드당 USD
  • 옥수수ZC · CBOT · 부셸당 센트
  • 시카고 연질 적색 겨울밀ZW · CBOT · 부셸당 센트
  • 대두ZS · CBOT · 부셸당 센트
  • 생우(Live Cattle)LE · CME · 파운드당 센트
  • 설 호그(Lean Hog)HE · CME · 파운드당 센트

주가지수 선물

  • E-mini S&P 500ES · CME · 지수 포인트
  • E-mini 나스닥 100NQ · CME · 지수 포인트
  • E-mini 다우존스 산업평균지수YM · CBOT · 지수 포인트
  • E-mini 러셀 2000RTY · CME · 지수 포인트

국채 선물

  • 2년 만기 국채ZT · CBOT · 액면가 대비 비율(%)
  • 5년 만기 국채ZF · CBOT · 액면가 대비 비율(%)
  • 10년 만기 국채ZN · CBOT · 액면가 대비 비율(%)
  • 미국 국채ZB · CBOT · 액면가 대비 비율(%)

통화 선물

  • 유로 FX6E · CME · 유로당 USD
  • 영국 파운드6B · CME · 파운드당 USD
  • 일본 엔6J · CME · 엔당 USD
  • 호주 달러6A · CME · 호주 달러당 USD
  • 캐나다 달러6C · CME · 캐나다 달러당 USD
  • 스위스 프랑6S · CME · 스위스 프랑당 USD
  • 뉴질랜드 달러6N · CME · 뉴질랜드 달러당 USD
  • 멕시코 페소6M · CME · 멕시코 페소당 USD

관련 API

원유, 금속, 곡물, 가축 원자재 선물 가격 API

13개 상품 선물의 가격과 이력

API 탐색 →

지수 데이터를 위한 주가지수 API

REST와 MCP로 제공하는 18개 지수의 수준과 이력

API 탐색 →

현물 금속 가격 API

금, 은, 백금, 팔라듐의 현물 가격과 WTI, 브렌트유, 구리의 기준 가격입니다.

API 탐색 →

요금

매달 10달러의 무료 크레딧, 이후 1,000회당 2달러부터.

요금 보기 →

자주 묻는 질문

어떤 선물을 가져올 수 있나요?

29개 선물입니다. 상품 13개, 주가지수 선물 4개, 국채 선물 4개, 통화 선물 8개로 구성됩니다. id는 CL, GC, ES, ZN, 6E처럼 거래소의 루트 코드이며 대소문자를 구분하지 않습니다. 목록 경로는 전체를 반환합니다.

왜 어떤 날은 가격이 갑자기 뛰나요?

각 시리즈는 근월물 계약을 조정 없이 이어 붙인 것입니다. 근월물이 바뀌면 시리즈는 다음 계약으로 넘어가며 가격은 그 계약의 가격으로 바뀝니다. CL은 2026년 10월 19일에 약 4달러 달라졌습니다. 가격과 바는 거래된 그대로 이 변화를 보여 주므로 하루 동안의 움직임으로 읽지 마세요. 그래서 선물 가격에는 전일 종가나 변동폭이 없습니다. 롤오버 구간에서는 변동폭이 사실과 다르기 때문입니다.

가격은 실시간인가요, 지연되나요?

가격은 모든 계정에서 실시간입니다. 시장이 닫혀 있으면 API는 마지막 가격과 market_session closed로 응답합니다.

이력은 얼마나 가져올 수 있나요?

일봉은 2017년 4월까지 거슬러 올라가며 모든 계정이 전체 이력을 받습니다. 1분봉은 최근 12개월을 다루고 요청 한 번에 최대 5일까지 가능합니다.

거래량이 있나요?

아니요. 바에는 시가, 고가, 저가, 종가가 있습니다. 선물 가격에는 거래량, 전일 종가, 변동폭이 없습니다.

여러 가격을 한 번에 가져오려면 어떻게 하나요?

ids에 최대 50개의 id를 넣어 /v1/futures/prices를 호출하세요. 예: ids=CL,GC,ES. 가격이 반환되는 id마다 1회로 계산됩니다. 알 수 없는 id는 errors에 담겨 돌아오며 계산되지 않습니다.

비용은 얼마인가요?

호출은 1,000건당 $2이며 선불 크레딧에서 차감됩니다. 모든 계정은 가입 후 첫 12개월 동안 매월 $10의 무료 크레딧을 받습니다.