Logo
Daftar Isi

Bab 13 · Developer API

Autentikasi & Batas Pemakaian

Cara membuat dan memakai API key (Bearer lsk_live_...), arti setiap error 401, batas 60 request/menit per key, dan praktik keamanan.

Membuat API key

API key dibuat sendiri dari dalam aplikasi, di menu Pengaturan → API Key (butuh izin setting:api-key).

  1. Klik Buat API Key.
  2. Isi Nama — deskripsi integrasinya, misalnya Integrasi Google Sheets atau Dashboard Keuangan Internal.
  3. Isi masa kedaluwarsa dalam hari, atau kosongkan kalau key berlaku selamanya.
  4. Key ditampilkan sekali saja setelah dibuat. Salin dan simpan segera.

Daftar key menampilkan kolom Nama, Dibuat Oleh, Dibuat, Terakhir Dipakai, Kedaluwarsa, dan Status — berguna untuk mengecek apakah sebuah integrasi masih hidup. Kolom Terakhir Dipakai diperbarui paling cepat sekali per menit, jadi wajar kalau tidak berubah di setiap request.

Lensiro tidak menyimpan key dalam bentuk aslinya — hanya hash SHA-256 dan 4 karakter terakhir untuk ditampilkan. Artinya tim Lensiro pun tidak bisa memberitahu key lama Anda. Kalau hilang: cabut, lalu buat baru.

Format dan cara pakai

Key berbentuk lsk_live_ diikuti 43 karakter acak:

lsk_live_7Kq2mZx9Rb4TnV1cWp8yLd6EhG3sJuA5oF0iQrXtN2M

Kirim di setiap request lewat header Authorization:

curl -H "Authorization: Bearer lsk_live_xxxxxxxx" \
  "https://app-anda.lensiro.com/api/v1/sales"

Tidak ada cara lain — key tidak bisa dikirim lewat query string atau cookie.

Apa yang bisa diakses sebuah key

  • Semua data yang diekspos API ini, di semua cabang. Belum ada scope maupun pembatasan per cabang di v1.
  • Hanya baca. Key tidak bisa mengubah apa pun.

Karena satu key berarti akses baca penuh, perlakukan key seperti password admin. Kalau Anda perlu memberi akses ke pihak ketiga yang hanya boleh melihat sebagian data, tunggu dukungan scoped key (lihat Batasan, Versi & Rencana) — jangan berikan key penuh.

Error autentikasi

HTTPerror.codeArtiYang harus dilakukan
401missing_api_keyHeader Authorization: Bearer ... tidak ada atau salah bentukPeriksa penulisan header, termasuk spasi setelah Bearer
401invalid_api_keyKey tidak dikenal, atau tidak diawali lsk_Pastikan key tersalin utuh, tanpa spasi atau baris baru
401revoked_api_keyKey sudah dicabut lewat menu API KeyBuat key baru
401expired_api_keyKey sudah melewati tanggal kedaluwarsaBuat key baru

Bentuk body error selalu sama:

{ "error": { "code": "invalid_api_key", "message": "The API key is not valid." } }

Batas pemakaian (rate limit)

Ada dua lapis batas, keduanya memakai jendela geser 60 detik:

BatasNilaiDihitung per
Per API key60 request / menitkey
Per alamat IP120 request / menitIP pemanggil

Batas per IP diperiksa sebelum key divalidasi, jadi request dengan key salah pun ikut terhitung.

Saat terlampaui, API membalas:

HTTP/1.1 429 Too Many Requests
Retry-After: 37
{ "error": { "code": "rate_limited", "message": "Rate limit exceeded (60 requests/minute)." } }

Cara menanganinya: tunggu sebanyak detik yang tertulis di Retry-After, lalu ulangi request yang sama. Jangan mencoba ulang dalam loop ketat.

Sebagai gambaran, menarik data tiap jam dari empat endpoint hanya memakai beberapa request per jam. Batas ini baru terasa saat backfill besar — di kasus itu, beri jeda sekitar satu detik antar halaman.

Praktik keamanan

  • Jangan pernah menaruh key di frontend, aplikasi mobile, repositori publik, atau spreadsheet yang dibagikan. Semua yang berjalan di browser bisa dibaca pengguna.
  • Simpan key sebagai environment variable atau di secret manager. Di Google Apps Script, pakai Script Properties, bukan konstanta di dalam kode.
  • Satu integrasi, satu key. Kalau nanti perlu dicabut, integrasi lain tidak ikut mati.
  • Cabut key yang sudah tidak dipakai. Kolom Terakhir Dipakai membantu menemukannya.
  • Rotasi berkala: buat key baru → pindahkan integrasi → pastikan berjalan → cabut key lama. Karena kedua key valid bersamaan, tidak ada waktu mati.
  • Kalau key diduga bocor, cabut sekarang lalu buat baru. Pencabutan langsung berlaku.

Solusi lengkap untuk toko optik modern dengan teknologi terdepan dan dukungan terbaik.

Fitur

  • Penjualan Optik
  • Faset & QC
  • Inventory & Gudang
  • Membership & After-Service
  • Multi-Cabang & Roles
  • Financial Statement

Solusi

Perusahaan

©Lensiro. All Rights Reserved.

Kebijakan Privasi