문서 /

API 레퍼런스

REST 요약: 인증, 제한, 최신성 필드, 엔드포인트, 오류.

인증과 제한

데이터 엔드포인트는 익명으로 시험할 수 있습니다. IP당 분당 12회, 시간당 100회입니다. 키를 쓰면 계정 월간 할당량이 적용됩니다.

bash · header
Authorization: Bearer YOUR_KEY
X-RateLimit-Remaining: 9999
X-RateLimit-Reset: 1788220800

데이터 최신성을 설명하는 필드

`source`는 출처 유형, `market_session`은 시장 상태, `data_updated_at`은 응답에 기여한 가장 오래된 관측 시각입니다. 세 필드를 모두 저장하세요.

엔드포인트

GET /v1/latest[/{BASE}]현재 환율. 전체 또는 symbols로 필터링.
GET /v1/{YYYY-MM-DD}[/{BASE}]날짜와 기준 통화의 과거 스냅샷.
GET /v1/convert/{FROM}/{TO}[/{AMOUNT}] · POST /v1/convert금액 환산. 단일 GET 또는 일괄 POST.
GET /v1/rate/{slug}slug로 단일 통화쌍 조회.
GET /v1/range페이지 처리와 다운로드를 지원하는 일일 시계열.
GET /v1/currencies지원 통화 목록. 매개변수 없음.
GET /v1/account계정, 플랜, 활성 키, 이번 달 사용량.

인트라데이 시계열과 지원 범위

/v1/timeseries는 1m, 5m, 15m, 1h, 4h와 일별 기준 데이터 1d를 지원하며 2h는 지원하지 않습니다. USD를 포함하지 않는 SGD 교차쌍은 4h를 지원하지 않지만 USD/SGD와 역방향은 지원합니다. 시장 데이터 수집은 2026-09-14에 시작했습니다. 1m는 30일간 보관하며 더 큰 간격에는 예정된 만료가 없습니다. 보관 기간만큼의 과거 데이터가 이미 쌓였다는 뜻은 아닙니다.

과거 교차쌍은 같은 UTC 구간의 실제 마감 관측을 사용하며 시각 차이가 최대 5초여야 합니다. effective_at은 더 오래된 관측 시각입니다. 누락은 채우지 않으며 아직 열린 구간은 바뀔 수 있습니다. 1d는 전체 카탈로그의 일별 기준 데이터입니다. 표는 통화쌍을 한 번씩 세며 양방향을 지원합니다.

interval고유 통화쌍
1m91
5m91
15m91
1h91
4h79
1d465
curl · EUR/JPY · 15m
curl "https://api.exchangerate.dev/v1/timeseries?base=EUR&symbols=JPY&interval=15m&from=2026-09-14T12:00:00Z&to=2026-09-14T13:00:00Z"

지원하는 기간에 관측이 없으면 HTTP 200과 data: [], has_more: false, next_cursor: null을 반환합니다. 알 수 없는 간격은 unsupported_interval, 지원 범위 밖의 쌍은 unsupported_pair_interval과 rejected_pairs를 반환합니다(HTTP 400). 혼합 요청은 전체가 거부됩니다.

AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR

지원 범위와 제한 상세

장중 환율 API

실시간 WebSocket

wss://api.exchangerate.dev/v1/stream에 연결한 뒤 10초 안에 auth를 보내세요. API 키는 서버에 보관하고 URL이나 공개 JavaScript에 넣지 마세요. 익명 연결은 지원하지 않습니다. authenticated를 받으면 subscribe를 보냅니다. 아래 통화를 지원하며 교차쌍은 양쪽 최신 관측이 신선하고 최대 5초 차이여야 합니다. unavailable 또는 stale 상태가 될 수 있습니다. 허용된 연결마다 월간 할당량 한 단위를 사용합니다.

표는 신규 계정의 한도를 보여 줍니다. 기존 계정은 Free 1 × 5, Basic 3 × 25 또는 Pro 10 × 100(연결 수 × 연결당 통화쌍 수)을 유지합니다. 실제 한도는 authenticated 메시지에 표시됩니다.

AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR

플랜동시 연결 수연결당 통화쌍
Free00
Basic00
Pro00
Realtime10100
JSON · auth
{"action":"auth","api_key":"YOUR_KEY"}
JSON · subscribe
{"action":"subscribe","base":"EUR","symbols":["USD","JPY"]}

실시간 WebSocket

오류

REST: 모든 오류는 `{ result: "error", code, message }` 형식입니다. 429에는 `Retry-After`가 포함되며 출처 장애 때 가짜 데이터로 대체하지 않습니다.

json · error
{
  "result": "error",
  "code": "missing_parameter",
  "message": "missing required parameter: symbols"
}

API 레퍼런스 →

사용 중인 스택에서 사용

같은 요청을 curl, Python, JavaScript에서 실행할 수 있습니다. 평가에는 API 키가 필요하지 않습니다.

퀵스타트 열기
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"
응답 예시
{
  "result": "success",
  "base": "USD",
  "source": "live",
  "sources": {
    "EUR": "live",
    "GBP": "live"
  },
  "market_session": "open",
  "timestamp": "2026-06-15T12:00:00Z",
  "data_updated_at": "2026-06-15T12:00:00Z",
  "effective_at": {
    "EUR": "2026-06-15T12:00:00Z",
    "GBP": "2026-06-15T12:00:00Z"
  },
  "rates": {
    "EUR": 0.86207,
    "GBP": 0.74627
  },
  "derived_symbols": [],
  "notice": "Indicative rates, not for settlement."
}

rates.EUR은 1 USD에 해당하는 EUR 금액입니다. effective_at.EUR은 관측 시각이고 sources.EUR은 출처 등급입니다. 값과 시각은 예시입니다.

JSON 응답 열기API 참조