API kľúče
API kľúče sú základnou metódou autentifikácie voči Brevo API. Poskytujú jednoduchý a bezpečný spôsob, ako programovo pristupovať k Vášmu účtu.
Čo sú API kľúče?
API kľúče sú jedinečné identifikátory, ktoré autentifikujú Vašu aplikáciu pri odosielaní požiadaviek na Brevo API. Každý kľúč je 64-znakový reťazec, ktorý slúži zároveň ako identifikátor aj ako heslo.
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4Generovanie API kľúčov
Postup krok za krokom
- Prihláste sa do Brevo: otvorte svoj dashboard Brevo
- Prejdite do nastavení: kliknite na svoj profil → Settings
- Otvorte API kľúče: v ľavej ponuke vyberte „API Keys“
- Vytvorte nový kľúč: kliknite na „Generate a New API Key“
- Pomenujte kľúč: dajte mu výstižný názov (napríklad „Production App“, „Development Testing“)
- Nastavte oprávnenia: zvoľte primeranú úroveň prístupu
- Vygenerujte: kliknite na „Generate“ a kľúč si okamžite skopírujte
Konvencie pre pomenovanie API kľúčov
Používajte výstižné názvy, ktoré Vám pomôžu rozpoznať účel kľúča:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
Typy API kľúčov a oprávnenia
Kľúče s plným prístupom
Permissions: All API endpointsUse cases: Complete application integrationRisk level: High - protect carefullyKľúče len na čítanie
Permissions: GET requests onlyUse cases: Analytics, reporting, dashboardsRisk level: Low - limited accessKľúče len na odosielanie
Permissions: Transactional email sendingUse cases: Application notifications, receiptsRisk level: Medium - can send emailsKľúče na správu kontaktov
Permissions: Contact CRUD operationsUse cases: CRM integrations, form submissionsRisk level: Medium - data modificationPoužívanie API kľúčov
Autentifikácia cez hlavičku
Svoj API kľúč vložte do hlavičky api-key:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-key: YOUR_API_KEYUkážky kódu
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 requestapiInstance.getAccount() .then(data => console.log('Account info:', data)) .catch(error => console.error('Error:', error));Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
# Configure API keyconfiguration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
# Create API instanceapi_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
<?phprequire_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 keySibApiV3Sdk.configure do |config| config.api_key['api-key'] = 'YOUR_API_KEY'end
# Create API instanceapi_instance = SibApiV3Sdk::AccountApi.new
begin # Get account info result = api_instance.get_account puts resultrescue SibApiV3Sdk::ApiError => e puts "Exception when calling AccountApi->get_account: #{e}"endBezpečnosť API kľúčov
Bezpečné uloženie
Premenné prostredia (odporúčané)
# .env fileBREVO_API_KEY=xkeysib-your-api-key-here
# Usage in codeconst apiKey = process.env.BREVO_API_KEY;Cloudoví správcovia tajomstiev
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
Osvedčené bezpečnostné postupy
-
Nikdy nezapisujte kľúče priamo do kódu
// ❌ Bad - hardcodedconst apiKey = "xkeysib-a1b2c3d4...";// ✅ Good - environment variableconst apiKey = process.env.BREVO_API_KEY; -
Používajte iný kľúč pre každé prostredie
Production: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGDevelopment: BREVO_API_KEY_DEV -
Pravidelne kľúče obmieňajte
- Nastavte si v kalendári pripomienky na štvrťročnú výmenu
- Na výmenu kľúčov použite automatizačné nástroje
- Majte pripravený plán návratu k pôvodnému stavu
-
Sledujte používanie kľúčov
- Nastavte si upozornenia na neobvyklú aktivitu
- Každý mesiac skontrolujte logy o používaní kľúčov
- Sledujte, z akých geografických oblastí prichádzajú prístupy
Správa kľúčov
Sledovanie aktívnych kľúčov
Svoje aktívne kľúče sledujte v dashboarde:
Key Name: production-web-appCreated: 2024-01-15Last Used: 2024-01-20 14:30 UTCRequests Today: 1,247Status: ActivePostup pri výmene kľúča
- Vygenerujte nový kľúč: vytvorte náhradný kľúč
- Aktualizujte konfiguráciu: nasaďte aplikáciu s novým kľúčom
- Sledujte: overte, že nový kľúč funguje správne
- Prechodné obdobie: ponechajte starý kľúč aktívny 24 až 48 hodín
- Zrušte starý kľúč: predchádzajúci kľúč vymažte
Núdzové zrušenie kľúča
Ak došlo k úniku kľúča:
- Okamžité zrušenie: vymažte kľúč z dashboardu
- Vytvorte náhradu: ihneď vygenerujte nový kľúč
- Aktualizujte aplikácie: čo najskôr nasaďte nový kľúč
- Sledujte aktivitu: skontrolujte, či nedošlo k neoprávnenému použitiu
- Správa o incidente: bezpečnostný incident zdokumentujte
Limity požiadaviek a API kľúče
Každý API kľúč má vlastné limity požiadaviek:
- Plán Free: 300 požiadaviek za deň
- Plán Starter: 20 000 požiadaviek za deň
- Plán Business: 50 000 požiadaviek za deň
- Plán Enterprise: individuálne limity
Hlavičky s limitmi požiadaviek
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200Ošetrenie limitov požiadaviek
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; }}Riešenie problémov s API kľúčmi
Časté chybové hlásenia
Neplatný API kľúč (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Nedostatočné oprávnenia (403)
{ "code": "permission_denied", "message": "API key does not have required permissions"}Prekročený limit požiadaviek (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded for API key"}Kontrolný zoznam pri ladení
- Kľúč má správny formát (64 znakov)
- Žiadne medzery navyše ani skryté znaky
- Kľúč má potrebné oprávnenia
- Kľúč je aktívny (nebol zrušený)
- Nie ste nad limitom požiadaviek
- Používate správny endpoint API
- Hlavičky sú správne naformátované
Ďalšie kroky
- Zoznámte sa s OAuth 2.0
- Pochopte tokeny JWT
- Preskúmajte limity požiadaviek
- Vyskúšajte SDK