PieBox
Documentation

Chat Completions API

OpenAI-compatible chat completions interface

Quick Start

cURL:

curl -X POST https://tokenhub.piegateway.me/chat/completions \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-4-5",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 100
  }'

TypeScript:

import OpenAI from "openai"

const client = new OpenAI({
  apiKey: "<your-api-key>",
  baseURL: "https://tokenhub.piegateway.me",
})

const response = await client.chat.completions.create({
  model: "claude-haiku-4-5",
  messages: [{ role: "user", content: "Hello" }],
  max_tokens: 100,
})

console.log(response.choices[0].message.content)

Chat Completions Endpoint

POST /chat/completions

Request Body (JSON):

{
  "model": "gpt-5.4-mini",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant" },
    { "role": "user", "content": "Hello" }
  ],
  "temperature": 0.7,
  "max_tokens": 1000,
  "stream": false
}

Parameters:

ParameterTypeRequiredDescription
modelstringYesModel name — use GET /v1/models to list options
messagesarrayYesArray of conversation messages
temperaturenumberNoRandomness (0–2), default 1
max_tokensnumberNoMaximum output tokens
streambooleanNoEnable streaming output, default false

Response Example:

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "model": "gpt-5.4-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 12,
    "total_tokens": 22
  }
}

List Available Models

GET /v1/models
curl https://tokenhub.piegateway.me/v1/models \
  -H "X-API-Key: <your-api-key>"

Response Example:

{
  "object": "list",
  "data": [
    { "id": "gpt-5.4-mini", "object": "model" },
    { "id": "gpt-4o", "object": "model" },
    { "id": "claude-sonnet-4-20250514", "object": "model" }
  ]
}

Streaming Output

Add "stream": true to the request body. The response will use SSE (Server-Sent Events) format:

curl -X POST https://tokenhub.piegateway.me/chat/completions \
  -H "X-API-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-4-5",
    "messages": [{"role": "user", "content": "Hello"}],
    "stream": true
  }'