TokenCode полностью совместим с протоколом OpenAI API. Вы можете напрямую использовать OpenAI SDK или любой клиент, совместимый с протоколом OpenAI.
https://tokencode.dev/v1
Все эндпоинты требуют аутентификации:
Возвращает список доступных на данный момент моделей.
curl https://tokencode.dev/v1/models \
-H "Authorization: Bearer sk-your-api-key"
Пример ответа:
{
"object": "list",
"data": [
{ "id": "gpt-5.5", "object": "model", "owned_by": "openai" },
{ "id": "claude-sonnet-4-6", "object": "model", "owned_by": "anthropic" },
{ "id": "gemini-2.5-pro", "object": "model", "owned_by": "google" }
]
}
Совместимый с OpenAI эндпоинт диалоговых завершений. Поддерживает все upstream-модели, а не только модели OpenAI.
curl https://tokencode.dev/v1/chat/completions \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "Вы полезный помощник."},
{"role": "user", "content": "Объясните квантовые вычисления"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| model | string | Да | ID модели (например, gpt-5.5, claude-sonnet-4-6) |
| messages | array | Да | Массив объектов сообщений |
| stream | boolean | Нет | Включить ли потоковый ответ |
| temperature | number | Нет | Температура сэмплирования (0-2) |
| max_tokens | integer | Нет | Максимальное количество генерируемых Token |
| top_p | number | Нет | Вероятность ядерного сэмплирования |
| n | integer | Нет | Количество генерируемых кандидатов |
| stop | string/array | Нет | Стоп-последовательности |
| presence_penalty | number | Нет | Штраф за присутствие (от -2 до 2) |
| frequency_penalty | number | Нет | Штраф за частоту (от -2 до 2) |
| tools | array | Нет | Определения инструментов Function Calling |
| tool_choice | string/object | Нет | Стратегия вызова инструментов |
Пример ответа:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Квантовые вычисления — это метод использования принципов квантовой механики..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 128,
"total_tokens": 153
}
}
При установке "stream": true ответ использует формат SSE:
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"Кв"},"index":0}]}
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"delta":{"content":"ан"},"index":0}]}
data: [DONE]
Генерация векторных вложений текста.
curl https://tokencode.dev/v1/embeddings \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "Hello world"
}'
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| model | string | Да | ID модели вложений |
| input | string/array | Да | Текст для вложения |
| encoding_format | string | Нет | Формат кодирования (float или base64) |
Одно из ключевых преимуществ TokenCode — автоматическая конвертация протоколов. Когда вы вызываете не-OpenAI модель (например, Claude, Gemini) через совместимый с OpenAI эндпоинт, платформа автоматически выполняет:
Это означает, что вы можете использовать один и тот же код OpenAI SDK для вызова всех моделей, не заботясь о различиях в底层 протоколах.
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://tokencode.dev/v1"
)
# Вызов модели OpenAI
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Привет"}]
)
# Вызов модели Claude — тот же код, автоматическая конвертация протокола
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Привет"}]
)
# Вызов модели Gemini — аналогичным образом
response = client.chat.completions.create(
model="gemini-2.5-pro",
messages=[{"role": "user", "content": "Привет"}]
)
Все ошибки соответствуют формату ошибок OpenAI:
{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
| HTTP-статус | Значение |
|---|---|
| 400 | Неверные параметры запроса |
| 401 | Ошибка аутентификации — недействительный API Key |
| 403 | Недостаточно прав — модель недоступна |
| 429 | Ограничение скорости или недостаточный баланс |
| 500 | Внутренняя ошибка сервера |
| 502 | Ошибка upstream-сервиса |