전체 문서 탐색

암호화폐 API 레퍼런스

암호화폐 페어의 가격과 이력

개요

암호화폐 페어의 가격과 가격 이력입니다. 모든 요청에 Bearer 키가 필요하며 REST와 MCP는 하나의 크레딧 잔액을 함께 사용합니다.

페어 id는 코인, 하이픈, 기준 통화 순으로 쓰며 BTC-USD, ETH-EUR가 그 예입니다. 대소문자는 구분하지 않고 하이픈 대신 슬래시도 허용됩니다. 모든 응답에는 표준 페어가 담깁니다. 기준 통화는 USD, EUR, GBP입니다. 가격은 유효숫자 최대 8자리의 십진수 문자열입니다.

암호화폐는 하루 종일 거래되므로 장 세션이 없습니다. 가격이 5분을 넘으면 stale로 표시됩니다.

기본 URL: https://api.narwhalapi.com. MCP 도구: crypto, with one action 를 아래 각 라우트에 대응해 둡니다.

모든 계정에 제공되는 것

항목모든 계정
최신 가격라이브
24시간 변동포함
일일 바전체 이력
1분봉포함
페어 목록포함

확인 요금 페이지에서 호출당 비용을 확인할 수 있습니다. 라우트에 별도 안내가 없으면 요청은 해당 API의 가격으로 청구됩니다.

  • 암호화폐에는 거래량이 없습니다. 가격과 봉에는 거래량 필드가 없습니다.
  • 일봉은 UTC 기준 하루이며 00:00 UTC에 나타납니다. 오늘의 미완성 봉은 표시되지 않습니다.
  • 페어 목록에는 가격을 제공하는 페어가 담깁니다. 페어는 30초에 한 번 이상 거래되는 동안 목록에 있고, 2분에 한 번 미만으로 떨어지면 제외됩니다.

엔드포인트

모든 경로는 GET이며, 키를 다음 헤더에 담아 보내야 합니다: Authorization: Bearer 헤더입니다. 예시는 응답의 형태를 보여 줄 뿐이며 실시간 데이터가 아닙니다.

가격을 제공하는 암호화폐 페어

GET /v1/crypto/pairs

가격을 제공하는 모든 페어를 페어(BTC-USD 형식)별로 반환합니다. 선택 파라미터 quote(USD, EUR 또는 GBP)를 쓸 수 있습니다. 페어는 30초에 한 번 이상 거래되는 동안 목록에 있고, 2분에 한 번 미만으로 떨어지면 제외됩니다. 자체 페어 목록에서 읽으므로 모든 계정에서 사용할 수 있고 호출 1회로 계산됩니다.

MCP: 도구 crypto, action pairs.

매개변수

매개변수위치필수유형의미
quote쿼리아니요USD, EUR, GBP 중 하나이 통화(USD, EUR 또는 GBP)로 표시되는 페어만 반환합니다.

응답 필드

필드유형전송의미
pairs객체 목록항상가격을 제공하는 모든 페어를 페어별로 반환합니다. 페어는 30초에 한 번 이상 거래되는 동안 목록에 있고, 2분에 한 번 미만으로 떨어지면 제외됩니다.
pairs[].pair문자열항상표준 페어입니다. 예: BTC-USD.
pairs[].base문자열항상코인의 티커입니다.
pairs[].quote문자열항상견적 통화입니다.
pairs[].name문자열항상코인의 이름입니다.
요청
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/pairs?quote=USD"
응답 예시
{
  "pairs": [
    {
      "pair": "BTC-USD",
      "base": "BTC",
      "quote": "USD",
      "name": "Bitcoin"
    },
    {
      "pair": "ETH-EUR",
      "base": "ETH",
      "quote": "EUR",
      "name": "Ethereum"
    }
  ]
}

암호화폐 페어 하나의 최신 가격

GET /v1/crypto/{pair}/price

페어의 최신 종합 가격과 24시간 변동을 반환합니다(알 수 없으면 생략). 암호화폐는 하루 종일 거래되므로 장 세션이 없으며, 가격이 5분을 넘으면 stale이 true입니다. change_24h_percent는 퍼센트 단위입니다.

MCP: 도구 crypto, action price.

매개변수

매개변수위치필수유형의미
pair경로예문자열암호화폐 페어로, 코인, 하이픈, 기준 통화 순입니다. 예: BTC-USD, ETH-EUR. 대소문자는 구분하지 않으며 하이픈 대신 슬래시도 허용됩니다. 응답에는 표준 페어가 담깁니다.

응답 필드

필드유형전송의미
pair문자열항상표준 페어입니다.
base문자열항상코인의 티커입니다.
quote문자열항상기준 통화이며 모든 가격이 이 통화로 표시됩니다.
price문자열항상최종 가격이며 유효숫자는 최대 8자리입니다.
change_24h문자열선택price에서 24시간 전 가격을 뺀 값이며, 퍼센트 단위의 24시간 변동에서 계산합니다. 알 수 없으면 생략됩니다.
change_24h_percent문자열선택퍼센트 단위의 24시간 변동입니다(1.5는 1.5%를 뜻합니다). change_24h가 생략되면 함께 생략됩니다.
timestamp날짜·시간항상가격이 유효했던 시각(UTC, 초 단위).
stale불리언항상가격이 5분을 넘었거나 갱신하지 못했으면 true입니다.
delayed항상 true선택전송되지 않음: 모든 계정에서 가격은 실시간입니다.
요청
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/BTC-USD/price"
응답 예시
{
  "pair": "BTC-USD",
  "base": "BTC",
  "quote": "USD",
  "price": "68250.5",
  "change_24h": "812.4",
  "change_24h_percent": "1.2",
  "timestamp": "2026-10-26T15:42:00Z",
  "stale": false
}

최대 50개 암호화폐 페어의 최신 가격

GET /v1/crypto/prices

나열된 각 페어의 최신 가격입니다. 가격이 반환된 페어마다 호출 1회로 계산하며 한 번에 차감합니다. 조회에 성공한 페어의 비용을 잔액으로 감당할 수 없으면 요청 전체가 402 insufficient_credits로 거부됩니다. 가격이 반환되지 않은 페어는 errors에 (id로) 나열되며 비용이 들지 않습니다. change_24h_percent는 퍼센트 단위입니다.

최대 50개의 페어를 보낼 수 있습니다. 배치는 한 번에 차감됩니다. 조회에 성공한 페어의 비용을 잔액으로 감당할 수 없으면 요청 전체가 402 insufficient_credits를 반환합니다.

MCP: 도구 crypto, action prices.

매개변수

매개변수위치필수유형의미
pairs쿼리예문자열쉼표로 구분한 페어이며 중복을 제거한 뒤 최대 50개입니다. 각 페어는 단건 가격 경로와 같은 규칙을 따릅니다. 가격이 반환된 페어마다 호출 1회로 계산됩니다.

응답 필드

필드유형전송의미
prices객체 목록항상조회에 성공한 페어마다 가격 하나를 페어별로 반환합니다.
prices[].pair문자열항상표준 페어입니다.
prices[].base문자열항상코인의 티커입니다.
prices[].quote문자열항상기준 통화이며 모든 가격이 이 통화로 표시됩니다.
prices[].price문자열항상최종 가격이며 유효숫자는 최대 8자리입니다.
prices[].change_24h문자열선택price에서 24시간 전 가격을 뺀 값이며, 퍼센트 단위의 24시간 변동에서 계산합니다. 알 수 없으면 생략됩니다.
prices[].change_24h_percent문자열선택퍼센트 단위의 24시간 변동입니다(1.5는 1.5%를 뜻합니다). change_24h가 생략되면 함께 생략됩니다.
prices[].timestamp날짜·시간항상가격이 유효했던 시각(UTC, 초 단위).
prices[].stale불리언항상가격이 5분을 넘었거나 갱신하지 못했으면 true입니다.
prices[].delayed항상 true선택전송되지 않음: 모든 계정에서 가격은 실시간입니다.
errors객체 목록항상가격이 반환되지 않은 페어입니다. 요금이 부과되지 않습니다.
errors[].id문자열항상요청한 그대로의 ID.
errors[].code다음 중 하나: not_found, not_covered, upstream_busy항상not_found: 해당 종목 없음. not_covered: 해당 거래소는 아직 시세가 없음. upstream_busy: 지금은 시세를 가져올 수 없으므로 잠시 후 다시 시도하십시오.
요청
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/prices?pairs=BTC-USD,ETH-USD"
응답 예시
{
  "prices": [
    {
      "pair": "BTC-USD",
      "base": "BTC",
      "quote": "USD",
      "price": "68250.5",
      "change_24h": "812.4",
      "change_24h_percent": "1.2",
      "timestamp": "2026-10-26T15:42:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XYZ-USD",
      "code": "not_found"
    }
  ]
}

암호화폐 페어 하나의 가격 봉

GET /v1/crypto/{pair}/bars

일봉(1d, UTC 기준 하루이며 00:00 UTC에 마감) 또는 1분봉(1m)을 오래된 순으로 반환합니다. 하루치 봉은 00:00 UTC에 나오며 오늘의 미완성 봉은 표시되지 않습니다. 이력은 모든 계정에 전체 기간이 제공됩니다. 한 페이지에 최대 5,000개의 봉이 담기며 next_cursor가 함께 반환됩니다. 가격과 더 이상 맞지 않는 커서는 409 cursor_expired입니다. 페이지당 호출 1회입니다.

커서가 가리키는 가격이 바뀌면 커서가 더 이상 동작하지 않고 409 cursor_expired가 반환됩니다.

MCP: 도구 crypto, action bars.

매개변수

매개변수위치필수유형의미
pair경로예문자열암호화폐 페어로, 코인, 하이픈, 기준 통화 순입니다. 예: BTC-USD, ETH-EUR. 대소문자는 구분하지 않으며 하이픈 대신 슬래시도 허용됩니다. 응답에는 표준 페어가 담깁니다.
interval쿼리아니요다음 중 하나: 1d, 1m1d(UTC 기준 하루당 봉 1개, 00:00 UTC에 마감) 또는 1m(1분봉). 그 외의 값은 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이며 파라미터는 동일하게 보내야 합니다.

응답 필드

필드유형전송의미
pair문자열항상표준 페어입니다.
start문자열선택전송되지 않음: start는 이동되지 않습니다.
end문자열선택전송되지 않음: 일봉은 잘리지 않습니다.
bars객체 목록항상한 페이지에 최대 5,000개의 봉.
bars[].timestamp날짜·시간항상봉 기간의 시작 시각(UTC)입니다. 일봉은 00:00, 1분봉은 해당 분입니다.
bars[].open문자열항상해당 기간의 첫 가격입니다.
bars[].high문자열항상해당 기간의 최고가입니다.
bars[].low문자열항상해당 기간의 최저가입니다.
bars[].close문자열항상해당 기간의 마지막 가격입니다.
next_cursor문자열항상다음 페이지를 읽으려면 이 값을 다시 전달합니다. 마지막 페이지에서는 null입니다.
요청
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/crypto/BTC-USD/bars?interval=1d&start=2026-10-01"
응답 예시
{
  "pair": "BTC-USD",
  "bars": [
    {
      "timestamp": "2026-10-25T00:00:00Z",
      "open": "67210.3",
      "high": "68540.9",
      "low": "66980.1",
      "close": "68100.2"
    }
  ],
  "next_cursor": null
}

오류

오류는 공통 문제 형식을 사용하며, 다음 필드를 포함합니다: request_id. 확인 API 오류 코드와 크레딧 형식과 크레딧 헤더에 대한 설명이 있습니다. 실패한 요청에는 요금이 부과되지 않습니다.

코드상태의미
invalid_query400매개변수가 없거나, 알 수 없거나, 중복되었거나, 범위를 벗어났습니다.
invalid_id400id 또는 페어가 이 API에서 요구하는 형식과 다릅니다.
too_many_ids400배치에 50개를 넘는 id가 들어 있습니다.
invalid_interval400interval이 1d 또는 1m이 아니거나, 이 상품에서는 사용할 수 없습니다.
range_too_large400기간이 이 경로에서 허용하는 길이를 넘었습니다.
not_found404해당하는 종목, 펀드 또는 페어가 없습니다.
invalid_cursor400이 요청이 반환한 커서가 아니거나, 다른 요청의 커서입니다.
cursor_expired409커서가 가리키는 가격이 바뀌었습니다. 커서 없이 처음부터 다시 요청하십시오.
insufficient_credits402크레딧 잔액이 요청 비용보다 적습니다.
upstream_busy503지금은 가격을 가져올 수 없습니다. 배치에서는 errors에 나열됩니다. 잠시 후 다시 시도하십시오.
area_unavailable503이 영역은 지금 응답할 수 없습니다.

이 페이지가 도움이 되었나요?