Beantrage frühzeitigen Zugang

Gib deinen Vornamen und eine E-Mail-Adresse oder Telefonnummer an. Wir melden uns mit den Details zum Tajo-Zugang bei dir.

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.

Example API key: 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

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

Nur-Lese-Schluessel

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

Nur-Sende-Schluessel

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

Kontaktverwaltungs-Schluessel

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

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('@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

API-Schluessel-Sicherheit

Sichere Speicherung

Umgebungsvariablen (Empfohlen)

Terminal window
# .env file
BREVO_API_KEY=xkeysib-your-api-key-here
# Usage in 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

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Unterschiedliche Schluessel pro Umgebung verwenden

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: 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:

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

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));
// Retry the request
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

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und eine E-Mail-Adresse oder Telefonnummer an. Wir melden uns mit den Details zum Tajo-Zugang bei dir.

automatische Erkennung
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.