شروعاتگائیڈ
API کلید محفوظ طریقے سے اسٹور کریں: env variable، .gitignore، لیک فکس
اپنی CheapTokens کلید کو کوڈ اور git سے باہر رکھیں: ماحولیاتی متغیر سیٹ کریں، .env کو .gitignore میں شامل کریں، اور جانیں کہ کلید لیک ہونے پر کیا کرنا ہے۔

اس صفحہ پر
کلید کو ماحولیاتی متغیر (environment variable) میں رکھیں، اپنے کوڈ میں نہیں، اور کسی بھی .env فائل کو .gitignore میں ایک لائن کے ذریعے git سے باہر رکھیں۔ اگر کلید پہلے ہی کسی عوامی جگہ پر پہنچ چکی ہے، تو پہلے کلید کو سنبھالیں اور بعد میں صفائی کریں: جب تک کلید آپ کے کوڈ اور ٹولز میں موجود ہے، git ہسٹری صاف کرنا کچھ ٹھیک نہیں کرتا۔
بس یہی پوری بات ہے۔ یہ گائیڈ عملی ورژن ہے (بنیادی باتیں What is an API key میں ہیں): تین کمانڈز، ایک کام کرنے والی درخواست، اور برے دن کے لیے ایک مختصر منصوبہ۔
کلید آپ کے کوڈ میں کیوں نہیں ہونی چاہیے#
API کلید ایک پاس ورڈ ہے جو آپ کے پیسے خرچ کرتا ہے۔ جو بھی اسے رکھتا ہے وہ آپ کے بیلنس پر درخواستیں بھیج سکتا ہے، اور سروس انہیں آپ سے الگ نہیں پہچان سکتی۔
عام طور پر غلطی بورنگ طریقے سے ہوتی ہے۔ آپ پہلی درخواست چلانے کے لیے کلید کو کسی اسکرپٹ میں پیسٹ کرتے ہیں، اسکرپٹ چل جاتا ہے، آپ git push کرتے ہیں، اور ریپوزٹری عوامی ہو جاتی ہے۔ یا آپ اپنے ساتھی کو اپنی کنفگ فائل بھیج دیتے ہیں۔ یا آپ کسی ایرر کا اسکرین شاٹ لیتے ہیں جس کے کونے میں کلید نظر آ رہی ہوتی ہے۔ ہر بار نتیجہ ایک ہی ہوتا ہے۔
GitHub اس پیٹرن کو اچھی طرح جانتا ہے۔ اس کی secret scanning (GitHub docs، 29 اکتوبر 2026 کو چیک کیا گیا) تمام برانچز پر پوری Git ہسٹری میں ہارڈ کوڈڈ کریڈنشلز تلاش کرتی ہے، اور ساتھ ہی issues، pull requests، discussions، wikis اور secret gists میں بھی، اور کوئی چیز ملنے پر الرٹ جاری کرتی ہے۔ یعنی اگلی commit میں لائن ڈیلیٹ کرنے سے کچھ نہیں بدلتا: پرانی commit میں وہ اب بھی موجود ہے۔
یہاں وہی اسکرپٹ پہلے اور بعد میں ہے۔
موازنہ کریں
وہی اسکرپٹ، کلید کوڈ سے باہر منتقل
کوڈ میں کلید
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="<your-key>", # pasted here: ends up in git
)ماحولیاتی متغیر سے کلید
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)دوسرا ورژن جیسا ہے ویسا ہی GitHub، چیٹ یا کوڈ ریویو میں جا سکتا ہے۔ کلید آپ کی مشین پر، فائل سے باہر رہتی ہے۔
مرحلہ 1: کلید کو ماحولیاتی متغیر میں رکھیں#
ماحولیاتی متغیر ایک نامزد ویلیو ہے جو آپ کا ٹرمینل ہر شروع کیے جانے والے پروگرام کو دیتا ہے۔ اسکرپٹ CHEAPTOKENS_ کو نام سے مانگتا ہے اور کبھی نہیں دیکھتا کہ یہ کہاں سے آیا۔
macOS اور Linux پر:
export CHEAPTOKENS_API_KEY="<your-key>"Windows PowerShell پر:
setx CHEAPTOKENS_API_KEY "<your-key>"دو تفصیلیں لوگوں کو الجھا دیتی ہیں۔ export صرف اسی ٹرمینل ونڈو کے لیے رہتا ہے، اس لیے اسے برقرار رکھنے کے لیے لائن کو اپنے شیل پروفائل (~/.zshrc یا ~/.bashrc) میں شامل کریں۔ اور setx اس ونڈو کو تبدیل نہیں کرتا جس میں آپ نے ٹائپ کیا: ٹیسٹ کرنے سے پہلے نیا ٹرمینل کھولیں۔
اب ایک مکمل درخواست۔ یہ OpenAI-compatible endpoint، https:/، اور DeepSeek-V4-Flash کو اس کی مکمل id کے ساتھ استعمال کرتی ہے (deepseek-؛ ids CheapTokens docs سے لیں، کیونکہ نام پرووائیڈرز کے درمیان مختلف ہوتے ہیں):
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=[{"role": "user", "content": "Say hi in five words."}],
)
print(resp.choices[0].message.content)
print(resp.usage)ایک مختصر سلام تقریباً 20 ٹوکن اندر اور 20 باہر کی درخواست ہے، جو موجودہ قیمتوں پر $0.0000023 ہے (مکمل فہرست pricing page پر ہے)۔ اگر آپ نے ابھی تک پہلی درخواست نہیں بھیجی، تو Your first API request with CheapTokens اسے صفر سے سمجھاتا ہے۔
ماڈل کا جواب choices[0]. میں واپس آتا ہے، اور usage اس کے گنے گئے ٹوکن دکھاتا ہے۔ کلید فائل میں کبھی ظاہر نہیں ہوتی۔

مرحلہ 2: .env فائل استعمال کریں بغیر اسے commit کیے#
ہر نئی ونڈو میں export ٹائپ کرنا بورنگ ہو جاتا ہے۔ ایک .env فائل ویلیو کو ایک جگہ، پروجیکٹ کے ساتھ رکھتی ہے:
CHEAPTOKENS_API_KEY=<your-key>Python اسے python-dotenv کے ساتھ پڑھتا ہے (pip install python-):
from dotenv import load_dotenv
load_dotenv() # fills os.environ from .envفائل صرف اس وقت محفوظ ہے جب git اسے کبھی نہ دیکھے۔ پہلی commit سے پہلے اسے .gitignore میں شامل کریں:
echo ".env" >> .gitignore
git check-ignore -v .envاگر سب کچھ ٹھیک ہے، تو دوسری کمانڈ . جیسا کچھ پرنٹ کرتی ہے: git آپ کو بتاتا ہے کہ کون سا قاعدہ فائل کو نظر انداز کر رہا ہے۔ اگر یہ کچھ پرنٹ نہیں کرتی، تو قاعدہ کام نہیں کر رہا۔ Windows پر، ایڈیٹر میں .gitignore بنائیں جس میں .env کی لائن ہو، یا Add- استعمال کریں: PowerShell کا >> UTF-16 لکھ سکتا ہے، جسے git نظر انداز کر سکتا ہے۔
ایک جال: .gitignore صرف ان فائلوں پر اثر انداز ہوتا ہے جنہیں git ابھی ٹریک نہیں کر رہا۔ اگر .env پہلے ہی ایک بار commit ہو چکی ہے، تو git rm - چلائیں تاکہ git اسے ٹریک کرنا بند کر دے، اور اس میں موجود کلید کو exposed سمجھیں (نیچے مزید)۔ ایک صاف عادت یہ ہے کہ ویلیو کی بجائے متغیر کے نام اور placeholder کے ساتھ .env.example commit کریں، تاکہ ساتھی کو معلوم ہو کہ کیا سیٹ کرنا ہے۔
اگر کلید لیک ہو گئی: کیا کرنا ہے، ترتیب سے#
ہو سکتا ہے کلید کسی عوامی ریپو میں چلی گئی ہو، ہو سکتا ہے کسی اسکرین شاٹ میں بیٹھی ہو، ہو سکتا ہے آپ نے پوری کنفگ کسی فورم تھریڈ میں پیسٹ کر دی ہو۔ ترتیب کسی بھی ایک قدم کی رفتار سے زیادہ اہم ہے۔
GitHub کی اپنی رہنمائی (وہی صفحہ، 29 اکتوبر 2026 کو چیک کیا گیا) یہ ہے کہ کریڈنشل کو فوراً rotate کریں؛ Git ہسٹری دوبارہ لکھنا اختیاری ہے اور کریڈنشل منسوخ ہونے کے بعد اکثر غیر ضروری۔ لوگ اسے الٹا کرتے ہیں: وہ ایک گھنٹہ ہسٹری صاف کرنے میں لگاتے ہیں جبکہ کلید اب بھی کام کر رہی ہوتی ہے۔ ایسا نہ کریں۔
اپنا کیس منتخب کریں
آپ کی کلید کے ساتھ کیا ہوا؟ قریب ترین کیس منتخب کریں
جواب دیکھنے کے لیے ایک آپشن منتخب کریں
کلید ایسی commit میں تھی جو اب عوامی ہے
پہلے کوڈ سے کلید ہٹائیں، ماحولیاتی متغیر پر منتقل ہوں، .env کو .gitignore میں شامل کریں، اور اپنے بیلنس میں ان درخواستوں کو دیکھیں جو آپ نے نہیں بھیجیں۔ ہسٹری صاف کرنا بعد میں ایک اضافی چیز ہے، فوری حصہ نہیں۔
کلید کسی اسکرین شاٹ یا شیئرڈ فائل میں تھی
وہی ترتیب: اپنے ٹولز میں وہ کلید استعمال کرنا بند کریں اور ماحولیاتی متغیر پر منتقل ہوں، پھر اگر ممکن ہو تو پوسٹ یا فائل ڈیلیٹ کریں۔ ڈیلیٹ شدہ اسکرین شاٹ پہلے ہی کاپی ہو چکا ہو سکتا ہے، اس لیے صرف ڈیلیٹ کرنے پر بھروسہ نہ کریں۔
وہی کلید کئی ٹولز میں استعمال ہو رہی ہے
ہر اس جگہ سے گزریں جہاں کلید رکھی گئی تھی: آپ کا شیل پروفائل، .env فائلیں، ایڈیٹر اور ٹرمینل ٹولز، اور ہر ایک کو ماحولیاتی متغیر کی طرف اشارہ کریں، تاکہ تبدیلی کے لیے ایک ہی جگہ ہو۔ اگر کوئی ٹول متغیر پڑھنے میں ناکام ہو، تو 401/404 troubleshooting guide دکھاتا ہے کہ ایرر کیسا لگتا ہے۔

صفائی کے بعد، مرحلہ 1 کی طرح ایک چھوٹی ٹیسٹ درخواست بھیجیں، اور اپنا بیلنس چیک کریں۔ اگر یہ جواب دیتی ہے اور بیلنس اور درخواستیں نارمل لگتی ہیں، تو صفائی مکمل ہے؛ اگلے چند دنوں تک بیلنس پر نظر رکھیں۔ جو کلید عوامی ہو چکی ہو اسے کوڈ سے ہٹانے کے بعد بھی exposed سمجھا جانا چاہیے، اس لیے بیلنس اور درخواستوں کی تعداد میں ان چیزوں پر نظر رکھیں جو آپ نے نہیں بھیجیں، اور وہ کلید نئی جگہوں پر دوبارہ استعمال نہ کریں۔ جن جگہوں پر کلید عام طور پر رہتی ہے، ان کے لیے Where to plug in your own API key دیکھیں۔
خود کو جانچیں#
خود آزمائیںآزمائیں: متغیر unset کریں اور اسکرپٹ چلائیں۔ آپ کو کیا نظر آتا ہے؟جواب دکھائیں
Python کسی بھی درخواست کے آپ کی مشین سے نکلنے سے پہلے KeyError: 'CHEAPTOKENS_ کے ساتھ رک جاتا ہے۔ یہی اچھی ناکامی ہے: اسکرپٹ کلید کے بغیر چلنے سے انکار کرتا ہے بجائے اس کے کہ خاموشی سے پیسٹ شدہ کلید استعمال کرے۔ اگر آپ کو اس کے بجائے 401 نظر آئے، تو متغیر سیٹ ہے لیکن کلید غلط ہے؛ کلید اور ایڈریس کو 401/404 guide کے خلاف چیک کریں۔



