Authentication
Setiap request ke AgenWebsite Rate API harus menyertakan API key Anda pada header x-api-key. Tidak ada skema OAuth atau bearer token — cukup satu header. Base URL: https://api.agenwebsite.com/v1.
Header x-api-key
Sertakan header berikut pada semua endpoint yang membutuhkan autentikasi (/v1/rates, /v1/couriers, /v1/locations/search, /v1/usage):
cURL — header wajib
curl https://api.agenwebsite.com/v1/usage \
-H "x-api-key: awk_live_a1b2c3d4e5f60718293a4b5c6d7e8f90"
Jika header hilang, tidak valid, atau merujuk key yang sudah dicabut, API mengembalikan HTTP 401 dengan kode error unauthorized:
Response 401
{
"success": false,
"error": {
"code": "unauthorized",
"message": "API key tidak valid atau sudah dicabut.",
"request_id": "req_2b7f0a"
}
}
Format & environment key
API key AgenWebsite memakai prefix yang menandai environment-nya. Bagian rahasia adalah 32 karakter heksadesimal.
| Environment | Format | Base URL |
|---|---|---|
| Live (produksi) | awk_live_<32 hex> |
https://api.agenwebsite.com/v1 |
| Test (sandbox) | awk_test_<32 hex> |
https://api-sandbox.agenwebsite.com/v1 |
Di sisi server, key disimpan sebagai hash SHA-256 dari secret penuh, ditambah key_prefix (mis. awk_live_a1b2c3d4) dan 4 karakter terakhir untuk tampilan bertopeng. AgenWebsite tidak pernah menyimpan secret dalam bentuk plaintext — karena itu secret hanya bisa dilihat sekali saat pembuatan.
Praktik keamanan
Perlakukan API key seperti password. Jika bocor, siapa pun bisa menghabiskan kuota Anda atau membebani plan berbayar Anda.
- Jangan hardcode di frontend. Key harus dipanggil dari sisi server (backend/serverless), bukan dari JavaScript browser atau aplikasi mobile yang bisa dibongkar.
- Simpan di environment variable atau secret manager — jangan commit ke Git.
- Pisahkan key per lingkungan. Gunakan key
awk_test_untuk pengembangan danawk_live_untuk produksi. - Batas jumlah key aktif per plan: Free 2, Pro 5, Max 20.
Contoh — key dari environment variable
# .env (jangan commit)
AGENWEBSITE_API_KEY=awk_live_a1b2c3d4e5f60718293a4b5c6d7e8f90
# Node.js
const res = await fetch("https://api.agenwebsite.com/v1/couriers", {
headers: { "x-api-key": process.env.AGENWEBSITE_API_KEY },
});
Rotasi & revoke key
Pengelolaan key dilakukan dari My Account → API (/my-account/developer-api/), bukan lewat API. Tersedia empat aksi:
| Aksi | Efek |
|---|---|
| Generate | Membuat key baru dan menampilkan secret satu kali |
| Rotate | Menerbitkan secret baru sekaligus menonaktifkan yang lama — pakai saat key diduga bocor |
| Revoke | Menonaktifkan key secara permanen; request berikutnya membalas 401 unauthorized |
| Delete | Menghapus key dari daftar setelah dicabut |