메뉴

API 레퍼런스

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

인증과 제한

데이터 엔드포인트는 익명으로 시험할 수 있습니다. IP당 분당 10회, 시간당 100회입니다. 키를 쓰면 계정 월간 할당량이 적용됩니다. Free 가격은 15분 지연됩니다(X-Price-Delay-Seconds: 900 헤더).

http · request headers
Authorization: Bearer YOUR_KEY
http · response headers
X-RateLimit-Remaining: 9999X-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계정, 플랜, 활성 키, 이번 달 사용량.
GET /v1/indices/{index_slug} · GET /v1/indices/{index_slug}/timeseriesUSD 지수 최신값과 과거 시계열.

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

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

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

interval고유 통화쌍
1m221
5m221
15m221
1h221
4h209
1d10296
curl · Pro · 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" \  -H "Authorization: Bearer YOUR_API_KEY"

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

지원 범위와 제한 상세

장중 환율 API

실시간 WebSocket

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

표는 신규 계정 한도입니다. 기존 계정은 이전 Basic 3 × 25 또는 이전 Pro 10 × 100(연결 수 × 연결당 통화쌍 수)을 유지합니다. 실제 한도는 authenticated 메시지에 표시됩니다.

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

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

실시간 WebSocket →

오류

REST: 모든 오류는 { result: "error", code, message } 형식입니다. 429에는 Retry-After가 포함되며 출처 장애 때 가짜 데이터로 대체하지 않습니다. HTTP 403 plan_gated에는 tier, interval이 포함되며, 이력 기간을 초과하면 history_days, earliest_allowed도 반환합니다. 업그레이드로 요청이 가능해지면 upgrade_plans, upgrade_offers (plan, loses), upgrade_url를 포함합니다.

json
{  "result": "error",  "code": "missing_parameter",  "message": "required parameter missing: symbols"}
json · 403 plan_gated
{  "result": "error",  "code": "plan_gated",  "message": "The 15m interval is not included in your plan.",  "tier": "plus_2026",  "interval": "15m",  "upgrade_plans": ["pro_2026"],  "upgrade_offers": [{ "plan": "pro_2026", "loses": [] }],  "upgrade_url": "https://exchangerate.dev/pricing?plan=pro_2026&source=api&reason=plan_gated"}
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"

통합 가이드: Python · JavaScript / Node.js · Google Sheets · Excel · Go · Swift · Zapier