Autentikasi dan batas
Endpoint data menerima percobaan anonim: 12 permintaan per menit dan 100 per jam untuk setiap IP. Key menggunakan kuota bulanan akun Anda.
Field yang menjelaskan kesegaran
`source` menunjukkan kelas sumber, `market_session` menunjukkan keadaan pasar, dan `data_updated_at` menunjukkan waktu observasi tertua yang menyumbang pada respons. Simpan ketiganya.
Endpoint
Deret intraday dan cakupan
/v1/timeseries mendukung 1m, 5m, 15m, 1h, 4h dan referensi harian 1d; tidak ada 2h. Pasangan silang SGD tanpa USD tidak mendukung 4h, tetapi USD/SGD dan kebalikannya didukung. Data pasar mulai dikumpulkan pada 2026-09-14. Retensi 1m adalah 30 hari; interval lebih besar tidak memiliki kedaluwarsa terjadwal. Retensi bukan jaminan kedalaman data yang sudah tersedia.
Pasangan silang historis memerlukan tick penutupan nyata dalam bucket UTC yang sama, dengan selisih maksimal 5 detik. effective_at memakai waktu observasi tertua. Celah tidak diisi; bucket yang masih terbuka dapat berubah. 1d menggunakan referensi harian untuk seluruh katalog. Tabel menghitung pasangan unik; kedua arah didukung.
| interval | Pasangan unik |
|---|---|
1m | 91 |
5m | 91 |
15m | 91 |
1h | 91 |
4h | 79 |
1d | 465 |
Rentang yang didukung tanpa observasi mengembalikan HTTP 200 dengan data: [], has_more: false dan next_cursor: null. Interval tidak dikenal menghasilkan unsupported_interval; pasangan di luar cakupan menghasilkan unsupported_pair_interval dan rejected_pairs (HTTP 400). Permintaan campuran ditolak seluruhnya.
AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR
WebSocket live
Hubungkan ke wss://api.exchangerate.dev/v1/stream dan kirim pesan auth dalam 10 detik. Simpan API key di server, bukan URL atau JavaScript publik. Koneksi anonim tidak didukung. Setelah authenticated, kirim subscribe. Stream memakai mata uang di bawah; silang memerlukan kedua observasi terbaru masih segar dan berselisih maksimal 5 detik. Nilai dapat berstatus unavailable atau stale. Setiap koneksi yang diterima memakai satu unit kuota bulanan.
Tabel menunjukkan batas akun baru. Akun lama tetap mendapat Free 1 × 5, Basic 3 × 25, atau Pro 10 × 100 (koneksi × pasangan per koneksi). Pesan authenticated menunjukkan batas efektif akun Anda.
AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR
| Paket | Koneksi serentak | Pasangan per koneksi |
|---|---|---|
| Free | 0 | 0 |
| Basic | 0 | 0 |
| Pro | 0 | 0 |
| Realtime | 10 | 100 |
Error
REST: Semua error memakai bentuk `{ result: "error", code, message }`. Respons 429 menyertakan `Retry-After`; kegagalan sumber tidak diganti dengan data buatan.
Gunakan dengan stack Anda
Permintaan yang sama berjalan dengan curl, Python, dan JavaScript. Key API tidak diperlukan untuk evaluasi.
Contoh respons
{
"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 adalah jumlah EUR untuk 1 USD. effective_at.EUR adalah waktu observasi dan sources.EUR menunjukkan kelas sumber. Nilai dan waktu hanya contoh.