API Anahtarları
API anahtarları, Brevo API ile kimlik doğrulamanın başlıca yöntemidir. Hesabınıza programatik olarak erişmenin basit ve güvenli bir yolunu sunarlar.
API anahtarı nedir?
API anahtarları, Brevo API’ye istek gönderirken uygulamanızın kimliğini doğrulayan benzersiz tanımlayıcılardır. Her anahtar, hem tanımlayıcı hem de parola işlevi gören 64 karakterlik bir dizedir.
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4API anahtarı oluşturma
Adım adım rehber
- Brevo’ya giriş yapın: Brevo yönetim panelinize erişin
- Ayarlara gidin: Profilinize tıklayın → Settings
- API Keys bölümüne geçin: Sol menüden “API Keys” seçeneğini seçin
- Yeni anahtar oluşturun: “Generate a New API Key” düğmesine tıklayın
- Anahtarınızı adlandırın: Açıklayıcı bir ad verin (örneğin “Production App”, “Development Testing”)
- İzinleri belirleyin: Uygun erişim düzeyini seçin
- Oluşturun: “Generate” düğmesine tıklayın ve anahtarı hemen kopyalayın
API anahtarı adlandırma kuralları
Anahtarın amacını tanımanıza yardımcı olacak açıklayıcı adlar kullanın:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
API anahtarı türleri ve izinleri
Tam erişim anahtarları
Permissions: All API endpointsUse cases: Complete application integrationRisk level: High - protect carefullySalt okunur anahtarlar
Permissions: GET requests onlyUse cases: Analytics, reporting, dashboardsRisk level: Low - limited accessYalnızca gönderim anahtarları
Permissions: Transactional email sendingUse cases: Application notifications, receiptsRisk level: Medium - can send emailsKişi yönetimi anahtarları
Permissions: Contact CRUD operationsUse cases: CRM integrations, form submissionsRisk level: Medium - data modificationAPI anahtarlarını kullanma
Başlık ile kimlik doğrulama
API anahtarınızı api-key başlığına ekleyin:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-key: YOUR_API_KEYKod örnekleri
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 requestapiInstance.getAccount() .then(data => console.log('Account info:', data)) .catch(error => console.error('Error:', error));Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
# Configure API keyconfiguration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
# Create API instanceapi_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
<?phprequire_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 keySibApiV3Sdk.configure do |config| config.api_key['api-key'] = 'YOUR_API_KEY'end
# Create API instanceapi_instance = SibApiV3Sdk::AccountApi.new
begin # Get account info result = api_instance.get_account puts resultrescue SibApiV3Sdk::ApiError => e puts "Exception when calling AccountApi->get_account: #{e}"endAPI anahtarı güvenliği
Güvenli saklama
Ortam değişkenleri (önerilir)
# .env fileBREVO_API_KEY=xkeysib-your-api-key-here
# Usage in codeconst apiKey = process.env.BREVO_API_KEY;Bulut gizli anahtar yöneticileri
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
Güvenlik için en iyi uygulamalar
-
Anahtarları asla koda gömmeyin
// ❌ Bad - hardcodedconst apiKey = "xkeysib-a1b2c3d4...";// ✅ Good - environment variableconst apiKey = process.env.BREVO_API_KEY; -
Her ortam için farklı anahtar kullanın
Production: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGDevelopment: BREVO_API_KEY_DEV -
Anahtarları düzenli olarak değiştirin
- Üç ayda bir yenileme için takvim hatırlatıcıları kurun
- Anahtar yenileme için otomasyon araçları kullanın
- Geri alma planınızı hazır tutun
-
Anahtar kullanımını izleyin
- Olağan dışı etkinlikler için uyarılar tanımlayın
- Anahtar kullanım günlüklerini ayda bir inceleyin
- Coğrafi erişim örüntülerini takip edin
Anahtar yönetimi
Aktif anahtar izleme
Aktif anahtarlarınızı yönetim panelinden izleyin:
Key Name: production-web-appCreated: 2024-01-15Last Used: 2024-01-20 14:30 UTCRequests Today: 1,247Status: ActiveAnahtar yenileme süreci
- Yeni anahtar oluşturun: Yerine geçecek anahtarı üretin
- Yapılandırmayı güncelleyin: Yeni anahtarla dağıtım yapın
- İzleyin: Yeni anahtarın doğru çalıştığından emin olun
- Geçiş süresi tanıyın: Eski anahtarı 24-48 saat boyunca aktif tutun
- Eski anahtarı iptal edin: Önceki anahtarı silin
Acil durumda anahtar iptali
Bir anahtar ele geçirilirse:
- Anında iptal edin: Anahtarı yönetim panelinden silin
- Yenisini oluşturun: Hemen yeni bir anahtar üretin
- Uygulamaları güncelleyin: En kısa sürede yeni anahtarla dağıtım yapın
- Etkinliği izleyin: Yetkisiz kullanım olup olmadığını kontrol edin
- Olay raporu hazırlayın: Güvenlik olayını belgeleyin
Hız limitleri ve API anahtarları
Her API anahtarının kendine ait hız limitleri vardır:
- Ücretsiz plan: Günde 300 istek
- Starter planı: Günde 20.000 istek
- Business planı: Günde 50.000 istek
- Enterprise planı: Özel limitler
Hız limiti başlıkları
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200Hız limitlerini yönetme
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; }}API anahtarı sorunlarını giderme
Yaygın hata mesajları
Geçersiz API anahtarı (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Yetersiz izin (403)
{ "code": "permission_denied", "message": "API key does not have required permissions"}Hız limiti aşıldı (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded for API key"}Hata ayıklama kontrol listesi
- Anahtar doğru biçimde yazılmış (64 karakter)
- Fazladan boşluk veya gizli karakter yok
- Anahtar gerekli izinlere sahip
- Anahtar aktif (iptal edilmemiş)
- Hız limitleri aşılmamış
- Doğru API uç noktası kullanılıyor
- Başlıklar düzgün biçimlendirilmiş
Sonraki adımlar
- OAuth 2.0 hakkında bilgi edinin
- JWT token’larını anlayın
- Hız limitlerini keşfedin
- SDK’ları deneyin