先行利用を申し込む

お名前とメールアドレスまたは電話番号をご入力ください。Tajo のアクセス方法をご案内します。

API キー

API キーは、Brevo API で認証するための主要な方法です。アカウントにプログラムからアクセスするための、シンプルで安全な手段を提供します。

API キーとは

API キーは、Brevo API へリクエストを送るときにアプリケーションを認証する一意の識別子です。各キーは 64 文字の文字列で、識別子とパスワードの両方の役割を果たします。

Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4

API キーを生成する

手順ガイド

  1. Brevo にログインする: Brevo ダッシュボードを開きます
  2. 設定へ移動する: プロフィール → 設定 の順にクリックします
  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-key ヘッダーに API キーを含めます。

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

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

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

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 キーのセキュリティ

安全な保管

環境変数(推奨)

Terminal window
# .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. キーをハードコードしない

    // ❌ 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 キー

API キーごとに個別のレート制限があります。

  • Free プラン: 1 日 300 リクエスト
  • Starter プラン: 1 日 20,000 リクエスト
  • Business プラン: 1 日 50,000 リクエスト
  • Enterprise プラン: 個別の上限

レート制限のヘッダー

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

レート制限への対処

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

API キーのトラブルシューティング

よくあるエラーメッセージ

無効な API キー (401)

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

権限不足 (403)

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

レート制限の超過 (429)

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

デバッグ用チェックリスト

  • キーの形式が正しい(64 文字)
  • 余分なスペースや不可視文字が入っていない
  • キーに必要な権限がある
  • キーが有効である(失効していない)
  • レート制限の範囲内である
  • 正しい API エンドポイントを使っている
  • ヘッダーの形式が正しい

次のステップ

先行利用を申し込む

お名前とメールアドレスまたは電話番号をご入力ください。Tajo のアクセス方法をご案内します。

自動判定
AIアシスタント

こんにちは!ドキュメントについて何でもお聞きください。