MemulaiPanduan
Permintaan API pertama di VS Code: file .http, kunci dari .env
Kirim chat completion pertama Anda ke CheapTokens dari VS Code dengan ekstensi REST Client, jaga kunci tetap di luar git, dan temukan jawaban serta penggunaan token.

Di halaman ini
Anda dapat mengirim permintaan pertama ke CheapTokens tanpa meninggalkan VS Code: pasang ekstensi REST Client, tulis file .http, simpan kunci di .env di sebelahnya dan tekan Ctrl+Alt+R. Jawabannya terbuka di panel di samping file, dan teks serta jumlah token adalah dua bidang yang bisa Anda temukan sekilas.
Jika Anda sudah memiliki editor yang terbuka, itu lebih baik daripada memasang aplikasi lain hanya untuk menyapa model. Dan permintaannya tetap berada di file teks biasa, jadi Anda bisa menjalankannya lagi besok atau meng-commit-nya (tanpa kunci) untuk rekan tim. Cara lain untuk mengirim permintaan yang sama ada di First request with HTTPie dan Your first API request with CheapTokens.
Pasang ekstensi dan masukkan kunci ke .env#
REST Client adalah ekstensi humao.. Di VS Code tekan F1, ketik ext install, cari rest-client dan pasang. (Diperiksa terhadap README ekstensi pada 9 November 2026.)
Sekarang kuncinya. README menjelaskan {{$dotenv NAME}}: ia membaca nilai dari file .env yang berada di direktori yang sama dengan file .http Anda. Itu persis yang kita inginkan, karena kunci tidak pernah muncul di file permintaan. Buat folder untuk eksperimen dan letakkan dua file di dalamnya.
.env:
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore:
.envBuat kunci di akun CheapTokens Anda dan tempelkan sebagai pengganti placeholder. Mengapa baris ignore itu penting, dan apa yang harus dilakukan jika kunci pernah masuk ke commit, ada di Store an API key safely.
Urutkan
Susun pengaturan dalam urutan yang benar
Seret item atau gunakan panah
- Pasang ekstensi REST Client
- Tambahkan .env ke .gitignore
- Letakkan kunci di .env di sebelah file .http
- Tekan Ctrl+Alt+R pada permintaan
Tulis file .http#
Buat first.http di folder yang sama. Sintaksnya singkat: baris permintaan (POST URL HTTP/, metode opsional dan default-nya GET), baris header Name: value hingga baris kosong pertama, lalu body setelah baris kosong. Permintaan dipisahkan oleh baris berisi tiga atau lebih #.
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json
{
"model": "zai-org/GLM-5.3-Flash",
"messages": [{ "role": "user", "content": "Hello" }]
}Tiga hal yang perlu diperhatikan. Alamatnya adalah base API CheapTokens, https:/, ditambah /. Model ditulis dengan id lengkapnya, zai-: model dengan konteks 390K yang dapat menulis hingga 8.192 token per jawaban. Dan kuncinya hanya placeholder {{$dotenv …}}, jadi file ini aman untuk di-commit.

Jika pengaturan Anda tidak membaca file .env, README juga menjelaskan {{$processEnv NAME}}, yang membaca variabel dari environment mesin Anda sebagai gantinya.
Kirim dan temukan jawabannya#
Klik "Send Request" di atas baris permintaan, atau tekan Ctrl+Alt+R (Cmd+Alt+R di macOS). Anda juga bisa klik kanan atau menggunakan F1. Respons terbuka di panel terpisah. Jika Anda lebih suka tab editor biasa yang bisa dicari dan dilipat, atur rest- ke true di pengaturan.
Responsnya adalah JSON chat-completions standar. Dua tempat penting di hari pertama:
choices[0].adalah teks jawaban. Di sebelahnya,message. content finish_reasonmemberi tahu Anda mengapa model berhenti.lengthberarti jawaban terpotong oleh batas token.usageberisi jumlah token untuk permintaan ini: token yang Anda kirim dan token yang ditulis model. Inilah yang Anda bayar, jadi lihatlah setiap kali.

Coba sendiriCoba: bagaimana Anda melihat bahwa sebuah jawaban terpotong?Tampilkan jawaban
Lihat finish_reason di respons. Jika tertulis length, model mencapai batas token sebelum selesai. Tambahkan baris "max_tokens" ke body, atau naikkan, lalu kirim lagi.
Untuk merasakan soal biaya: misalkan Anda mengirim permintaan ini 100 kali dengan sekitar 1.000 token masuk dan 300 keluar (asumsi untuk contoh, bukan pengukuran).
| Model | Input $/1Jt | Output $/1Jt | Per permintaan | 100 permintaan | OpenRouter, 100 permintaan |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000032 | $0.0032 | $0.0058 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0045 | $0.0112 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000095 | $0.0095 | $0.114 |
1.000 token input dan 300 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.
Tabel menunjukkan harga live beban kerja itu pada setiap model, dengan kolom OpenRouter untuk perbandingan. "Hello" yang kecil jauh lebih murah.
Ganti model dalam satu baris#
Bagian praktis dari file teks biasa: ubah satu baris dan kirim lagi. Ganti id model dengan deepseek- (konteks 380K, hingga 32.768 token per jawaban, satu harga kapan pun sepanjang hari, secara total lebih murah daripada OpenRouter dengan input dan output dihitung bersama) dan tekan Ctrl+Alt+R sekali lagi. Body sama, kunci sama, jawaban berbeda, dan usage berbeda.
Ingin menyimpan keduanya? Tempel permintaan kedua di bawah baris ### dengan id model lainnya. Setiap permintaan mendapat tautan Send Request sendiri, jadi Anda bisa menjalankannya satu per satu dan membandingkan. Tidak yakin dengan id-nya? List models with GET /v1/models menunjukkan string yang tepat.
Jika tidak berhasil#
Cocokkan pasangan
Cocokkan gejala dengan penyebabnya
Ketuk item di kiri, lalu pasangannya
- 401 UnauthorizedKunci kosong atau salah, sering karena .env tidak berada di folder yang sama dengan file .http
- 404 Not FoundSalah ketik di path URL atau di id model
- Jawaban berhenti di tengah kalimat, finish_reason adalah lengthBatas token tercapai, naikkan max_tokens
Untuk dua yang pertama, API 401 or 404: wrong key, base URL or model id memandu pemeriksaannya. Detail permintaan lengkap ada di CheapTokens docs, dan harga terkini ada di pricing page.
Itulah seluruh alurnya: satu file, satu kunci di .env, satu pintasan. Dari sini Anda bisa menambahkan pesan sistem, mengubah max_tokens, atau mengubah body yang sama menjadi kode dalam bahasa apa pun.



