---
title: "API ключове"
description: "Пълно ръководство за удостоверяване с API ключ в Brevo"
url: https://tajo.io/bg/docs/authentication/api-keys/
markdown: https://tajo.io/bg/docs/authentication/api-keys.md
lang: bg-BG
robots: noindex
---

Заявете ранен достъп

Въведете собственото си име и служебен имейл адрес. Ще ви изпратим връзка за потвърждение на заявката за достъп до Tajo.

# API ключове

API ключовете са основният метод за удостоверяване пред Brevo API. Те предоставят прост и сигурен начин за програмен достъп до Вашия акаунт.

## Какво представляват API ключовете?

API ключовете са уникални идентификатори, които удостоверяват Вашето приложение, когато то изпраща заявки към Brevo API. Всеки ключ е низ от 64 знака, който служи едновременно като идентификатор и като парола.

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

## Генериране на API ключове

### Ръководство стъпка по стъпка

1. **Влезте в Brevo**: Отворете [таблото на Brevo](https://app.brevo.com/)
2. **Отидете в настройките**: Кликнете върху профила си → Settings
3. **Отворете API ключовете**: Изберете „API Keys“ от лявото меню
4. **Създайте нов ключ**: Кликнете върху „Generate a New API Key“
5. **Наименувайте ключа**: Дайте му описателно име (напр. „Production App“, „Development Testing“)
6. **Задайте разрешения**: Изберете подходящото ниво на достъп
7. **Генерирайте**: Кликнете върху „Generate“ и копирайте ключа веднага

### Конвенции за наименуване на API ключове

Използвайте описателни имена, които Ви помагат да разпознаете предназначението на ключа:

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

## Видове API ключове и разрешения

### Ключове с пълен достъп

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

### Ключове само за четене

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

### Ключове само за изпращане

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

### Ключове за управление на контакти

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

## Използване на API ключове

### Удостоверяване чрез хедър

Включете Вашия API ключ в хедъра `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
```

### Примери с код

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

## Сигурност на API ключовете

### Сигурно съхранение

**Променливи на средата** (препоръчително)

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

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

**Облачни мениджъри на тайни**

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

### Добри практики за сигурност

1. **Никога не записвайте ключове твърдо в кода**

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

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

2. **Използвайте различни ключове за всяка среда**

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

3. **Ротирайте ключовете редовно**

   - Задайте напомняния в календара за тримесечна ротация
   - Използвайте инструменти за автоматизация на ротацията на ключове
   - Подгответе предварително план за връщане назад

4. **Наблюдавайте използването на ключовете**

   - Настройте известия за необичайна активност
   - Преглеждайте месечно журналите за използване на ключовете
   - Проследявайте географските модели на достъп

## Управление на ключовете

### Наблюдение на активните ключове

Наблюдавайте активните си ключове в таблото:

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

### Процес на ротация на ключове

1. **Генерирайте нов ключ**: Създайте заместващ ключ
2. **Обновете конфигурацията**: Внедрете с новия ключ
3. **Наблюдавайте**: Уверете се, че новият ключ работи правилно
4. **Гратисен период**: Оставете стария ключ активен за 24-48 часа
5. **Отменете стария ключ**: Изтрийте предишния ключ

### Аварийно отменяне на ключ

Ако ключ е компрометиран:

1. **Незабавно отменяне**: Изтрийте ключа от таблото
2. **Генерирайте заместващ**: Създайте нов ключ веднага
3. **Обновете приложенията**: Внедрете с новия ключ възможно най-бързо
4. **Наблюдавайте активността**: Проверете за неоторизирано използване
5. **Доклад за инцидента**: Документирайте инцидента със сигурността

## Ограничаване на скоростта и API ключове

Brevo ограничава заявките за всяка крайна точка поотделно, а не на ден. На общото ниво, което получава всеки план, `POST /v3/smtp/email` позволява 1 000 заявки в секунда, крайните точки `/v3/contacts` позволяват 10 в секунда и 36 000 на час, а крайните точки без собствен лимит позволяват 100 на час. Плановете Professional и Enterprise отключват по-високи нива. Вижте [Ограничения на заявките](https://tajo.io/bg/docs/rate-limits/) за пълната таблица.

### Хедъри за ограничението на скоростта

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

### Обработка на ограниченията на скоростта

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

## Отстраняване на проблеми с API ключове

### Често срещани съобщения за грешка

**Невалиден API ключ (401)**

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

**Недостатъчни разрешения (403)**

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

**Превишено ограничение на скоростта (429)**

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

### Списък за проверка при отстраняване на грешки

- Ключът е форматиран правилно (64 знака)
- Няма излишни интервали или скрити знаци
- Ключът има необходимите разрешения
- Ключът е активен (не е отменен)
- Ограниченията на скоростта не са превишени
- Използвате правилната API крайна точка
- Хедърите са форматирани правилно

## Следващи стъпки

- [Научете за OAuth 2.0](https://tajo.io/bg/docs/authentication/oauth/)
- Запознайте се с JWT токените
- [Разгледайте ограниченията на скоростта](https://tajo.io/bg/docs/rate-limits/)
- [Опитайте SDK](https://tajo.io/bg/docs/sdks-libraries/)
