Перейти к содержанию

Direct API и cURL

Быстрый старт

  1. Получите Nexus API key в Telegram-боте и храните его в менеджере секретов или переменной окружения.
  2. Запросите GET /v1/models: каталог зависит от конкретного ключа.
  3. Выберите протокол по формату вашего приложения: OpenAI, Anthropic или Gemini.
  4. Передавайте x-request-id, чтобы связать безопасную диагностику с обращением в поддержку.
export NEXUS_API_KEY='YOUR_NEXUS_API_KEY'
export NEXUS_MODEL='MODEL_FROM_V1_MODELS'

curl --fail-with-body https://api.nexus-hub.ru/v1/models \
  -H "Authorization: Bearer $NEXUS_API_KEY" \
  -H 'x-request-id: docs-models-001'

OpenAI Responses

curl --fail-with-body https://api.nexus-hub.ru/v1/responses \
  -H "Authorization: Bearer $NEXUS_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'x-request-id: docs-responses-001' \
  -d '{"model":"MODEL_FROM_V1_MODELS","input":"Reply exactly OK.","max_output_tokens":16}'

Streaming:

curl -N https://api.nexus-hub.ru/v1/responses \
  -H "Authorization: Bearer $NEXUS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"MODEL_FROM_V1_MODELS","input":"Reply exactly OK.","max_output_tokens":16,"stream":true}'

Anthropic Messages

curl --fail-with-body https://api.nexus-hub.ru/v1/messages \
  -H "x-api-key: $NEXUS_API_KEY" \
  -H 'anthropic-version: 2023-06-01' \
  -H 'Content-Type: application/json' \
  -H 'x-request-id: docs-messages-001' \
  -d '{"model":"MODEL_FROM_V1_MODELS","max_tokens":16,"messages":[{"role":"user","content":"Reply exactly OK."}]}'

Для SSE добавьте "stream":true. В Messages нужен положительный max_tokens; для подсчёта без списания используйте POST /v1/messages/count_tokens.

Gemini-compatible

curl --fail-with-body 'https://api.nexus-hub.ru/v1beta/models/MODEL_FROM_V1_MODELS:generateContent' \
  -H "x-goog-api-key: $NEXUS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"role":"user","parts":[{"text":"Reply exactly OK."}]}],"generationConfig":{"maxOutputTokens":16}}'

Для streaming используйте streamGenerateContent; список Gemini-имён доступен через GET /v1beta/models. Если модель указана и в path, и в body, значения должны совпадать.

Ошибки и безопасная диагностика

  • 401 / invalid_key: проверьте переменную и срок действия key.
  • model_not_found или model_not_allowed: модель отсутствует в каталоге этого key.
  • endpoint_not_allowed: выбранный key не разрешает этот маршрут.
  • invalid_request_error: проверьте протокол, обязательный лимит вывода и размер body.
  • streaming_not_supported: отключите stream для этого маршрута.

В поддержку передавайте метод, маршрут, код ошибки и x-request-id. Не передавайте key, полный prompt, request body или логи с заголовками.

Полный контракт: справочник API, маршруты и авторизация.