Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

API-nøkler

API-nøkler er den primære måten å autentisere seg mot Brevo API på. De gir en enkel og sikker måte å nå kontoen din programmatisk.

Hva er API-nøkler?

API-nøkler er unike identifikatorer som autentiserer applikasjonen din når den sender forespørsler til Brevo API. Hver nøkkel er en streng på 64 tegn som fungerer både som identifikator og som passord.

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

Generere API-nøkler

Steg for steg

  1. Logg inn i Brevo: Gå til Brevo-dashboardet ditt
  2. Gå til innstillinger: Klikk på profilen din → Settings
  3. Åpne API-nøkler: Velg “API Keys” i menyen til venstre
  4. Opprett ny nøkkel: Klikk “Generate a New API Key”
  5. Gi nøkkelen et navn: Velg et beskrivende navn (for eksempel “Production App” eller “Development Testing”)
  6. Sett rettigheter: Velg riktig tilgangsnivå
  7. Generer: Klikk “Generate” og kopier nøkkelen med én gang

Bruk beskrivende navn som gjør det lett å se hva nøkkelen brukes til:

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

Typer API-nøkler og rettigheter

Nøkler med full tilgang

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

Nøkler med kun lesetilgang

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

Nøkler som kun kan sende

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

Nøkler for kontakthåndtering

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

Bruke API-nøkler

Autentisering via header

Send API-nøkkelen din i headeren api-key:

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

Sikkerhet for API-nøkler

Trygg lagring

Miljøvariabler (anbefalt)

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

Hemmelighetstjenester i skyen

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

Beste praksis for sikkerhet

  1. Legg aldri nøkler rett inn i koden

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Bruk ulike nøkler per miljø

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: BREVO_API_KEY_DEV
  3. Bytt ut nøkler jevnlig

    • Legg inn kalenderpåminnelser om utskifting hvert kvartal
    • Bruk automatiseringsverktøy til å bytte nøkler
    • Ha en plan for å rulle tilbake
  4. Overvåk bruken av nøkler

    • Sett opp varsler for uvanlig aktivitet
    • Gå gjennom bruksloggene månedlig
    • Følg med på hvor i verden tilgangen kommer fra

Nøkkeladministrasjon

Overvåking av aktive nøkler

Følg med på de aktive nøklene dine 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

Slik bytter du ut en nøkkel

  1. Generer ny nøkkel: Opprett en erstatningsnøkkel
  2. Oppdater konfigurasjonen: Rull ut med den nye nøkkelen
  3. Overvåk: Bekreft at den nye nøkkelen fungerer som den skal
  4. Overgangsperiode: La den gamle nøkkelen være aktiv i 24 til 48 timer
  5. Trekk tilbake den gamle nøkkelen: Slett den forrige nøkkelen

Hastetilbaketrekking av nøkler

Hvis en nøkkel er kompromittert:

  1. Trekk tilbake med én gang: Slett nøkkelen fra dashboardet
  2. Lag en erstatning: Opprett en ny nøkkel umiddelbart
  3. Oppdater applikasjonene: Rull ut med den nye nøkkelen så raskt som mulig
  4. Overvåk aktiviteten: Se etter uautorisert bruk
  5. Hendelsesrapport: Dokumenter sikkerhetshendelsen

Hastighetsbegrensning og API-nøkler

Brevo begrenser forespørsler per endepunkt, ikke per dag. På det generelle nivået, som alle abonnementer får, tillater POST /v3/smtp/email 1 000 forespørsler per sekund, /v3/contacts-endepunktene tillater 10 per sekund og 36 000 per time, og endepunkter uten egen grense tillater 100 per time. Professional- og Enterprise-abonnementer låser opp høyere nivåer. Se Hastighetsbegrensninger for hele tabellen.

Headere for hastighetsbegrensning

HTTP/1.1 200 OK
x-sib-ratelimit-limit: 1000
x-sib-ratelimit-remaining: 750
x-sib-ratelimit-reset: 1

Håndtere hastighetsbegrensninger

async function makeApiCall() {
try {
const response = await fetch(url, { headers });
if (response.status === 429) {
// Seconds until the window resets
const waitTime = Number(response.headers.get('x-sib-ratelimit-reset') || 1);
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;
}
}

Feilsøking av API-nøkler

Vanlige feilmeldinger

Invalid API Key (401)

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

Insufficient Permissions (403)

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

Rate Limit Exceeded (429)

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

Sjekkliste for feilsøking

  • Nøkkelen har riktig format (64 tegn)
  • Ingen ekstra mellomrom eller skjulte tegn
  • Nøkkelen har de rettighetene som kreves
  • Nøkkelen er aktiv (ikke trukket tilbake)
  • Du er innenfor hastighetsbegrensningene
  • Du bruker riktig API-endepunkt
  • Headerne er riktig formatert

Neste steg

Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

AI-assistent

Hei! Spør meg om dokumentasjonen.

Denne siden som Markdown: api-keys.md

Laster inn Markdown …
Åpne i Claude Åpne i ChatGPT