MemulaiPanduan
Simpan API key dengan aman: variabel env, .gitignore, perbaikan kebocoran
Jauhkan kunci CheapTokens Anda dari kode dan git: set variabel environment, tambahkan .env ke .gitignore, dan ketahui apa yang harus dilakukan jika kunci bocor.

Di halaman ini
Simpan kunci di variabel environment, bukan di kode Anda, dan jaga agar file .env tidak masuk ke git dengan satu baris di .gitignore. Jika kunci sudah terlanjur berada di tempat publik, tangani kuncinya dulu baru bereskan sisanya: membersihkan riwayat git sementara kunci masih ada di kode dan tools Anda tidak memperbaiki apa pun.
Itulah inti idenya. Panduan ini adalah versi praktiknya (dasar-dasarnya ada di What is an API key): tiga perintah, satu request yang berhasil, dan rencana singkat untuk hari yang buruk.
Kenapa kunci tidak boleh ada di kode Anda#
API key adalah password yang membelanjakan uang Anda. Siapa pun yang memegangnya bisa mengirim request atas saldo Anda, dan layanan tidak bisa membedakan mereka dari Anda.
Cara paling umum kesalahan ini terjadi membosankan. Anda menempelkan kunci ke sebuah skrip agar request pertama berhasil, skripnya jalan, Anda git push, dan repositorinya publik. Atau Anda mengirim file konfigurasi ke rekan kerja. Atau Anda mengambil screenshot error dengan kunci terlihat di sudutnya. Hasilnya selalu sama.
GitHub sangat mengenal pola ini. Secret scanning-nya (GitHub docs, dicek 29 Oktober 2026) menelusuri seluruh riwayat Git di semua branch untuk mencari kredensial yang di-hardcode, juga menelusuri issues, pull request, diskusi, wiki, dan secret gist, lalu memunculkan peringatan saat menemukannya. Artinya menghapus baris itu di commit berikutnya tidak mengubah apa pun: commit lama masih menyimpannya.
Berikut skrip yang sama sebelum dan sesudah.
Bandingkan
Skrip yang sama, kunci dipindahkan keluar dari kode
Kunci di dalam kode
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="<your-key>", # pasted here: ends up in git
)Kunci dari environment
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)Versi kedua bisa langsung masuk ke GitHub, chat, atau code review apa adanya. Kuncinya hidup di mesin Anda, di luar file.
Langkah 1: taruh kunci di variabel environment#
Variabel environment adalah nilai bernama yang diberikan terminal Anda ke setiap program yang dijalankannya. Skrip meminta CHEAPTOKENS_ berdasarkan nama dan tidak pernah tahu dari mana asalnya.
Di macOS dan Linux:
export CHEAPTOKENS_API_KEY="<your-key>"Di Windows PowerShell:
setx CHEAPTOKENS_API_KEY "<your-key>"Dua detail sering bikin orang tersandung. export hanya berlaku untuk jendela terminal itu, jadi agar permanen, tambahkan barisnya ke shell profile Anda (~/.zshrc atau ~/.bashrc). Dan setx tidak mengubah jendela tempat Anda mengetiknya: buka terminal baru sebelum menguji.
Sekarang request lengkap. Ini memakai endpoint yang kompatibel dengan OpenAI, https:/, dan DeepSeek-V4-Flash dengan id lengkapnya (deepseek-; ambil id dari dokumentasi CheapTokens, karena nama berbeda antar provider):
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)Sapaan singkat adalah request sekitar 20 token masuk dan 20 keluar, yang dengan harga saat ini adalah $0.0000023 (daftar lengkapnya ada di halaman harga). Jika Anda belum pernah mengirim request pertama, Your first API request with CheapTokens memandu dari nol.
Jawaban model kembali di choices[0]., dan usage menunjukkan token yang dihitung. Kuncinya tidak pernah muncul di file.

Langkah 2: gunakan file .env tanpa meng-commit-nya#
Mengetik export di setiap jendela baru lama-lama melelahkan. File .env menyimpan nilainya di satu tempat, di samping proyek:
CHEAPTOKENS_API_KEY=<your-key>Python membacanya dengan python-dotenv (pip install python-):
from dotenv import load_dotenv
load_dotenv() # fills os.environ from .envFile itu hanya aman jika git tidak pernah melihatnya. Tambahkan ke .gitignore sebelum commit pertama:
echo ".env" >> .gitignore
git check-ignore -v .envJika semuanya benar, perintah kedua mencetak sesuatu seperti .: git memberi tahu aturan mana yang mengabaikan file itu. Jika tidak mencetak apa pun, aturannya tidak bekerja. Di Windows, buat .gitignore di editor dengan baris .env, atau gunakan Add-: >> di PowerShell bisa menulis UTF-16, yang mungkin diabaikan git.
Satu jebakan: .gitignore hanya memengaruhi file yang belum dilacak git. Jika .env sudah pernah di-commit, jalankan git rm - agar git berhenti melacaknya, dan anggap kunci di dalamnya sudah terekspos (lebih lanjut di bawah). Kebiasaan rapi adalah meng-commit .env.example berisi nama variabel dan placeholder alih-alih nilainya, agar rekan kerja tahu apa yang harus diisi.
Jika kunci bocor: apa yang harus dilakukan, berurutan#
Mungkin kunci masuk ke repo publik, mungkin ada di screenshot, mungkin Anda menempelkan seluruh konfigurasi ke thread forum. Urutannya lebih penting daripada kecepatan langkah mana pun.
Panduan GitHub sendiri (halaman yang sama, dicek 29 Oktober 2026) adalah segera rotasi kredensial; menulis ulang riwayat Git bersifat opsional dan sering tidak perlu setelah kredensial dicabut. Orang cenderung melakukannya terbalik: menghabiskan satu jam membersihkan riwayat sementara kuncinya masih berfungsi. Jangan.
Pilih kasus Anda
Apa yang terjadi pada kunci Anda? Pilih kasus yang paling mendekati
Pilih opsi untuk melihat jawabannya
Kunci ada di commit yang sekarang publik
Hapus kunci dari kode dulu, beralih ke variabel environment, tambahkan .env ke .gitignore, dan periksa saldo Anda untuk request yang tidak Anda kirim. Membersihkan riwayat adalah nilai tambah setelahnya, bukan bagian yang mendesak.
Kunci ada di screenshot atau file yang dibagikan
Urutan sama: berhenti memakai kunci itu di tools Anda dan pindah ke variabel environment, lalu hapus postingan atau file jika bisa. Screenshot yang dihapus mungkin sudah disalin, jadi jangan mengandalkan penghapusan saja.
Kunci yang sama dipakai di beberapa tools
Telusuri setiap tempat yang menyimpan kunci: shell profile Anda, file .env, tools editor dan terminal, dan arahkan semuanya ke variabel environment, sehingga hanya ada satu tempat untuk diubah. Jika sebuah tool gagal membaca variabelnya, panduan troubleshooting 401/404 menunjukkan seperti apa errornya.

Setelah pembersihan, kirim satu request uji kecil, seperti di Langkah 1, dan periksa saldo Anda. Jika ada jawaban dan saldo serta request terlihat normal, pembersihan selesai; pantau saldo selama beberapa hari ke depan. Kunci yang pernah publik harus dianggap terekspos bahkan setelah Anda menghapusnya dari kode, jadi awasi saldo dan jumlah request untuk hal-hal yang tidak Anda kirim, dan jangan pakai ulang kunci itu di tempat baru. Untuk tempat-tempat kunci biasanya berada, lihat Where to plug in your own API key.
Uji diri Anda#
Coba sendiriCoba: hapus variabelnya dan jalankan skripnya. Apa yang Anda lihat?Tampilkan jawaban
Python berhenti dengan KeyError: 'CHEAPTOKENS_ sebelum ada request yang keluar dari mesin Anda. Itu kegagalan yang baik: skrip menolak berjalan tanpa kunci alih-alih diam-diam memakai kunci yang ditempel. Jika Anda melihat 401, variabelnya sudah di-set tetapi kuncinya salah; periksa kunci dan alamatnya terhadap panduan 401/404.



