---
title: "Ključi API | Tajo"
description: "Celovit vodnik po preverjanju pristnosti s ključi API v Brevu"
url: https://tajo.io/sl/docs/authentication/api-keys/
markdown: https://tajo.io/sl/docs/authentication/api-keys.md
lang: sl-SI
author: "Set Noa"
author_url: https://tajo.io/sl/set-noa/
robots: noindex
---

Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

# Ključi API

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

Ključi API so glavni način preverjanja pristnosti pri API platforme Brevo. Ponujajo preprost in varen način programskega dostopa do vašega računa.

## Kaj so ključi API?

Ključi API so enolični identifikatorji, ki preverijo pristnost vaše aplikacije pri pošiljanju zahtev API platforme Brevo. Vsak ključ je niz 64 znakov, ki hkrati služi kot identifikator in kot geslo.

```
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4
```

## Ustvarjanje ključev API

### Vodnik po korakih

1. **Prijavite se v Brevo**: odprite svojo [nadzorno ploščo Brevo](https://app.brevo.com/)
2. **Pomaknite se do nastavitev**: kliknite svoj profil → Nastavitve
3. **Odprite ključe API**: v levem meniju izberite „API Keys“
4. **Ustvarite nov ključ**: kliknite „Generate a New API Key“
5. **Poimenujte ključ**: dajte mu opisno ime (na primer „Production App“ ali „Development Testing“)
6. **Nastavite dovoljenja**: izberite ustrezno raven dostopa
7. **Ustvarite ključ**: kliknite „Generate“ in ključ takoj kopirajte

### Dogovori o poimenovanju ključev API

Uporabljajte opisna imena, ki vam pomagajo prepoznati namen ključa:

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

## Vrste in dovoljenja ključev API

### Ključi s polnim dostopom

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

### Ključi samo za branje

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

### Ključi samo za pošiljanje

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

### Ključi za upravljanje stikov

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

## Uporaba ključev API

### Preverjanje pristnosti prek glave

Svoj ključ API vključite v glavo `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
```

### Primeri kode

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

## Varnost ključev API

### Varno shranjevanje

**Spremenljivke okolja** (priporočeno)

```bash
# .env file
BREVO_API_KEY=xkeysib-your-api-key-here

# Usage in code
const apiKey = process.env.BREVO_API_KEY;
```

**Upravitelji skrivnosti v oblaku**

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

### Najboljše prakse za varnost

1. **Ključev nikoli ne vpisujte neposredno v kodo**

   ```javascript
   // ❌ Bad - hardcoded
   const apiKey = "xkeysib-a1b2c3d4...";

   // ✅ Good - environment variable
   const apiKey = process.env.BREVO_API_KEY;
   ```

2. **Za vsako okolje uporabite svoj ključ**

   ```
   Production:  BREVO_API_KEY_PROD
   Staging:     BREVO_API_KEY_STAGING
   Development: BREVO_API_KEY_DEV
   ```

3. **Redno menjajte ključe**

   - Nastavite koledarske opomnike za četrtletno menjavo
   - Za menjavo ključev uporabite orodja za avtomatizacijo
   - Pripravite načrt za vrnitev na prejšnje stanje

4. **Spremljajte uporabo ključev**

   - Nastavite opozorila za nenavadno dejavnost
   - Mesečno preglejte dnevnike uporabe ključev
   - Spremljajte geografske vzorce dostopa

## Upravljanje ključev

### Spremljanje aktivnih ključev

Svoje aktivne ključe spremljajte na nadzorni plošči:

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

### Postopek menjave ključev

1. **Ustvarite nov ključ**: pripravite nadomestni ključ
2. **Posodobite konfiguracijo**: uvedite različico z novim ključem
3. **Spremljajte**: preverite, ali novi ključ deluje pravilno
4. **Prehodno obdobje**: stari ključ pustite aktiven 24-48 ur
5. **Prekličite stari ključ**: izbrišite prejšnji ključ

### Nujni preklic ključa

Če je ključ ogrožen:

1. **Takojšen preklic**: izbrišite ključ z nadzorne plošče
2. **Ustvarite nadomestilo**: takoj ustvarite nov ključ
3. **Posodobite aplikacije**: čim prej jih uvedite z novim ključem
4. **Spremljajte dejavnost**: preverite, ali je prišlo do nepooblaščene uporabe
5. **Poročilo o incidentu**: dokumentirajte varnostni incident

## Omejevanje števila zahtev in ključi API

Brevo omejuje zahteve po končni točki, ne po dnevu. Na splošni ravni, ki jo dobi vsak paket, `POST /v3/smtp/email` dovoljuje 1.000 zahtev na sekundo, končne točke `/v3/contacts` 10 na sekundo in 36.000 na uro, končne točke brez lastne omejitve pa 100 na uro. Paketa Professional in Enterprise odklenete višje ravni. Celotno tabelo najdete v razdelku [Omejitve števila zahtev](https://tajo.io/sl/docs/rate-limits/).

### Glave z omejitvami števila zahtev

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

### Ravnanje z omejitvami števila zahtev

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

## Odpravljanje težav s ključi API

### Pogosta sporočila o napakah

**Neveljaven ključ API (401)**

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

**Nezadostna dovoljenja (403)**

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

**Presežena omejitev števila zahtev (429)**

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

### Kontrolni seznam za razhroščevanje

- Ključ je pravilno oblikovan (64 znakov)
- Ni odvečnih presledkov ali skritih znakov
- Ključ ima zahtevana dovoljenja
- Ključ je aktiven (ni preklican)
- Zahteve so znotraj omejitev števila zahtev
- Uporabljate pravo končno točko API
- Glave so pravilno oblikovane

## Naslednji koraki

- [Spoznajte OAuth 2.0](https://tajo.io/sl/docs/authentication/oauth/)
- Razumevanje žetonov JWT
- [Raziščite omejitve števila zahtev](https://tajo.io/sl/docs/rate-limits/)
- [Preizkusite SDK-je](https://tajo.io/sl/docs/sdks-libraries/)
