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-Ab1Cd2Ef3Gh4

API-Schluessel generieren

Schritt-fuer-Schritt-Anleitung

  1. Bei Brevo anmelden: Greifen Sie auf Ihr Brevo Dashboard zu
  2. Zu Einstellungen navigieren: Klicken Sie auf Ihr Profil -> Einstellungen
  3. API-Schluessel oeffnen: Waehlen Sie “API-Schluessel” aus dem linken Menue
  4. Neuen Schluessel erstellen: Klicken Sie auf “Neuen API-Schluessel generieren”
  5. Schluessel benennen: Geben Sie ihm einen aussagekraeftigen Namen (z.B. “Produktions-App”, “Entwicklungstest”)
  6. Berechtigungen festlegen: Waehlen Sie die passende Zugriffsebene
  7. 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-app
  • staging-environment
  • mobile-app-ios
  • webhook-listener
  • data-sync-service

API-Schluessel-Typen und Berechtigungen

Vollzugriffs-Schluessel

Berechtigungen: Alle API-Endpunkte
Anwendungsfaelle: Vollstaendige Anwendungsintegration
Risikostufe: Hoch - sorgfaeltig schuetzen

Nur-Lese-Schluessel

Berechtigungen: Nur GET-Anfragen
Anwendungsfaelle: Analysen, Berichte, Dashboards
Risikostufe: Niedrig - eingeschraenkter Zugriff

Nur-Sende-Schluessel

Berechtigungen: Transaktionale E-Mail-Versendung
Anwendungsfaelle: Anwendungsbenachrichtigungen, Quittungen
Risikostufe: Mittel - kann E-Mails senden

Kontaktverwaltungs-Schluessel

Berechtigungen: Kontakt-CRUD-Operationen
Anwendungsfaelle: CRM-Integrationen, Formularuebermittlungen
Risikostufe: Mittel - Datenmodifikation

API-Schluessel verwenden

Header-Authentifizierung

Fuegen Sie Ihren API-Schluessel im api-key-Header ein:

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

Code-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 ausfuehren
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
# API-Schluessel konfigurieren
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = 'YOUR_API_KEY'
# API-Instanz erstellen
api_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

<?php
require_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 konfigurieren
SibApiV3Sdk.configure do |config|
config.api_key['api-key'] = 'YOUR_API_KEY'
end
# API-Instanz erstellen
api_instance = SibApiV3Sdk::AccountApi.new
begin
# Kontoinformationen abrufen
result = api_instance.get_account
puts result
rescue SibApiV3Sdk::ApiError => e
puts "Exception when calling AccountApi->get_account: #{e}"
end

API-Schluessel-Sicherheit

Sichere Speicherung

Umgebungsvariablen (Empfohlen)

.env-Datei
BREVO_API_KEY=xkeysib-your-api-key-here
# Verwendung im Code
const apiKey = process.env.BREVO_API_KEY;

Cloud Secret Manager

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

Sicherheits-Best-Practices

  1. Schluessel niemals hartcodieren

    // Schlecht - hartcodiert
    const apiKey = "xkeysib-a1b2c3d4...";
    // Gut - Umgebungsvariable
    const apiKey = process.env.BREVO_API_KEY;
  2. Unterschiedliche Schluessel pro Umgebung verwenden

    Produktion: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Entwicklung: BREVO_API_KEY_DEV
  3. Schluessel regelmaessig rotieren

    • Kalendererinnerungen fuer vierteljaehrliche Rotation setzen
    • Automatisierungstools fuer die Schluesselrotation verwenden
    • Einen Rollback-Plan bereithalten
  4. 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-app
Erstellt: 2024-01-15
Zuletzt verwendet: 2024-01-20 14:30 UTC
Anfragen heute: 1.247
Status: Aktiv

Schluesselrotationsprozess

  1. Neuen Schluessel generieren: Ersatzschluessel erstellen
  2. Konfiguration aktualisieren: Mit neuem Schluessel bereitstellen
  3. Ueberwachen: Sicherstellen, dass der neue Schluessel korrekt funktioniert
  4. Uebergangszeit: Alten Schluessel 24-48 Stunden aktiv lassen
  5. Alten Schluessel widerrufen: Den vorherigen Schluessel loeschen

Notfall-Schluesselwiderruf

Wenn ein Schluessel kompromittiert wurde:

  1. Sofortiger Widerruf: Schluessel aus dem Dashboard loeschen
  2. Ersatz generieren: Sofort neuen Schluessel erstellen
  3. Anwendungen aktualisieren: Schnellstmoeglich mit neuem Schluessel bereitstellen
  4. Aktivitaet ueberwachen: Auf unbefugte Nutzung pruefen
  5. 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 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Ratenbegrenzungen 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

Naechste Schritte

AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Kostenlos mit Brevo starten