Bed om tidlig adgang til Tajo

Indtast dit fornavn og en e-mailadresse eller et telefonnummer. Vi kontakter dig med oplysninger om adgang til Tajo.

API-nøgler

API-nøgler er den primære måde at autentificere sig mod Brevo API’et på. De giver en enkel og sikker adgang til din konto programmatisk.

Hvad er API-nøgler?

API-nøgler er unikke identifikatorer, der autentificerer din applikation, når den sender forespørgsler til Brevo API’et. Hver nøgle er en streng på 64 tegn, der fungerer både som identifikator og som adgangskode.

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

Sådan genererer du API-nøgler

Trin for trin

  1. Log ind på Brevo: Åbn dit Brevo-dashboard
  2. Gå til indstillinger: Klik på din profil → Settings
  3. Åbn API-nøgler: Vælg “API Keys” i menuen til venstre
  4. Opret ny nøgle: Klik på “Generate a New API Key”
  5. Navngiv din nøgle: Giv den et beskrivende navn (f.eks. “Production App”, “Development Testing”)
  6. Sæt rettigheder: Vælg det rette adgangsniveau
  7. Generér: Klik på “Generate”, og kopiér nøglen med det samme

Brug beskrivende navne, der gør det let at genkende nøglens formål:

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

Typer af API-nøgler og rettigheder

Nøgler med fuld adgang

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

Nøgler med læseadgang

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

Nøgler kun til afsendelse

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

Nøgler til kontaktstyring

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

Sådan bruger du API-nøgler

Autentificering via header

Send din API-nøgle med i api-key-headeren:

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

Kodeeksempler

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

Sikkerhed for API-nøgler

Sikker opbevaring

Miljøvariabler (anbefalet)

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

Cloud secret managers

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

Bedste praksis for sikkerhed

  1. Skriv aldrig nøgler direkte i koden

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Brug forskellige nøgler til hvert miljø

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: BREVO_API_KEY_DEV
  3. Rotér nøgler regelmæssigt

    • Sæt en påmindelse i kalenderen om rotation hvert kvartal
    • Brug automatiseringsværktøjer til nøglerotation
    • Hav en rollback-plan klar
  4. Hold øje med brugen af nøgler

    • Opsæt alarmer for usædvanlig aktivitet
    • Gennemgå logs over nøglebrug hver måned
    • Følg med i geografiske adgangsmønstre

Nøglestyring

Overvågning af aktive nøgler

Hold øje med dine aktive nøgler i dashboardet:

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

Sådan roterer du en nøgle

  1. Generér ny nøgle: Opret en afløsernøgle
  2. Opdatér konfigurationen: Deploy med den nye nøgle
  3. Overvåg: Sikr dig, at den nye nøgle virker korrekt
  4. Overgangsperiode: Hold den gamle nøgle aktiv i 24-48 timer
  5. Tilbagekald den gamle nøgle: Slet den forrige nøgle

Akut tilbagekaldelse af en nøgle

Hvis en nøgle bliver kompromitteret:

  1. Tilbagekald med det samme: Slet nøglen i dashboardet
  2. Opret en erstatning: Generér en ny nøgle med det samme
  3. Opdatér dine applikationer: Deploy med den nye nøgle hurtigst muligt
  4. Overvåg aktiviteten: Tjek for uautoriseret brug
  5. Hændelsesrapport: Dokumentér sikkerhedshændelsen

Rate limiting og API-nøgler

Hver API-nøgle har sine egne rate limits:

  • Free Plan: 300 forespørgsler/dag
  • Starter Plan: 20.000 forespørgsler/dag
  • Business Plan: 50.000 forespørgsler/dag
  • Enterprise Plan: individuelle grænser

Rate limit-headers

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

Sådan håndterer du 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;
}
}

Fejlfinding på API-nøgler

Almindelige fejlbeskeder

Ugyldig API-nøgle (401)

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

Utilstrækkelige rettigheder (403)

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

Rate limit overskredet (429)

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

Tjekliste til fejlfinding

  • Nøglen har det rigtige format (64 tegn)
  • Ingen ekstra mellemrum eller skjulte tegn
  • Nøglen har de nødvendige rettigheder
  • Nøglen er aktiv (ikke tilbagekaldt)
  • Du er inden for dine rate limits
  • Du bruger det rigtige API-endpoint
  • Headers er formateret korrekt

Næste skridt

Bed om tidlig adgang til Tajo

Indtast dit fornavn og en e-mailadresse eller et telefonnummer. Vi kontakter dig med oplysninger om adgang til Tajo.

automatisk genkendelse
AI-assistent

Hej! Spørg mig om dokumentationen.