Skip to main content

Chat Completions

Generate chat completions. Identical to OpenAI’s endpoint.
POST /openai/v1/chat/completions

Request

curl http://localhost:3000/openai/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.2",
    "messages": [
      {"role": "user", "content": "Hello"}
    ]
  }'

Parameters

ParameterTypeRequiredDescription
modelstringYesModel ID (e.g., gpt-5.2)
messagesarrayYesConversation messages
streambooleanNoEnable streaming
temperaturenumberNoSampling temperature (0-2)
max_tokensnumberNoMaximum tokens to generate
All OpenAI parameters are supported and forwarded to your provider.

Response

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "gpt-5.2",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 15,
    "total_tokens": 25
  }
}

Streaming

Set stream: true for Server-Sent Events:
from openai import OpenAI

client = OpenAI(base_url="http://localhost:3000/openai/v1")

stream = client.chat.completions.create(
    model="gpt-5.2",
    messages=[{"role": "user", "content": "Write a haiku"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Response Headers

PasteGuard adds headers to indicate PII and secrets handling:
HeaderDescription
X-PasteGuard-ModeCurrent mode (mask or route)
X-PasteGuard-ProviderProvider used (upstream or local)
X-PasteGuard-PII-Detectedtrue if PII was found
X-PasteGuard-PII-Maskedtrue if PII was masked (mask mode only)
X-PasteGuard-LanguageDetected language code
X-PasteGuard-Language-Fallbacktrue if configured language was not available
X-PasteGuard-Secrets-Detectedtrue if secrets were found
X-PasteGuard-Secrets-TypesComma-separated list of detected secret types
X-PasteGuard-Secrets-Redactedtrue if secrets were redacted