JavaScript
ไม่จำเป็นต้องติดตั้ง SDK เพราะ fetch มีมาให้ในตัวอยู่แล้วทั้งบนเบราว์เซอร์, Node, Deno, Bun และ edge runtime อีกทั้งเปิด CORS ไว้และไม่มี API key ที่ต้องกังวลว่าจะรั่วไหล จึงเรียกใช้งาน API จากโค้ดฝั่งไคลเอนต์ได้โดยตรง
เริ่มต้นอย่างรวดเร็ว
ดึงอัตราแลกเปลี่ยนและคำนวณยอดเงิน:
const res = await fetch("https://api.frankfurter.dev/v2/rate/usd/eur");
const data = await res.json();
const total = 100 * data.rate; ผลลัพธ์ที่ได้เป็นออบเจกต์ชั้นเดียว: {"date": "2026-07-17", "base": "USD", "quote": "EUR", "rate": 0.8739} เนื่องจาก fetch ไม่โยนข้อผิดพลาดเมื่อเกิดสถานะผิดพลาดทาง HTTP จึงควรตรวจสอบ res.ok เสมอ หากรหัสสกุลเงินไม่ถูกต้อง API จะส่งคืนสถานะ 422 พร้อมข้อความ JSON
การจัดรูปแบบด้วย Intl
ไม่ต้องต่อสตริงใส่สัญลักษณ์สกุลเงินเอง เพราะ Intl.NumberFormat รู้จักสัญลักษณ์ ตำแหน่งการวาง และจำนวนทศนิยมของทุกสกุลเงินในทุกภาษา:
const res = await fetch("https://api.frankfurter.dev/v2/rate/usd/eur");
const { rate } = await res.json();
const eur = new Intl.NumberFormat("en", {
style: "currency",
currency: "EUR",
});
eur.format(100 * rate); // "€87.39"สัญลักษณ์และตำแหน่งทศนิยม
ไม่จำเป็นต้องเก็บตารางข้อมูลหน่วยย่อยหรือสัญลักษณ์สกุลเงินไว้ในโปรเจกต์เอง สามารถอ่านค่าจากตัวจัดรูปแบบได้โดยตรง:
const yen = new Intl.NumberFormat("en", {
style: "currency",
currency: "JPY",
});
yen.resolvedOptions().maximumFractionDigits; // 0, the yen has no subunits
yen.formatToParts(1).find((part) => part.type === "currency").value; // "¥"ดูสกุลเงินทั้งหมดที่ Frankfurter รองรับพร้อมรหัสและสัญลักษณ์
ดึงหลายสกุลเงินพร้อมกัน
/v2/rates ส่งคืนอาร์เรย์ชั้นเดียวที่มีหนึ่งแถวต่อหนึ่งสกุลเงินปลายทาง แปลงเป็นออบเจกต์สำหรับค้นหาค่าด้วย Object.fromEntries หากไม่ระบุ quotes จะได้รับข้อมูลทุกสกุลเงิน
const api = "https://api.frankfurter.dev";
const res = await fetch(`${api}/v2/rates?base=usd"es=eur,gbp,jpy`);
const rows = await res.json();
const rates = Object.fromEntries(rows.map((row) => [row.quote, row.rate]));
// { EUR: 0.8739, GBP: 0.74388, JPY: 162.33 }การล็อกแหล่งข้อมูลทางการ
โดยค่าเริ่มต้นคุณจะได้รับอัตราเฉลี่ยรวมจากทุกแหล่งข้อมูล เพิ่ม providers เพื่อล็อกหน่วยงานที่ต้องการ เช่น อัตราอ้างอิง ECB สำหรับภาษีมูลค่าเพิ่มในสหภาพยุโรป เมื่อกฎหมายกำหนดให้ใช้อัตราที่ประกาศโดยธนาคารกลางของเขตอำนาจศาลนั้น
const api = "https://api.frankfurter.dev";
const res = await fetch(`${api}/v2/rate/usd/eur?providers=ecb`);ดูแหล่งข้อมูลทั้งหมด แหล่งข้อมูลที่ล็อกไว้จะอัปเดตตามตารางเวลาประกาศของหน่วยงานนั้นเอง อัตราล่าสุดจึงอาจตามหลังอัตราเฉลี่ยรวมอยู่หนึ่งวัน
ทดลองใช้งานจริง
ทดลองสร้างคิวรีและดูผลลัพธ์ได้ทันทีบนเบราว์เซอร์ที่หน้า Playground