---
title: "API-nøkler | Tajo"
description: "Komplett guide til autentisering med API-nøkler mot Brevo"
url: https://tajo.io/no/docs/authentication/api-keys/
markdown: https://tajo.io/no/docs/authentication/api-keys.md
lang: no-NO
author: "Set Noa"
author_url: https://tajo.io/no/set-noa/
robots: noindex
---

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

[Set Noa](https://tajo.io/no/set-noa/)

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](https://app.brevo.com/) 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

### Navnekonvensjoner for API-nøkler

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`:

```http
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

```javascript
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

```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
<?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

```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)

```bash
# .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**

   ```javascript
   // ❌ 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](https://tajo.io/no/docs/rate-limits/) for hele tabellen.

### Headere for hastighetsbegrensning

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

### Håndtere hastighetsbegrensninger

```javascript
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)**

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

**Insufficient Permissions (403)**

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

**Rate Limit Exceeded (429)**

```json
{
  "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

- [Lær om OAuth 2.0](https://tajo.io/no/docs/authentication/oauth/)
- Forstå JWT-tokens
- [Utforsk hastighetsbegrensninger](https://tajo.io/no/docs/rate-limits/)
- [Prøv SDK-ene](https://tajo.io/no/docs/sdks-libraries/)
