เอกสาร /

API reference

ภาพรวม REST: authentication, limits, freshness fields, endpoints และ errors

Authentication และ limits

ทดลองใช้ API ข้อมูลแบบไม่ระบุตัวตนได้สูงสุด 12 คำขอต่อนาทีและ 100 คำขอต่อชั่วโมงต่อ IP คำขอที่ใช้คีย์จะนับตามโควตารายเดือนของบัญชี

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

ฟิลด์ที่อธิบายความสดของข้อมูล

`source` บอกประเภทแหล่งข้อมูล `market_session` บอกสถานะตลาด และ `data_updated_at` บอกเวลาของข้อมูลสังเกตการณ์ที่เก่าที่สุดซึ่งมีส่วนในผลลัพธ์ ควรเก็บทั้งสาม

Endpoints

GET /v1/latest[/{BASE}]อัตราปัจจุบันทั้งหมดหรือกรองด้วย symbols
GET /v1/{YYYY-MM-DD}[/{BASE}]ข้อมูลย้อนหลังของวันที่และสกุลฐาน
GET /v1/convert/{FROM}/{TO}[/{AMOUNT}] · POST /v1/convertแปลงจำนวนเงินแบบ GET หรือ batch POST
GET /v1/rate/{slug}อัตราคู่เดียวจาก slug
GET /v1/rangeอนุกรมรายวันพร้อม pagination และ download
GET /v1/currenciesรายการสกุลเงินที่รองรับ ไม่มี parameters
GET /v1/accountบัญชี แพ็กเกจ คีย์ปัจจุบัน และการใช้งานเดือนนี้

อนุกรมระหว่างวันและความครอบคลุม

/v1/timeseries รองรับ 1m, 5m, 15m, 1h, 4h และข้อมูลอ้างอิงรายวัน 1d แต่ไม่รองรับ 2h คู่ไขว้ SGD ที่ไม่มี USD ไม่รองรับ 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 แล้วส่ง auth ภายใน 10 วินาที เก็บ API key ไว้บนเซิร์ฟเวอร์ ห้ามใส่ใน 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 แบบสด

Errors

REST: ทุก error ใช้ `{ result: "error", code, message }` 429 มี `Retry-After` และเมื่อแหล่งข้อมูลล้มเหลวจะไม่มีข้อมูลจำลองมาแทน

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

API reference →

ใช้กับสแตกของคุณ

คำขอเดียวกันใช้ได้กับ curl, Python และ JavaScript ไม่ต้องใช้ API key เพื่อทดลอง

เปิดคู่มือเริ่มต้น
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 คือจำนวน EUR ต่อ 1 USD ส่วน effective_at.EUR คือเวลาที่สังเกต และ sources.EUR คือประเภทแหล่งข้อมูล ค่าและเวลาเป็นตัวอย่าง

เปิดการตอบกลับ JSONเอกสารอ้างอิง API