API कीज़
Brevo API के साथ प्रमाणीकरण का प्राथमिक तरीका API कीज़ हैं. ये आपके अकाउंट तक प्रोग्राम के ज़रिए पहुँचने का एक आसान और सुरक्षित रास्ता देती हैं.
API कीज़ क्या हैं?
API कीज़ ऐसे विशिष्ट पहचानकर्ता हैं, जो Brevo API को रिक्वेस्ट भेजते समय आपके ऐप्लिकेशन को प्रमाणित करते हैं. हर की 64 अक्षरों की एक स्ट्रिंग है, जो पहचानकर्ता और पासवर्ड दोनों का काम करती है.
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4API कीज़ बनाना
चरण-दर-चरण गाइड
- Brevo में लॉग इन करें: अपने Brevo डैशबोर्ड पर जाएँ
- सेटिंग्स पर जाएँ: अपनी प्रोफ़ाइल पर क्लिक करें → Settings
- API Keys खोलें: बाईं ओर के मेन्यू से “API Keys” चुनें
- नई की बनाएँ: “Generate a New API Key” पर क्लिक करें
- की को नाम दें: इसे एक स्पष्ट नाम दें (उदाहरण: “Production App”, “Development Testing”)
- अनुमतियाँ तय करें: उपयुक्त एक्सेस स्तर चुनें
- जनरेट करें: “Generate” पर क्लिक करें और की को तुरंत कॉपी कर लें
API की नामकरण के तरीके
ऐसे स्पष्ट नाम इस्तेमाल करें, जिनसे की का मक़सद पहचानने में मदद मिले:
production-web-appstaging-environmentmobile-app-ioswebhook-listenerdata-sync-service
API की के प्रकार और अनुमतियाँ
फ़ुल एक्सेस कीज़
Permissions: All API endpointsUse cases: Complete application integrationRisk level: High - protect carefullyरीड-ओनली कीज़
Permissions: GET requests onlyUse cases: Analytics, reporting, dashboardsRisk level: Low - limited accessसेंड-ओनली कीज़
Permissions: Transactional email sendingUse cases: Application notifications, receiptsRisk level: Medium - can send emailsकॉन्टैक्ट प्रबंधन कीज़
Permissions: Contact CRUD operationsUse cases: CRM integrations, form submissionsRisk level: Medium - data modificationAPI कीज़ का उपयोग
हेडर प्रमाणीकरण
अपनी API की को api-key हेडर में शामिल करें:
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonContent-Type: application/jsonapi-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 requestapiInstance.getAccount() .then(data => console.log('Account info:', data)) .catch(error => console.error('Error:', error));Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
# Configure API keyconfiguration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
# Create API instanceapi_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
<?phprequire_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 keySibApiV3Sdk.configure do |config| config.api_key['api-key'] = 'YOUR_API_KEY'end
# Create API instanceapi_instance = SibApiV3Sdk::AccountApi.new
begin # Get account info result = api_instance.get_account puts resultrescue SibApiV3Sdk::ApiError => e puts "Exception when calling AccountApi->get_account: #{e}"endAPI की सुरक्षा
सुरक्षित भंडारण
एनवायरनमेंट वेरिएबल (सुझाया गया)
# .env fileBREVO_API_KEY=xkeysib-your-api-key-here
# Usage in codeconst apiKey = process.env.BREVO_API_KEY;क्लाउड सीक्रेट मैनेजर
- AWS Secrets Manager
- Google Secret Manager
- Azure Key Vault
- HashiCorp Vault
सुरक्षा के सर्वोत्तम तरीके
-
कीज़ को कभी हार्डकोड न करें
// ❌ Bad - hardcodedconst apiKey = "xkeysib-a1b2c3d4...";// ✅ Good - environment variableconst apiKey = process.env.BREVO_API_KEY; -
हर एनवायरनमेंट के लिए अलग की इस्तेमाल करें
Production: BREVO_API_KEY_PRODStaging: BREVO_API_KEY_STAGINGDevelopment: BREVO_API_KEY_DEV -
कीज़ को नियमित रूप से बदलें
- तिमाही रोटेशन के लिए कैलेंडर रिमाइंडर लगाएँ
- की रोटेशन के लिए ऑटोमेशन टूल इस्तेमाल करें
- रोलबैक की योजना तैयार रखें
-
की के उपयोग पर नज़र रखें
- असामान्य गतिविधि के लिए अलर्ट सेट अप करें
- हर महीने की उपयोग लॉग की समीक्षा करें
- भौगोलिक एक्सेस पैटर्न ट्रैक करें
की प्रबंधन
सक्रिय की की निगरानी
डैशबोर्ड में अपनी सक्रिय कीज़ पर नज़र रखें:
Key Name: production-web-appCreated: 2024-01-15Last Used: 2024-01-20 14:30 UTCRequests Today: 1,247Status: Activeकी रोटेशन की प्रक्रिया
- नई की बनाएँ: बदली जाने वाली की तैयार करें
- कॉन्फ़िगरेशन अपडेट करें: नई की के साथ डिप्लॉय करें
- निगरानी करें: सुनिश्चित करें कि नई की सही काम कर रही है
- ग्रेस पीरियड: पुरानी की को 24 से 48 घंटे तक सक्रिय रखें
- पुरानी की रद्द करें: पिछली की को हटा दें
आपात स्थिति में की रद्द करना
अगर कोई की असुरक्षित हो जाए:
- तुरंत रद्द करें: डैशबोर्ड से की हटाएँ
- विकल्प बनाएँ: तुरंत नई की बनाएँ
- ऐप्लिकेशन अपडेट करें: जल्द से जल्द नई की के साथ डिप्लॉय करें
- गतिविधि पर नज़र रखें: अनधिकृत उपयोग की जाँच करें
- घटना रिपोर्ट: सुरक्षा घटना का दस्तावेज़ीकरण करें
रेट लिमिटिंग और API कीज़
हर API की की अपनी अलग रेट लिमिट होती है:
- Free प्लान: 300 रिक्वेस्ट/दिन
- Starter प्लान: 20,000 रिक्वेस्ट/दिन
- Business प्लान: 50,000 रिक्वेस्ट/दिन
- Enterprise प्लान: कस्टम लिमिट
रेट लिमिट हेडर
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-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 एंडपॉइंट का उपयोग हो रहा है
- हेडर सही फ़ॉर्मैट में हैं
आगे के कदम
- OAuth 2.0 के बारे में जानें
- JWT टोकन को समझें
- रेट लिमिट देखें
- SDK आज़माएँ