Autentikasi (x-api-key)

Daftar Isi
  1. Header x-api-key
  2. Format & environment key
  3. Praktik keamanan
  4. Rotasi & revoke key

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.

Kuota bersifat per-user. Semua key milik satu pengguna berbagi kuota harian yang sama. Membuat banyak key tidak menambah kuota — key tambahan hanya untuk memisahkan lingkungan (mis. staging vs produksi) dan memudahkan rotasi.

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 dan awk_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
Propagasi perubahan. Identitas key di-cache hingga 5 menit (300 detik). Setelah rotate atau revoke, cache di-invalidasi otomatis sehingga perubahan berlaku hampir seketika. Jika Anda menurunkan plan ke Free, key tetap aktif dan tidak pernah dicabut otomatis.