API کیز
API کیز Brevo API کے ساتھ تصدیق کا بنیادی طریقہ ہیں۔ یہ آپ کے اکاؤنٹ تک پروگرام کے ذریعے رسائی کا ایک سادہ اور محفوظ راستہ فراہم کرتی ہیں۔
API کیز کیا ہیں؟
API کیز منفرد شناخت کار ہیں جو Brevo API کو درخواستیں بھیجتے وقت آپ کی ایپلی کیشن کی تصدیق کرتی ہیں۔ ہر کی 64 حروف پر مشتمل ایک اسٹرنگ ہوتی ہے جو شناخت کار اور پاس ورڈ دونوں کا کام دیتی ہے۔
Example API key: xkeysib-a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456-Ab1Cd2Ef3Gh4API کیز بنانا
مرحلہ وار گائیڈ
- Brevo میں سائن ان کریں: اپنے Brevo ڈیش بورڈ تک رسائی حاصل کریں
- Settings پر جائیں: اپنی پروفائل → 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 Plan: 300 درخواستیں فی دن
- Starter Plan: 20,000 درخواستیں فی دن
- Business Plan: 50,000 درخواستیں فی دن
- Enterprise Plan: مخصوص حدود
ریٹ لمٹ ہیڈرز
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 ٹوکنز کو سمجھیں
- ریٹ حدود دیکھیں
- SDKs آزمائیں