BaşlarkenKılavuz
HTTPie ile CheapTokens'e ilk istek: anahtar ortamda, = ve :=
Anahtar bir ortam değişkenindeyken bir sohbet tamamlama gönderen ve ardından cevabın ve token kullanımının nerede olduğunu gösteren okunabilir tek bir http komutu.

Bu sayfada
Anahtarın çalıştığını ve model kimliğinin doğru olduğunu bilmek istiyorsunuz ve bunu tek satırda öğrenmek istiyorsunuz. HTTPie'nin http komutu bunu curl'e göre çok daha az tırnak işaretiyle yapar: alanları siz yazarsınız, o JSON'u oluşturur. İşte tüm istek ve makalenin geri kalanı her parçayı açıklıyor.
export CHEAPTOKENS_API_KEY="paste-your-key-here"
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]'API, OpenAI uyumludur, bu nedenle temel URL https:/'dir ve sohbet istekleri bunun altındaki / adresine gider. Model kimliği tam olandır, deepseek- (fiyat tablolarındaki kısa ad kabul edilmez). Daha önce bir anahtar saklamadıysanız, önce bir API anahtarını güvenli bir şekilde saklayın: export satırını yazmak anahtarı kabuk geçmişinize koyar, bu nedenle bir profil dosyası veya bir sır yöneticisi onun için daha iyi bir yerdir.

= ve := aslında ne yapar#
HTTPie'de öğrenmeniz gereken tek kısım budur. HTTPie'nin JSON belgeleri (sürüm 3.2.4, 1 Kasım 2024 tarihli, 9 Kasım 2026'da okundu) ='in bir dize alanı ayarladığını ve :='nin ham bir JSON değeri ayarladığını söyler: bir sayı, bir boolean, bir dizi veya bir nesne. Bu şekilde verilen alanlar varsayılan olarak bir JSON gövdesi olarak gönderilir, bu nedenle kendiniz bir Content-Type başlığı eklemezsiniz.
İsteğimizde bu üç farklı şekil verir:
model=deepseek-bir dizedir, yaniai/ DeepSeek- V4- Flash- 0731 =.max_tokens:=200bir sayıdır, yani:=.=ile"200"dizesini gönderirdiniz.messages:=[…]bir nesne dizisidir, yani yine:=ve değer tek tırnak içine alınır, böylece kabuk içteki çift tırnaklara dokunmaz.
Belgeler ayrıca stdin'den gelen bir gövdenin komut satırı alanlarıyla birleştirilemeyeceğini söyler, bu nedenle bir stil seçin. İlk test için alanlar daha kısa ve düzenlemesi daha kolaydır.
Hızlı kontrol
max_tokens=200 (düz bir = ile) ne gönderir?
Cevabı göster
Cevap: "200" dizesi
= her zaman bir dize oluşturur. Bir sayı için := gerekir, bu nedenle max_tokens:=200 yazın.
Cevap nerede#
Yanıt, OpenAI sohbet tamamlama formatını izler. Üç şey arıyorsunuz ve bunlar farklı yerlerde duruyor:
{
"choices": [
{
"message": { "role": "assistant", "content": "…the answer text…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": …, "completion_tokens": …, "total_tokens": … }
}Cevap metni choices[0].'dir. finish_reason aynı seçimde onun yanındadır ve usage üst düzeydedir. usage kaç token gönderdiğinizi (prompt_tokens) ve modelin kaç tane yazdığını (completion_) gösterir, bu da bir isteğin maliyetini tahmin etmek için kullanışlıdır.

Yalnızca metni istiyorsanız, gövdeyi jq'a aktarın:
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]' \
| jq -r '.choices[0].message.content'Kendin deneDeneyin: sınırı çok küçük yapın ve finish_reason'ı okuyunCevabı göster
max_tokens:=200'ü max_tokens:=5 olarak değiştirin ve tekrar çalıştırın. Cevap kesilir ve finish_reason, stop yerine length okur: sınır modeli durdurdu, düşüncenin sonunu değil. Bir cevabın neden kesildiği düzeltmeyi ele alır.
Modeli değiştir: bir alanı değiştir#
Model tek bir dizedir, bu nedenle başka birini denemek tek kelimelik bir düzenlemedir. Aşağıdaki her iki kimlik de CheapTokens'te tek bir bakiye ile kullanılabilir; DeepSeek-V4-Flash size 380K bağlam ve yanıt başına 32.768'e kadar çıktı token'ı verir, GLM-5.3-Flash ise 390K bağlam ve 8.192'ye kadar.
Tek istek, iki model
DeepSeek-V4-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'GLM-5.3-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=zai-org/GLM-5.3-Flash \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'Hangi kimliği kullanacağınızdan emin değil misiniz? GET /v1/models ile modelleri listeleyin ve tam dizeyi kopyalayın.
Bir test isteğinin maliyeti#
Bunun gibi kısa bir soru ucuzdur. Sorunun yaklaşık 100 token ve cevabın yaklaşık 150 token olduğunu varsayalım: bu istek $0.000017 tutar. Bin tanesi, giriş ve çıkış birlikte sayıldığında şöyle görünür:
| Model | Giriş $/1M | Çıkış $/1M | İstek başına | 1.000 istek | OpenRouter, 1.000 istek |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000008 | $0.008 | $0.0158 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000017 | $0.0165 | $0.028 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000028 | $0.0275 | $0.33 |
İstek başına 100 giriş ve 150 çıkış token'ı. 1M token başına fiyatlar günceldir ve tarifelerimizle birlikte değişir; OpenRouter sütunu aynı iş yükü için referans fiyatları gösterir.
Toplamda, giriş ve çıkış birlikte sayıldığında, DeepSeek-V4-Flash OpenRouter'dan daha ucuz çıkar ve fiyat yoğun saatler olmadan tek bir sabit orandır. Her model için güncel oranlar fiyatlandırma sayfasında.
Çalışmazsa#
messages=[…]'i düz bir=ile yazdınız. Dizi, mesaj listesi olarak değil, bir dize olarak gönderilir.:=kullanın ve tüm değeri tek tırnak içine alın.:=içindeki JSON geçersiz. Her anahtar ve dize çift tırnak gerektirir ve dış tırnaklar tek olmalıdır. Mesaj metnini düzenlerseniz, tırnakları dengede tutun.- Anahtar boş.
echo ${#CHEAPTOKENS_anahtarı göstermeden uzunluğu yazdırır;API_ KEY} 0, değişkenin bu terminalde ayarlanmadığı anlamına gelir. - Model kimliği kısa ad. Tam
deepseek-kullanın. 401 ve 404 yanıtları için yanlış anahtar, temel URL veya model kimliği bölümüne bakın.ai/ DeepSeek- V4- Flash- 0731 --session'a başvurdunuz. HTTPie'nin kimlik doğrulama belgeleri oturum dosyalarının kimlik bilgilerini düz metin olarak sakladığını söyler, bu nedenle anahtarı ortamda tutun ve--session'yi bu komuttan çıkarın.
Bir bayrak yukarıdakilerden farklı davranıyorsa sürümünüzü http --version ile kontrol edin. Python'u mu tercih ediyorsunuz? SDK olmadan aynı istek Python'da requests ile ilk istek bölümünde. Tam API referansı için CheapTokens belgelerine bakın.



