# Chat completions endpoint: POST /api/v1/chat/completions

> Chat completions endpoint referansı: POST /api/v1/chat/completions isteğinin her body alanı, yanıt, finish reason'lar ve token kullanımı. OpenAI uyumlu.

- URL: https://llmwithcrypto.com/tr/docs/chat-completions/
- Son güncelleme: 2026-10-23
- Yayıncı: LLMwithCrypto (https://llmwithcrypto.com)

Tek bir endpoint her modeli yanıtlar. OpenAI chat completions API'siyle aynı body'yi alır ve aynı nesneyi döndürür; bu yüzden mevcut bir entegrasyon için yalnızca yeni bir base URL, yeni bir API anahtarı ve listemizden bir model kimliği gerekir.

**Kısa yanıt — LLMwithCrypto chat completions endpoint'i hangi alanları kabul eder?**

OpenAI chat completions body'sini kabul eder: `model` ve `messages` zorunludur; `max_tokens`, `temperature`, `top_p`, `stop`, `stream`, `stream_options`, `tools`, `tool_choice` ve `response_format` isteğe bağlıdır. **LLMwithCrypto**, 23 Ekim 2026 tarihinde belgelendiği üzere, bakiyenizden token başına faturalandırılan bir `usage` sayısıyla birlikte bir `chat.completion` nesnesi döndürür. Tool calling ve JSON çıktısı modele bağlıdır.

## Endpoint'e genel bakış

| Özellik | Değer |
| --- | --- |
| Method ve URL | `POST https://llmwithcrypto.com/api/v1/chat/completions` |
| Kimlik doğrulama | API anahtarınızı, OpenAI SDK'sının yaptığı gibi, Authorization header'ında Bearer token olarak geçirin |
| Body | JSON, `Content-Type: application/json` |
| Yanıt | `chat.completion` nesnesi veya `stream: true` ile server-sent events |
| Faturalama | Token başına bakiyenizden ödersiniz: girdi ve çıktı token'ları modelin kendi tokenizer'ı ile sayılır ve o modelin 1M token başına fiyatından ücretlendirilir. Hata ile sonuçlanan bir çağrı ücretsizdir |
| Özellikler | Streaming her modelde çalışır; tool calling ve JSON çıktısı, her modelin kendi desteklediğiyle sınırlıdır |

## Chat completion oluşturma

`POST /api/v1/chat/completions`

Bir konuşmayı tek bir modele gönderir ve yanıtını token sayılarıyla birlikte döndürür. Örnek, DeepSeek V4 Pro'ya 200 token sınırıyla kısa bir soru sorar; yanıttaki kimlikler, zamanlar ve sayılar örnektir.

Kimlik doğrulama: `Authorization: Bearer API_KEY` header'ında API anahtarı.

**İstek gövdesi**

| Alan | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `model` | string | Evet | Model kimliği, örneğin `deepseek-v4-pro` veya `gpt-oss-120b`. `GET /api/v1/models`, API anahtarınızın çağırabildiği her kimliği döndürür. |
| `messages` | object[] | Evet | Konuşma, en eskisi önce. Her öğe bir `role` (`system`, `user`, `assistant` veya `tool`) ve bir `content` dizesi taşır; `tool` mesajlar ayrıca bir `tool_call_id` taşır. |
| `max_tokens` | integer | Hayır | Yanıtın kullanabileceği en fazla token. Bu olmadan model, bağlam penceresi dolana kadar yazabilir ve yazdığı her token için ödeme yaparsınız. |
| `temperature` | number | Hayır | 0 ile 2 arası. Düşük değer daha öngörülebilir, yüksek değer daha çeşitli. Varsayılan modele bağlıdır. |
| `top_p` | number | Hayır | 0 ile 1 arası, nucleus sampling. `temperature` veya `top_p` değerini değiştirin, ikisini birden değil. |
| `stop` | string or string[] | Hayır | Model bunları yazdığında yanıtı bitiren en fazla 4 dizi. Bunlar yanıta dahil edilmez. |
| `stream` | boolean | Hayır | `true`, yanıtı server-sent events olarak parça parça gönderir. Bkz. [streaming](https://llmwithcrypto.com/tr/docs/streaming/). |
| `stream_options` | object | Hayır | `{"include_usage": true}`, stream'lenen çağrının `usage` bilgisini içeren son bir event ekler. |
| `tools` | object[] | Hayır | Modelin sizden çağırmanızı isteyebileceği fonksiyonlar, OpenAI formatında. Tool calling destekleyen modellerde çalışır. Bkz. [tool calling](https://llmwithcrypto.com/tr/docs/tool-calling/). |
| `tool_choice` | string or object | Hayır | `auto` (`tools` ayarlandığında varsayılan), `none`, `required` veya `{"type": "function", "function": {"name": "…"}}`. |
| `response_format` | object | Hayır | `{"type": "json_object"}`, destekleyen modellerde geçerli bir JSON nesnesi ister. JSON'ın ne içermesi gerektiğini prompt'unuzda belirtin. |

*Örnek: a short answer from DeepSeek V4 Pro*

```json
{
  "model": "deepseek-v4-pro",
  "messages": [
    {
      "role": "system",
      "content": "Answer in two sentences."
    },
    {
      "role": "user",
      "content": "What is a context window?"
    }
  ],
  "max_tokens": 200
}
```

*Örnek: a JSON object from gpt-oss-120b, low temperature*

```json
{
  "model": "gpt-oss-120b",
  "messages": [
    {
      "role": "user",
      "content": "Return {\"city\": string, \"country\": string} for the Eiffel Tower."
    }
  ],
  "response_format": {
    "type": "json_object"
  },
  "temperature": 0.2,
  "max_tokens": 100
}
```

**Yanıt** `200`

```json
{
  "id": "chatcmpl-8f2c41d0a7b94e1c",
  "object": "chat.completion",
  "created": 1792742400,
  "model": "deepseek-v4-pro",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "A context window is the maximum number of tokens a model can read and write in one request. Anything beyond it must be cut or summarized before the call."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 27,
    "completion_tokens": 34,
    "total_tokens": 61
  }
}
```

*curl*

```bash
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro",
    "messages": [
      {"role": "system", "content": "Answer in two sentences."},
      {"role": "user", "content": "What is a context window?"}
    ],
    "max_tokens": 200
  }'
```

*Python*

```python
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)

resp = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "Answer in two sentences."},
        {"role": "user", "content": "What is a context window?"},
    ],
    max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, "in,", resp.usage.completion_tokens, "out")
```

*Node.js*

```javascript
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

const resp = await client.chat.completions.create({
  model: 'deepseek-v4-pro',
  messages: [
    { role: 'system', content: 'Answer in two sentences.' },
    { role: 'user', content: 'What is a context window?' },
  ],
  max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');
```

## Mesajları nasıl yazarım?

Her seferinde konuşmanın tamamını, en eski mesajdan başlayarak gönderin: API çağrılar arasında hiçbir şey hatırlamaz ve istemlerinizden hiçbiri saklanmaz. Prompt'larınızı veya modelin yanıtlarını saklamayız: bir yanıt gönderildiğinde metni kaybolur. Her çağrı, zaman, hesap, model ve token sayılarını içeren tek bir log satırı bırakır; bu satırlar 30 gün sonra silinir.

- **`system`**: ton, dil veya çıktı biçimi gibi her yanıtı çerçeveleyen talimatlar. Birini en üste koyun.
- **`user`**: kişinin veya programınızın sorduğu şey.
- **`assistant`**: modelin önceki yanıtları, böylece konuşmaya devam edebilir.
- **`tool`**: modelin çalıştırmanızı istediği bir fonksiyonun sonucu, verdiği `tool_call_id` ile birlikte.

Her mesaj girdi token'ı olarak sayılır, bu yüzden uzun geçmişler her turda daha pahalıya gelir. Bir konuşma uzadığında eski turları kısaltın veya özetleyin.

## Bir istek ne kadar uzun olabilir?

Girdi ve çıktı birlikte modelin context window'una sığmalıdır. 23 Ekim 2026 itibarıyla DeepSeek V4 Pro 1M token'a kadar, gpt-oss-120b 128K ve Qwen3 235B 256K token'a kadar okur; [modeller sayfası](https://llmwithcrypto.com/tr/models/) hepsini listeler.

Sığmayan bir istek `context_length_exceeded` kodlu `400` olarak döner ve hiçbir ücrete tabi değildir. İstem ile kabul ettiğiniz en uzun yanıtın pencere içinde kalması için `max_tokens` ayarlayın.

## finish_reason bana ne söyler?

| `finish_reason` | Anlamı | Ne yapmalı |
| --- | --- | --- |
| `stop` | Model yanıtını bitirdi ya da sizin `stop` dizilerinizden birini yazdı | Hiçbir şey: yanıt tamamlandı |
| `length` | Yanıt `max_tokens` veya context window'a ulaştı | `max_tokens` değerini artırın ya da daha kısa bir yanıt isteyin |
| `tool_calls` | Model bir veya daha fazla fonksiyon çalıştırmanızı istiyor | Çalıştırın ve sonuçları geri gönderin, bkz. [tool calling](https://llmwithcrypto.com/tr/docs/tool-calling/) |

## Hangi OpenAI parametreleri desteklenmiyor?

Yukarıdaki tablodaki alanlar sözleşmenin tamamıdır. OpenAI API'sindeki diğerleri, örneğin `n` (çağrı başına birkaç yanıt), `logprobs`, `audio` veya görsel girdileri desteklenmez: yalnızca burada listelenen alanları gönderin. Modeller metin modelleridir; hiçbiri bu endpoint üzerinden görsel kabul etmez.

`model` alanı yalnızca listemizdeki id'leri kabul eder. GPT, Claude, Gemini veya Grok'a erişim satmıyoruz: üreticileri, onayları olmadan API erişiminin yeniden satılmasını yasaklıyor ve bizde bu onay yok.

## Chat completions: sık sorulan sorular

### Eski completions endpoint'i var mı?

Hayır. Yalnızca chat biçimi vardır; tek bir istem, tek bir `user` mesajı içeren bir `messages` dizisidir.

### Bir çağrı ne kadar tutar?

Token başına bakiyenizden ödersiniz: girdi ve çıktı token'ları modelin kendi tokenizer'ı ile sayılır ve o modelin 1M token başına fiyatından ücretlendirilir. Hata ile sonuçlanan bir çağrı ücretsizdir. Model başına fiyatlar [fiyatlandırma sayfasında](https://llmwithcrypto.com/tr/pricing/).

### Geçmiş isteklerimi görebilir miyim?

Hayır, tasarım gereği. Prompt'larınızı veya modelin yanıtlarını saklamayız: bir yanıt gönderildiğinde metni kaybolur. Her çağrı, zaman, hesap, model ve token sayılarını içeren tek bir log satırı bırakır; bu satırlar 30 gün sonra silinir.

### Yanıtım neden ortada kesildi?

`finish_reason` o zaman `length` olur: yanıt `max_tokens` değerine ulaştı. Modelin context window'u içinde kalacak şekilde artırın.

---

LLMwithCrypto: LLMwithCrypto, açık ağırlıklı modeller için OpenAI uyumlu bir LLM API'sidir — DeepSeek V4 Pro, DeepSeek V4.1 Flash, DeepSeek R1, Qwen3.5 397B A17B, Qwen3 235B A22B Instruct, gpt-oss-120b, gpt-oss-20b, GLM-4.7, Llama 3.3 70B Instruct, Gemma 4 31B, Mistral Large 3, Mistral Small 4 — ön ödemeli kripto bakiyesinden token başına ödenir ve genel barındırıcıların medyan fiyatının %5 altındadır. KYC yok: kimlik yok, selfie yok, belge yok. İstemler ve çıktılar saklanmaz.
