Error Codes
Semua error AyoSend menggunakan format JSON yang konsisten.
Format Error
{
"statusCode": 400,
"message": "Domain tidak diverifikasi",
"error": "Bad Request"
}
HTTP Status Codes
| Status | Keterangan |
|---|
| 200 | Berhasil |
| 201 | Berhasil dibuat |
| 400 | Request tidak valid — cek validasi field |
| 401 | Tidak terautentikasi — API key salah atau tidak ada |
| 402 | Kredit tidak cukup — silakan top up |
| 403 | Tidak punya akses ke resource ini |
| 404 | Resource tidak ditemukan |
| 429 | Terlalu banyak request — tunggu sebentar |
| 500 | Error internal server — hubungi support |
Contoh Penanganan Error
const res = await fetch('https://api.ayosend.id/v1/emails', { ... })
if (!res.ok) {
const error = await res.json()
if (res.status === 402) {
// Kredit habis — arahkan ke halaman top up
console.error('Kredit tidak cukup:', error.message)
} else if (res.status === 429) {
// Rate limit — tunggu dan coba lagi
const retryAfter = res.headers.get('Retry-After') || '60'
await new Promise(r => setTimeout(r, parseInt(retryAfter) * 1000))
} else {
throw new Error(error.message)
}
}
Rate Limiting
| Endpoint | Limit |
|---|
| POST /v1/emails | 100 request/menit |
| GET /v1/emails | 300 request/menit |
| Semua endpoint lain | 60 request/menit |