API Reference
API Reference модельного шлюза
Текущий публичный шлюз https://api.51cowork.com поддерживает GPT, Claude, Grok, DeepSeek, GLM и Kimi через Anthropic- и OpenAI-совместимые входы. API Key берётся из панели управления.
Отправляйте запросы прямо в https://api.51cowork.com. Предпочтителен Authorization: Bearer; Anthropic-клиенты могут использовать x-api-key. Точные ID моделей запрашиваются через GET /v1/models.
- Gateway
- https://api.51cowork.com
- Аутентификация
- Bearer / x-api-key
- Тип содержимого
- application/json
- Модели
- GET /v1/models
Base URL и аутентификация
Отправляйте запросы моделей по путям /v1/... на Gateway https://api.51cowork.com. Управление аккаунтом выполняется в панели управления.
bashexport COWORK_GATEWAY_URL="https://api.51cowork.com"
export COWORK_API_KEY="<key-from-dashboard>"
export COWORK_MODEL="<model-from-gateway>"| Клиент | Base URL | Путь, добавляемый клиентом |
|---|---|---|
| Прямой HTTP | https://api.51cowork.com | Полный путь /v1/... |
| OpenAI SDK / OpenCode / Cursor | https://api.51cowork.com/v1 | /chat/completions или /responses |
| Cherry Studio (OpenAI) | https://api.51cowork.com | /v1/chat/completions |
| WorkBuddy (Custom Protocol) | https://api.51cowork.com/v1/chat/completions | Полный URL; путь не добавляется |
| Anthropic SDK / Claude Code | https://api.51cowork.com | /v1/messages |
| Codex | https://api.51cowork.com | wire_api = responses |
| Способ | Header |
|---|---|
| Рекомендуемый | Authorization: Bearer <API_KEY> |
| Совместимый Anthropic | x-api-key: <API_KEY> |
| Совместимый Gemini, если включён | x-goog-api-key: <API_KEY> |
GET /v1/models
Возвращает модели, доступные группе текущего ключа.
bashcurl "$COWORK_GATEWAY_URL/v1/models" \
-H "Authorization: Bearer $COWORK_API_KEY"- Поддерживаются семейства GPT, Claude, Grok, DeepSeek, GLM и Kimi.
- Используйте точный возвращённый ID; не отправляйте название семейства и не угадывайте ID по названию продукта.
- Если список пуст или модели нет, проверьте Key, группу и конфигурацию оператора.
- Кэшируйте ненадолго и разрешайте ручное обновление.
POST /v1/messages
Совместимый вход Anthropic Messages.
bashcurl "$COWORK_GATEWAY_URL/v1/messages" \
-H "x-api-key: $COWORK_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Hello"}]
}'Перед генерацией отправьте те же model и messages в POST /v1/messages/count_tokens, чтобы оценить входные Token.
bashcurl "$COWORK_GATEWAY_URL/v1/messages/count_tokens" \
-H "x-api-key: $COWORK_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"messages": [{"role": "user", "content": "Hello"}]
}'| Поле | Требование |
|---|---|
| model | ID из /v1/models |
| max_tokens | Положительное число в пределах клиента и модели |
| messages | Хотя бы одно корректное сообщение |
| stream | Необязательно; true возвращает поток событий |
POST /v1/chat/completions
Совместимый вход OpenAI Chat Completions.
bashcurl "$COWORK_GATEWAY_URL/v1/chat/completions" \
-H "Authorization: Bearer $COWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"messages": [{"role": "user", "content": "Hello"}]
}'Обычно используются model, messages, stream и поддерживаемые моделью sampling/tool-поля. Неподдерживаемые поля могут быть отклонены или обработаны слоем совместимости; поведение моделей не обязано совпадать.
POST /v1/responses
Совместимый вход OpenAI Responses и wire API для Codex.
bashcurl "$COWORK_GATEWAY_URL/v1/responses" \
-H "Authorization: Bearer $COWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"input": "Explain this repository in three bullets."
}'Потоковые ответы
Установите stream=true и обрабатывайте server-sent events по мере поступления. В cURL флаг -N отключает буферизацию.
bashcurl -N "$COWORK_GATEWAY_URL/v1/chat/completions" \
-H "Authorization: Bearer $COWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"stream": true,
"messages": [{"role": "user", "content": "Count to five"}]
}'- Таймаут чтения должен учитывать ожидание первого Token и длинный ответ.
- При отмене клиентом закрывайте body ответа.
- Ошибка после начала потока может не превратиться в обычный JSON; сохраните полученные события для диагностики.
HTTP-статусы и ошибки
| Статус | Обычно означает | Действие |
|---|---|---|
| 400 | Некорректный JSON, поле или параметр модели | Исправить, не повторять без изменений |
| 401 | Ключ отсутствует, неверен или отключён | Обновить конфигурацию и ключ после Rotate |
| 402 / 403 | Недостаточный лимит или доступ | Проверить quota и аккаунт |
| 404 | Нет endpoint, модели или возможности группы | Обновить модели и проверить путь |
| 429 | Ограничение или временная недоступность upstream | Учесть Retry-After и backoff с jitter |
| 5xx | Временный сбой шлюза или upstream | Записать контекст и повторить ограниченно |
