Be om tidlig tilgang

Skriv inn fornavnet ditt og en e-postadresse eller et telefonnummer. Vi kontakter deg med informasjon 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

Hver API-nøkkel har sine egne hastighetsbegrensninger:

  • Free Plan: 300 forespørsler per dag
  • Starter Plan: 20 000 forespørsler per dag
  • Business Plan: 50 000 forespørsler per dag
  • Enterprise Plan: Egne grenser

Headere for hastighetsbegrensning

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

Håndtere hastighetsbegrensninger

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

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 fornavnet ditt og en e-postadresse eller et telefonnummer. Vi kontakter deg med informasjon om tilgang til Tajo.

automatisk gjenkjenning
AI-assistent

Hei! Spør meg om dokumentasjonen.