API-Schluessel
API-Schluessel sind die primaere Methode zur Authentifizierung bei der Brevo API. Sie bieten eine einfache und sichere Moeglichkeit, programmgesteuert auf Ihr Konto zuzugreifen.
Was sind API-Schluessel?
API-Schluessel sind eindeutige Kennungen, die Ihre Anwendung authentifizieren, wenn sie Anfragen an die Brevo API stellt. Jeder Schluessel ist eine 64 Zeichen lange Zeichenkette, die sowohl als Identifikator als auch als Passwort dient.
Beispiel API-Schluessel: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4API-Schluessel generieren
Schritt-fuer-Schritt-Anleitung
- Bei Brevo anmelden: Greifen Sie auf Ihr Brevo Dashboard zu
- Zu Einstellungen navigieren: Klicken Sie auf Ihr Profil -> Einstellungen
- API-Schluessel oeffnen: Waehlen Sie “API-Schluessel” aus dem linken Menue
- Neuen Schluessel erstellen: Klicken Sie auf “Neuen API-Schluessel generieren”
- Schluessel benennen: Geben Sie ihm einen aussagekraeftigen Namen (z.B. “Produktions-App”, “Entwicklungstest”)
- Berechtigungen festlegen: Waehlen Sie die passende Zugriffsebene
- Generieren: Klicken Sie auf “Generieren” und kopieren Sie den Schluessel sofort
Namenskonventionen fuer API-Schluessel
Verwenden Sie aussagekraeftige Namen, die den Zweck des Schluessels erkennen lassen:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
API-Schluessel-Typen und Berechtigungen
Vollzugriffs-Schluessel
Berechtigungen: Alle API-EndpunkteAnwendungsfaelle: Vollstaendige AnwendungsintegrationRisikostufe: Hoch - sorgfaeltig schuetzenNur-Lese-Schluessel
Berechtigungen: Nur GET-AnfragenAnwendungsfaelle: Analysen, Berichte, DashboardsRisikostufe: Niedrig - eingeschraenkter ZugriffNur-Sende-Schluessel
Berechtigungen: Transaktionale E-Mail-VersendungAnwendungsfaelle: Anwendungsbenachrichtigungen, QuittungenRisikostufe: Mittel - kann E-Mails sendenKontaktverwaltungs-Schluessel
Berechtigungen: Kontakt-CRUD-OperationenAnwendungsfaelle: CRM-Integrationen, FormularuebermittlungenRisikostufe: Mittel - DatenmodifikationAPI-Schluessel verwenden
Header-Authentifizierung
Fuegen Sie Ihren API-Schluessel im api-key-Header ein:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-key: YOUR_API_KEYCode-Beispiele
JavaScript/Node.js
const brevo = require('@brevo/api');
const apiInstance = new brevo.AccountApi();apiInstance.setApiKey(brevo.AccountApiApiKeys.apiKey, process.env.BREVO_API_KEY);
// Authentifizierte Anfrage ausfuehrenapiInstance.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
# API-Schluessel konfigurierenconfiguration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
# API-Instanz erstellenapi_instance = sib_api_v3_sdk.AccountApi(sib_api_v3_sdk.ApiClient(configuration))
try: # Kontoinformationen abrufen 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');
// API-Schluessel konfigurieren$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'YOUR_API_KEY');
// API-Instanz erstellen$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'
# API-Schluessel konfigurierenSibApiV3Sdk.configure do |config| config.api_key['api-key'] = 'YOUR_API_KEY'end
# API-Instanz erstellenapi_instance = SibApiV3Sdk::AccountApi.new
begin # Kontoinformationen abrufen result = api_instance.get_account puts resultrescue SibApiV3Sdk::ApiError => e puts "Exception when calling AccountApi->get_account: #{e}"endAPI-Schluessel-Sicherheit
Sichere Speicherung
Umgebungsvariablen (Empfohlen)
BREVO_API_KEY=xkeysib-your-api-key-here
# Verwendung im Codeconst apiKey = process.env.BREVO_API_KEY;Cloud Secret Manager
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
Sicherheits-Best-Practices
-
Schluessel niemals hartcodieren
// Schlecht - hartcodiertconst apiKey = "xkeysib-a1b2c3d4...";// Gut - Umgebungsvariableconst apiKey = process.env.BREVO_API_KEY; -
Unterschiedliche Schluessel pro Umgebung verwenden
Produktion: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGEntwicklung: BREVO_API_KEY_DEV -
Schluessel regelmaessig rotieren
- Kalendererinnerungen fuer vierteljaehrliche Rotation setzen
- Automatisierungstools fuer die Schluesselrotation verwenden
- Einen Rollback-Plan bereithalten
-
Schluesselnutzung ueberwachen
- Warnungen fuer ungewoehnliche Aktivitaeten einrichten
- Schluesselnutzungsprotokolle monatlich ueberpruefen
- Geografische Zugriffsmuster verfolgen
Schluesselverwaltung
Ueberwachung aktiver Schluessel
Ueberwachen Sie Ihre aktiven Schluessel im Dashboard:
Schluesselname: production-web-appErstellt: 2024-01-15Zuletzt verwendet: 2024-01-20 14:30 UTCAnfragen heute: 1.247Status: AktivSchluesselrotationsprozess
- Neuen Schluessel generieren: Ersatzschluessel erstellen
- Konfiguration aktualisieren: Mit neuem Schluessel bereitstellen
- Ueberwachen: Sicherstellen, dass der neue Schluessel korrekt funktioniert
- Uebergangszeit: Alten Schluessel 24-48 Stunden aktiv lassen
- Alten Schluessel widerrufen: Den vorherigen Schluessel loeschen
Notfall-Schluesselwiderruf
Wenn ein Schluessel kompromittiert wurde:
- Sofortiger Widerruf: Schluessel aus dem Dashboard loeschen
- Ersatz generieren: Sofort neuen Schluessel erstellen
- Anwendungen aktualisieren: Schnellstmoeglich mit neuem Schluessel bereitstellen
- Aktivitaet ueberwachen: Auf unbefugte Nutzung pruefen
- Vorfallbericht: Den Sicherheitsvorfall dokumentieren
Ratenbegrenzungen und API-Schluessel
Jeder API-Schluessel hat individuelle Ratenbegrenzungen:
- Free Plan: 300 Anfragen/Tag
- Starter Plan: 20.000 Anfragen/Tag
- Business Plan: 50.000 Anfragen/Tag
- Enterprise Plan: Individuelle Limits
Rate-Limit-Header
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200Ratenbegrenzungen behandeln
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));
// Anfrage wiederholen return makeApiCall(); }
return response.json(); } catch (error) { console.error('API call failed:', error); throw error; }}Fehlerbehebung bei API-Schluesseln
Haeufige Fehlermeldungen
Ungueltiger API-Schluessel (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Unzureichende Berechtigungen (403)
{ "code": "permission_denied", "message": "API key does not have required permissions"}Ratenlimit ueberschritten (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded for API key"}Checkliste zur Fehlersuche
- Schluessel ist korrekt formatiert (64 Zeichen)
- Keine zusaetzlichen Leerzeichen oder versteckten Zeichen
- Schluessel hat erforderliche Berechtigungen
- Schluessel ist aktiv (nicht widerrufen)
- Innerhalb der Ratenlimits
- Korrekter API-Endpunkt verwendet
- Header korrekt formatiert