Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Kunci API

Kunci API adalah metode utama untuk melakukan autentikasi dengan API Brevo. Kunci API memberikan cara yang sederhana dan aman untuk mengakses akun Anda secara terprogram.

Apa itu kunci API?

Kunci API adalah pengenal unik yang mengautentikasi aplikasi Anda saat mengirim permintaan ke API Brevo. Setiap kunci berupa string 64 karakter yang berfungsi sekaligus sebagai pengenal dan kata sandi.

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

Membuat kunci API

Panduan langkah demi langkah

  1. Masuk ke Brevo: Buka dasbor Brevo Anda
  2. Buka Settings: Klik profil Anda → Settings
  3. Masuk ke API Keys: Pilih “API Keys” dari menu sebelah kiri
  4. Buat kunci baru: Klik “Generate a New API Key”
  5. Beri nama kunci Anda: Berikan nama yang deskriptif (misalnya “Production App”, “Development Testing”)
  6. Atur izin: Pilih tingkat akses yang sesuai
  7. Buat: Klik “Generate” lalu segera salin kuncinya

Konvensi penamaan kunci API

Gunakan nama deskriptif yang membantu Anda mengenali tujuan kunci tersebut:

  • production-web-app
  • staging-environment
  • mobile-app-ios
  • webhook-listener
  • data-sync-service

Jenis kunci API dan izinnya

Kunci akses penuh

Permissions: All API endpoints
Use cases: Complete application integration
Risk level: High - protect carefully

Kunci hanya baca

Permissions: GET requests only
Use cases: Analytics, reporting, dashboards
Risk level: Low - limited access

Kunci hanya kirim

Permissions: Transactional email sending
Use cases: Application notifications, receipts
Risk level: Medium - can send emails

Kunci pengelolaan kontak

Permissions: Contact CRUD operations
Use cases: CRM integrations, form submissions
Risk level: Medium - data modification

Menggunakan kunci API

Autentikasi melalui header

Sertakan kunci API Anda pada header api-key:

GET /v3/account HTTP/1.1
Host: api.brevo.com
Accept: application/json
Content-Type: application/json
api-key: YOUR_API_KEY

Contoh kode

JavaScript/Node.js

const brevo = require('@getbrevo/brevo');
const apiInstance = new brevo.AccountApi();
apiInstance.setApiKey(brevo.AccountApiApiKeys.apiKey, process.env.BREVO_API_KEY);
// Make authenticated request
apiInstance.getAccount()
.then(data => console.log('Account info:', data))
.catch(error => console.error('Error:', error));

Python

import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException
# Configure API key
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = 'YOUR_API_KEY'
# Create API instance
api_instance = sib_api_v3_sdk.AccountApi(sib_api_v3_sdk.ApiClient(configuration))
try:
# Get account info
api_response = api_instance.get_account()
print(api_response)
except ApiException as e:
print("Exception when calling AccountApi->get_account: %s\n" % e)

PHP

<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure API key
$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'YOUR_API_KEY');
// Create API instance
$apiInstance = new SendinBlue\Client\Api\AccountApi(
new GuzzleHttp\Client(),
$config
);
try {
$result = $apiInstance->getAccount();
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling AccountApi->getAccount: ', $e->getMessage(), PHP_EOL;
}
?>

Ruby

require 'sib-api-v3-sdk'
# Configure API key
SibApiV3Sdk.configure do |config|
config.api_key['api-key'] = 'YOUR_API_KEY'
end
# Create API instance
api_instance = SibApiV3Sdk::AccountApi.new
begin
# Get account info
result = api_instance.get_account
puts result
rescue SibApiV3Sdk::ApiError => e
puts "Exception when calling AccountApi->get_account: #{e}"
end

Keamanan kunci API

Penyimpanan yang aman

Variabel lingkungan (Direkomendasikan)

Terminal window
# .env file
BREVO_API_KEY=xkeysib-your-api-key-here
# Usage in code
const apiKey = process.env.BREVO_API_KEY;

Pengelola rahasia berbasis cloud

  • AWS Secrets Manager
  • Google Secret Manager
  • Azure Key Vault
  • HashiCorp Vault

Praktik terbaik keamanan

  1. Jangan pernah menuliskan kunci secara hardcode

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Gunakan kunci berbeda untuk setiap lingkungan

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: BREVO_API_KEY_DEV
  3. Rotasi kunci secara berkala

    • Pasang pengingat kalender untuk rotasi setiap kuartal
    • Gunakan alat otomatisasi untuk rotasi kunci
    • Siapkan rencana rollback
  4. Pantau penggunaan kunci

    • Siapkan peringatan untuk aktivitas yang tidak wajar
    • Tinjau log penggunaan kunci setiap bulan
    • Lacak pola akses berdasarkan geografi

Pengelolaan kunci

Pemantauan kunci aktif

Pantau kunci aktif Anda di dasbor:

Key Name: production-web-app
Created: 2024-01-15
Last Used: 2024-01-20 14:30 UTC
Requests Today: 1,247
Status: Active

Proses rotasi kunci

  1. Buat kunci baru: Buat kunci pengganti
  2. Perbarui konfigurasi: Terapkan dengan kunci baru
  3. Pantau: Pastikan kunci baru bekerja dengan benar
  4. Masa tenggang: Biarkan kunci lama tetap aktif selama 24 sampai 48 jam
  5. Cabut kunci lama: Hapus kunci sebelumnya

Pencabutan kunci darurat

Jika sebuah kunci disusupi:

  1. Pencabutan segera: Hapus kunci dari dasbor
  2. Buat pengganti: Segera buat kunci baru
  3. Perbarui aplikasi: Terapkan dengan kunci baru secepat mungkin
  4. Pantau aktivitas: Periksa adanya penggunaan tanpa izin
  5. Laporan insiden: Dokumentasikan insiden keamanan tersebut

Pembatasan laju dan kunci API

Setiap kunci API memiliki batas laju tersendiri:

  • Paket Free: 300 permintaan/hari
  • Paket Starter: 20.000 permintaan/hari
  • Paket Business: 50.000 permintaan/hari
  • Paket Enterprise: Batas khusus

Header pembatasan laju

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Menangani pembatasan laju

async function makeApiCall() {
try {
const response = await fetch(url, { headers });
if (response.status === 429) {
const resetTime = response.headers.get('X-RateLimit-Reset');
const waitTime = resetTime - Math.floor(Date.now() / 1000);
console.log(`Rate limited. Waiting ${waitTime} seconds`);
await new Promise(resolve => setTimeout(resolve, waitTime * 1000));
// Retry the request
return makeApiCall();
}
return response.json();
} catch (error) {
console.error('API call failed:', error);
throw error;
}
}

Pemecahan masalah kunci API

Pesan error yang umum

Kunci API tidak valid (401)

{
"code": "unauthorized",
"message": "Invalid API key provided"
}

Izin tidak mencukupi (403)

{
"code": "permission_denied",
"message": "API key does not have required permissions"
}

Batas laju terlampaui (429)

{
"code": "too_many_requests",
"message": "Rate limit exceeded for API key"
}

Daftar periksa debugging

  • Format kunci sudah benar (64 karakter)
  • Tidak ada spasi tambahan atau karakter tersembunyi
  • Kunci memiliki izin yang diperlukan
  • Kunci masih aktif (belum dicabut)
  • Masih dalam batas laju
  • Menggunakan endpoint API yang benar
  • Header diformat dengan benar

Langkah berikutnya

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.