---
title: "Κλειδιά API | Tajo"
description: "Πλήρης οδηγός για την πιστοποίηση με κλειδί API στο Brevo"
url: https://tajo.io/gr/docs/authentication/api-keys/
markdown: https://tajo.io/gr/docs/authentication/api-keys.md
lang: el-GR
author: "Set Noa"
author_url: https://tajo.io/gr/set-noa/
robots: noindex
---

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και την επαγγελματική διεύθυνση email. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

# Κλειδιά API

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

Τα κλειδιά API είναι η βασική μέθοδος πιστοποίησης στο API του Brevo. Προσφέρουν έναν απλό και ασφαλή τρόπο προγραμματιστικής πρόσβασης στον λογαριασμό σας.

## Τι είναι τα κλειδιά API;

Τα κλειδιά API είναι μοναδικά αναγνωριστικά που πιστοποιούν την εφαρμογή σας όταν στέλνει αιτήματα στο API του Brevo. Κάθε κλειδί είναι μια συμβολοσειρά 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;
```

**Υπηρεσίες διαχείρισης μυστικών στο cloud**

- 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 περιορίζει τα αιτήματα ανά endpoint, όχι ανά ημέρα. Στο γενικό επίπεδο, που ισχύει για κάθε πρόγραμμα, το `POST /v3/smtp/email` επιτρέπει 1.000 αιτήματα ανά δευτερόλεπτο, τα endpoints `/v3/contacts` επιτρέπουν 10 ανά δευτερόλεπτο και 36.000 ανά ώρα, και τα endpoints χωρίς δικό τους όριο επιτρέπουν 100 ανά ώρα. Τα προγράμματα Professional και Enterprise ξεκλειδώνουν υψηλότερα επίπεδα. Δείτε τα [Όρια ρυθμού](https://tajo.io/gr/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 χαρακτήρες)
- Δεν υπάρχουν επιπλέον κενά ή κρυφοί χαρακτήρες
- Το κλειδί έχει τα απαιτούμενα δικαιώματα
- Το κλειδί είναι ενεργό (δεν έχει ανακληθεί)
- Βρίσκεστε εντός των ορίων ρυθμού
- Χρησιμοποιείτε το σωστό endpoint του API
- Οι κεφαλίδες έχουν σωστή μορφή

## Επόμενα βήματα

- [Μάθετε για το OAuth 2.0](https://tajo.io/gr/docs/authentication/oauth/)
- Κατανοήστε τα tokens JWT
- [Εξερευνήστε τα όρια ρυθμού](https://tajo.io/gr/docs/rate-limits/)
- [Δοκιμάστε τα SDK](https://tajo.io/gr/docs/sdks-libraries/)
