Vraag vroegtijdige toegang aan

Vul je voornaam en een e-mailadres of telefoonnummer in. We nemen daarna contact met je op en leggen uit hoe je toegang krijgt tot Tajo.

API-sleutels

API-sleutels zijn de belangrijkste manier om je te authenticeren bij de Brevo API. Ze geven je een simpele en veilige manier om programmatisch toegang te krijgen tot je account.

Wat zijn API-sleutels?

API-sleutels zijn unieke identificatiecodes die je applicatie authenticeren bij verzoeken aan de Brevo API. Elke sleutel is een tekenreeks van 64 tekens die tegelijk als identificatie en als wachtwoord dient.

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

API-sleutels aanmaken

Stap voor stap

  1. Log in bij Brevo: ga naar je Brevo-dashboard
  2. Ga naar de instellingen: klik op je profiel → Settings
  3. Open API Keys: kies “API Keys” in het linkermenu
  4. Maak een nieuwe sleutel: klik op “Generate a New API Key”
  5. Geef de sleutel een naam: kies een beschrijvende naam (bijvoorbeeld “Production App” of “Development Testing”)
  6. Stel de rechten in: kies het juiste toegangsniveau
  7. Genereer: klik op “Generate” en kopieer de sleutel meteen

Naamgeving van API-sleutels

Gebruik beschrijvende namen waaraan je het doel van de sleutel herkent:

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

Soorten API-sleutels en rechten

Sleutels met volledige toegang

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

Alleen-lezen sleutels

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

Sleutels alleen voor verzenden

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

Sleutels voor contactbeheer

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

API-sleutels gebruiken

Authenticatie via de header

Zet je API-sleutel in de 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

Codevoorbeelden

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

Beveiliging van API-sleutels

Veilig opslaan

Omgevingsvariabelen (aanbevolen)

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

Secret managers in de cloud

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

Aanbevolen beveiligingspraktijken

  1. Zet sleutels nooit hard in je code

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Gebruik per omgeving een aparte sleutel

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: BREVO_API_KEY_DEV
  3. Vervang sleutels regelmatig

    • Zet een herinnering in je agenda voor een rotatie per kwartaal
    • Gebruik automatiseringstools voor het roteren van sleutels
    • Houd een terugvalplan klaar
  4. Houd het sleutelgebruik in de gaten

    • Stel meldingen in voor ongebruikelijke activiteit
    • Bekijk de gebruikslogboeken maandelijks
    • Volg vanuit welke landen de toegang komt

Sleutelbeheer

Actieve sleutels volgen

Volg je actieve sleutels in het dashboard:

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

Zo roteer je een sleutel

  1. Maak een nieuwe sleutel: genereer een vervangende sleutel
  2. Werk de configuratie bij: rol de nieuwe sleutel uit
  3. Controleer: kijk of de nieuwe sleutel goed werkt
  4. Overgangsperiode: houd de oude sleutel 24 tot 48 uur actief
  5. Trek de oude sleutel in: verwijder de vorige sleutel

Sleutel intrekken bij een noodgeval

Is een sleutel gelekt:

  1. Trek hem meteen in: verwijder de sleutel in het dashboard
  2. Maak een vervanger: genereer direct een nieuwe sleutel
  3. Werk je applicaties bij: rol de nieuwe sleutel zo snel mogelijk uit
  4. Volg de activiteit: controleer op ongeoorloofd gebruik
  5. Leg het incident vast: documenteer het beveiligingsincident

Rate limits en API-sleutels

Elke API-sleutel heeft zijn eigen rate limits:

  • Free-abonnement: 300 verzoeken per dag
  • Starter-abonnement: 20.000 verzoeken per dag
  • Business-abonnement: 50.000 verzoeken per dag
  • Enterprise-abonnement: limieten op maat

Headers voor rate limits

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

Omgaan met rate limits

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;
}
}

Problemen met API-sleutels oplossen

Veelvoorkomende foutmeldingen

Ongeldige API-sleutel (401)

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

Onvoldoende rechten (403)

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

Limiet overschreden (429)

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

Checklist voor foutopsporing

  • De sleutel heeft de juiste opmaak (64 tekens)
  • Geen extra spaties of verborgen tekens
  • De sleutel heeft de vereiste rechten
  • De sleutel is actief (niet ingetrokken)
  • Je blijft binnen de rate limits
  • Je gebruikt het juiste API-endpoint
  • De headers zijn correct opgemaakt

Volgende stappen

Vraag vroegtijdige toegang aan

Vul je voornaam en een e-mailadres of telefoonnummer in. We nemen daarna contact met je op en leggen uit hoe je toegang krijgt tot Tajo.

automatische herkenning
AI-assistent

Hallo! Stel me vragen over de documentatie.