Ansök om tidig åtkomst

Fyll i ditt förnamn och en e-postadress eller ett telefonnummer. Vi hör av oss med information om hur du får åtkomst till Tajo.

API-nycklar

API-nycklar är den primära metoden för att autentisera mot Brevo API. De ger ett enkelt och säkert sätt att komma åt ditt konto programmatiskt.

Vad är API-nycklar?

API-nycklar är unika identifierare som autentiserar din applikation när den skickar förfrågningar till Brevo API. Varje nyckel är en sträng på 64 tecken som fungerar både som identifierare och lösenord.

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

Skapa API-nycklar

Steg för steg

  1. Logga in på Brevo: Gå till din Brevo-dashboard
  2. Gå till inställningar: Klicka på din profil → Inställningar
  3. Öppna API-nycklar: Välj “API Keys” i vänstermenyn
  4. Skapa ny nyckel: Klicka på “Generate a New API Key”
  5. Namnge nyckeln: Ge den ett beskrivande namn (t.ex. “Production App”, “Development Testing”)
  6. Ange behörigheter: Välj lämplig åtkomstnivå
  7. Generera: Klicka på “Generate” och kopiera nyckeln direkt

Namnkonventioner för API-nycklar

Använd beskrivande namn som hjälper dig att se vad nyckeln används till:

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

Typer av API-nycklar och behörigheter

Nycklar med full åtkomst

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

Nycklar med endast läsbehörighet

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

Nycklar med endast sändbehörighet

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

Nycklar för kontakthantering

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

Använda API-nycklar

Autentisering via header

Skicka med din API-nyckel i headern api-key:

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

Kodexempel

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

Säkerhet för API-nycklar

Säker lagring

Miljövariabler (rekommenderas)

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

Molntjänster för hemligheter

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

Bästa praxis för säkerhet

  1. Hårdkoda aldrig nycklar

    // ❌ Bad - hardcoded
    const apiKey = "xkeysib-a1b2c3d4...";
    // ✅ Good - environment variable
    const apiKey = process.env.BREVO_API_KEY;
  2. Använd olika nycklar per miljö

    Production: BREVO_API_KEY_PROD
    Staging: BREVO_API_KEY_STAGING
    Development: BREVO_API_KEY_DEV
  3. Byt ut nycklar regelbundet

    • Lägg in kalenderpåminnelser för kvartalsvis byte
    • Använd automatiseringsverktyg för nyckelbyte
    • Ha en plan för att återgå om något går fel
  4. Följ upp hur nycklarna används

    • Sätt upp aviseringar för ovanlig aktivitet
    • Gå igenom loggarna över nyckelanvändning varje månad
    • Följ upp geografiska åtkomstmönster

Nyckelhantering

Övervakning av aktiva nycklar

Följ dina aktiva nycklar i dashboarden:

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

Process för nyckelbyte

  1. Generera ny nyckel: Skapa en ersättningsnyckel
  2. Uppdatera konfigurationen: Driftsätt med den nya nyckeln
  3. Kontrollera: Säkerställ att den nya nyckeln fungerar som den ska
  4. Övergångsperiod: Låt den gamla nyckeln vara aktiv i 24 till 48 timmar
  5. Återkalla den gamla nyckeln: Ta bort den tidigare nyckeln

Akut återkallning av nyckel

Om en nyckel har läckt:

  1. Återkalla omedelbart: Ta bort nyckeln i dashboarden
  2. Skapa en ersättare: Generera en ny nyckel direkt
  3. Uppdatera applikationerna: Driftsätt med den nya nyckeln så snabbt som möjligt
  4. Bevaka aktiviteten: Leta efter obehörig användning
  5. Incidentrapport: Dokumentera säkerhetsincidenten

Hastighetsbegränsningar och API-nycklar

Varje API-nyckel har egna hastighetsbegränsningar:

  • Free Plan: 300 förfrågningar/dag
  • Starter Plan: 20 000 förfrågningar/dag
  • Business Plan: 50 000 förfrågningar/dag
  • Enterprise Plan: anpassade gränser

Headers för hastighetsbegränsning

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

Hantera hastighetsbegränsningar

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

Felsökning av API-nycklar

Vanliga felmeddelanden

Ogiltig API-nyckel (401)

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

Otillräckliga behörigheter (403)

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

Hastighetsgränsen överskriden (429)

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

Checklista för felsökning

  • Nyckeln har rätt format (64 tecken)
  • Inga extra mellanslag eller dolda tecken
  • Nyckeln har de behörigheter som krävs
  • Nyckeln är aktiv (inte återkallad)
  • Du håller dig inom hastighetsgränserna
  • Du använder rätt API-endpoint
  • Headers är korrekt formaterade

Nästa steg

Ansök om tidig åtkomst

Fyll i ditt förnamn och en e-postadress eller ett telefonnummer. Vi hör av oss med information om hur du får åtkomst till Tajo.

automatisk identifiering
AI-assistent

Hej! Fråga mig om dokumentationen.