НейроГейт API
Продуктовая страница API Получить API-ключ
Официальная документация · OpenAI-совместимый API · 50+ моделей

НейроГейт API для разработчиков

Единый OpenAI-совместимый endpoint для российских и мировых ИИ-моделей. Здесь собраны быстрый старт, аутентификация, reference по /v1/chat/completions, streaming, tools, multimodal, модели, лимиты, ошибки и production best practices.

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

НейроГейт совместим с OpenAI SDK, а для JavaScript и Python теперь есть и собственные first-party SDK. В большинстве случаев миграция занимает буквально несколько строк.

curl

curl https://api.neuralgate.ru/v1/chat/completions \
  -H "Authorization: Bearer ng-proj-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Привет! Кратко расскажи о НейроГейт."}
    ]
  }'

Python

from neuralgate import NeuralGate

client = NeuralGate(api_key="ng-proj-...")

response = client.chat.completions.create({
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Привет!"}]
})

print(response["choices"][0]["message"]["content"])

JavaScript

import { NeuralGate } from "@neuralgate/sdk";

const client = new NeuralGate({
  apiKey: "ng-proj-..."
});

const response = await client.chat.completions.create({
  model: "openai/gpt-4o-mini",
  messages: [{ role: "user", content: "Привет!" }]
});

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

Go

client := neuralgate.NewClient("ng-proj-...")

resp, err := client.Chat.Completions.Create(
    context.Background(),
    map[string]any{
        "model": "openai/gpt-4o-mini",
        "messages": []map[string]any{
            {"role": "user", "content": "Привет!"},
        },
    },
)

Официальный SDK

У НейроГейт теперь есть собственные first-party SDK для JavaScript, Python и Go. Они сохраняют знакомую структуру API и дают официальную точку входа для интеграций, примеров и будущих расширений платформы.

Установка

npm install @neuralgate/sdk
pip install neuralgate-sdk
go get github.com/neuralgate/neuralgate/sdk/go

Статус текущих релизов: foundation 0.1.0.

JavaScript / TypeScript

import { NeuralGate } from "@neuralgate/sdk";

const client = new NeuralGate({
  apiKey: "ng-proj-..."
});

const response = await client.chat.completions.create({
  model: "google/gemini-2.5-flash",
  messages: [
    { role: "user", content: "Привет! Кратко расскажи о НейроГейт." }
  ]
});

Python

from neuralgate import NeuralGate

client = NeuralGate(api_key="ng-proj-...")

response = client.chat.completions.create({
    "model": "google/gemini-2.5-flash",
    "messages": [
        {"role": "user", "content": "Привет! Кратко расскажи о НейроГейт."}
    ],
})

Go

client := neuralgate.NewClient("ng-proj-...")

resp, err := client.Chat.Completions.Create(
    context.Background(),
    map[string]any{
        "model": "google/gemini-2.5-flash",
        "messages": []map[string]any{
            {"role": "user", "content": "Привет!"},
        },
    },
)

Что уже включено

  • chat completions
  • SSE streaming helper
  • models.list / count / endpoints
  • TypeScript declarations для JavaScript SDK
  • retry / timeout / Abort helpers
  • publish-ready foundation для npm и PyPI

Управление запросами

JavaScript SDK поддерживает timeoutMs, maxRetries, retryDelayMs и AbortSignal. Python SDK — timeout, max_retries, retry_delay. Go SDK использует context.Context и client-level retry policy.

Уже поддерживается: chat completions, SSE streaming helper, models.list / count / endpoints, TypeScript declarations, retry / timeout / Abort helpers, Python и Go SDK foundation.

Версионирование

SDK следует SemVer: MAJOR для breaking changes, MINOR для новых возможностей, PATCH для исправлений. Текущая стартовая версия: 0.1.0.

Публикация

Для пакета уже подготовлен publish workflow под npm registry, а release notes ведутся через отдельный changelog. Это позволяет развивать SDK как официальный продуктовый артефакт, а не просто набор примеров.

  • Если вам нужна максимально простая миграция, можно использовать OpenAI SDK с заменой base_url.
  • Если нужен официальный first-party client, рекомендуемый путь — @neuralgate/sdk, neuralgate-sdk или Go SDK.
  • Следующий этап: typed resources и более богатые high-level ресурсы поверх foundation SDK.

Аутентификация

Все protected endpoints используют Bearer API key:

Authorization: Bearer ng-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Получить ключ можно после регистрации в панели.
  • Формат ключа: ng-proj-{32 hex}.
  • Ключи можно ограничивать по RPM, TPM и списку моделей.

Base URL

https://api.neuralgate.ru/v1

Для большинства OpenAI SDK это и есть единственное необходимое изменение в конфигурации клиента.

Не отправляйте admin/session cookies и web auth-токены в API Gateway. Для API используйте только project API keys.

Интерактивный playground

Можно отправить реальный запрос к НейроГейт API прямо из документации. Ключ используется только для текущего запроса и не сохраняется в БД страницы документации.

Playground работает через same-origin proxy на стороне dash.neuralgate.ru/docs, чтобы не зависеть от CORS между поддоменами.

Мои API-ключи

Если вы вошли в панель, можно подтянуть список ключей и создать новый ключ прямо здесь.

Для уже существующих старых ключей секрет может быть недоступен: он показывается только один раз при создании. Ключи, созданные через этот playground, сохраняются локально в вашем браузере для удобного повторного выбора.

Ключ ещё не выбран. Можно подтянуть список ключей или создать новый прямо здесь.

Статус аккаунта

Вы не вошли в панель управления. Доступен ручной режим по API-ключу.

Ручной режим всегда доступен: можно просто вставить API-ключ ниже и отправить запрос.
`Форма` — для быстрого старта. `JSON` — для tools, response_format, temperature, max_tokens и полного payload.
Каталог ещё не загружен
Используется безопасный fallback-набор моделей. Загрузите каталог по API-ключу, чтобы увидеть реальные capabilities.
Если image URL заполнен, playground автоматически соберёт multimodal payload.
idle request_id: — provider: —

Ответ

Здесь появится ответ модели.

Payload / Raw

Здесь появится payload запроса и сырой ответ.
Playground подсказывает и payload, и готовые SDK-примеры. Ошибки API будут показаны вместе с request_id, чтобы их было проще разбирать.

Готовые SDK-примеры

curl

Заполните playground, чтобы получить готовый curl.

Python

Заполните playground, чтобы получить готовый Python-пример.

JavaScript

Заполните playground, чтобы получить готовый JavaScript-пример.

Основные endpoints

МетодEndpointНазначение
POST/v1/chat/completionsОсновной OpenAI-совместимый endpoint для chat, stream, tools, multimodal.
GET/v1/modelsКаталог доступных моделей с capabilities и metadata.
GET/v1/models/countБыстрое число доступных моделей.
GET/v1/models/{author}/{slug}/endpointsДополнительные сведения по конкретной модели.
GET/v1/neuralgate/healthСтатус gateway и upstream-провайдеров.

/v1/chat/completions

Поддерживаются базовые OpenAI-compatible поля, включая stream, tools, multimodal content, response_format и routing extensions.

{
  "model": "google/gemini-2.5-flash",
  "messages": [
    {"role": "system", "content": "Отвечай кратко и по делу."},
    {"role": "user", "content": "Сделай резюме этого текста."}
  ],
  "stream": false,
  "temperature": 0.4,
  "max_tokens": 800
}

Поддерживаемые сценарии

  • non-stream и stream
  • tools / tool_choice
  • response_format / structured output
  • image_url и multi-image input
  • OpenRouter-compatible route/provider/models fields

Совместимость

  • Базовый контракт максимально близок к OpenAI Chat Completions.
  • Каталог моделей по форме ближе к OpenRouter.
  • Сохраняются расширения НейроГейт, например x_neuralgate в model metadata.

Streaming

Streaming идёт через SSE и совместим с OpenAI/OpenRouter-паттерном data: {...} + data: [DONE].

curl -N https://api.neuralgate.ru/v1/chat/completions \
  -H "Authorization: Bearer ng-proj-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-2.5-flash",
    "stream": true,
    "messages": [
      {"role": "user", "content": "Напиши краткий ответ в 3 пунктах"}
    ]
  }'
Используйте buffered reader. Не полагайтесь на scanner с маленьким лимитом строки: image-generation и multimodal upstream могут отдавать большие SSE chunks.

Tools / function calling

{
  "model": "openai/gpt-4o-mini",
  "messages": [{"role": "user", "content": "Какая погода в Москве?"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "lookup_weather",
      "description": "Возвращает погоду по городу",
      "parameters": {
        "type": "object",
        "properties": {
          "city": {"type": "string"}
        },
        "required": ["city"]
      }
    }
  }],
  "tool_choice": "auto"
}

НейроГейт сохраняет и современный tool_calls, и legacy-совместимый function_call mirror.

Structured output

{
  "model": "google/gemini-2.5-flash",
  "messages": [{"role": "user", "content": "Верни status и answer"}],
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "simple_answer",
      "schema": {
        "type": "object",
        "properties": {
          "status": {"type": "string"},
          "answer": {"type": "string"}
        },
        "required": ["status", "answer"]
      }
    }
  }
}

Каталог моделей

Используйте /v1/models, чтобы выбрать модель по контексту, vision/reasoning capabilities и pricing metadata.

curl https://api.neuralgate.ru/v1/models \
  -H "Authorization: Bearer ng-proj-..."

Что смотреть в ответе

  • id
  • architecture.input_modalities
  • supported_parameters
  • pricing
  • x_neuralgate.supports_vision
  • x_neuralgate.supports_reasoning

Рекомендация

Перед multimodal-запросами всегда проверяйте, что модель действительно vision-capable. Для больших документов и OCR используйте либо vision-модель, либо fallback на извлечённый текст.

Фото, файлы и base64

Ниже — официальный mini reference по multimodal-сценариям. Примеры синхронизированы с smoke-кейсами в gateway/tests/api_test.sh.

Фото по URL [NG-MM-01]

"content": [
  {"type":"text","text":"Что на фото?"},
  {"type":"image_url","image_url":{"url":"https://example.com/photo.jpg","detail":"auto"}}
]

Маленькое base64 [NG-MM-02]

"image_url": {
  "url": "data:image/png;base64,<SMALL_BASE64>"
}

Только для маленьких одноразовых вложений.

Vision streaming [NG-MM-03]

"stream": true

Multi-image input [NG-MM-04]

"content": [
  {"type":"text","text":"Сколько изображений?"},
  {"type":"image_url","image_url":{"url":"https://example.com/one.jpg"}},
  {"type":"image_url","image_url":{"url":"https://example.com/two.jpg"}}
]

Non-vision fallback [NG-MM-05]

"content": "OCR/выдержка из документа...\n\nСделай резюме."

Reasoning + vision [NG-MM-06]

"stream": true

Практические рекомендации

  • Для фото и больших файлов используйте HTTPS URL.
  • Base64 применяйте только для маленьких вложений.
  • Для документов чаще выгоднее URL + extracted text.
  • Уменьшайте изображения до разумного размера до отправки.

Большие документы

{
  "model": "deepseek/deepseek-r1",
  "messages": [{
    "role": "user",
    "content": "Файл: https://storage.example.com/doc.pdf\n\nВыдержка:\n...\n\nСделай краткое резюме."
  }]
}

Заголовки ответа

X-NeuralGate-Request-Id: ng-req-a1b2c3d4
X-NeuralGate-Provider: openrouter
X-NeuralGate-Cost-Rub: 0.0342
X-NeuralGate-Balance-Rub: 487.21

Rate limit headers

X-RateLimit-Limit-Requests: 60
X-RateLimit-Remaining-Requests: 58
X-RateLimit-Limit-Tokens: 100000
X-RateLimit-Remaining-Tokens: 94200
X-RateLimit-Reset: 1712900000
Тип моделиПримерный max bodyTimeout
Text-only~1 MB30s non-stream / 120s stream
Visionдо 50 MB120s
Reasoning~1 MBдо 180s

Ошибки

{
  "error": {
    "message": "Недостаточно средств на балансе",
    "type": "insufficient_balance",
    "code": "NG-402",
    "param": null
  }
}
КодЗначениеЧто делать
NG-401Некорректный или отозванный API keyПроверить ключ и префикс ng-proj-.
NG-402Недостаточно средствПополнить баланс или переключить модель.
NG-403Модель/режим недоступныПроверить тариф, allowlist модели и policy.
NG-413Слишком большой request bodyПерейти на URL или сократить payload.
NG-429Rate limit exceededУчитывать limit headers и backoff.
NG-502Ошибка upstream-провайдераRetry/backoff или fallback на другую модель.
NG-503Provider unavailableПовторить позже или маршрутизировать на резерв.

Changelog

ДатаИзменениеСтатус
2026-04-16 Публичная developer-документация на /docs переведена в официальный формат: быстрый старт, endpoints, streaming, tools, multimodal, ошибки и production guidance. active
2026-04-16 Multimodal mini reference синхронизирован с smoke-кейсами NG-MM-01NG-MM-06. active
2026-04-16 OpenRouter/OpenAI-compatible parity для stream/non-stream/tool calling/structured outputs доведена до production-ready уровня с intentional extensions only. active

Пока это curated changelog ключевых изменений developer surface. Позже его можно привязать к автоматическому release feed.

Документация продуктов

Публичный developer portal начинается с API, но документация НейроГейт будет развиваться как единая система по продуктам.

ПродуктМаршрутСтатус
НейроГейт API/docslive
НейроГейт Пилот/docs/pilotplanned
НейроГейт Чат/docs/chatplanned

Что дальше

  • Интерактивный playground для /v1/chat/completions.
  • Отдельные страницы по SDK: Python, JavaScript, Go, curl.
  • Отдельный changelog API surface с версиями и датами.
  • Документация по Пилоту и Чату в том же стиле.

Production best practices

  • Используйте URL вместо больших inline base64.
  • Проверяйте capabilities модели перед multimodal-запросом.
  • Логируйте X-NeuralGate-Request-Id в своих сервисах.
  • Для streaming используйте устойчивый SSE reader.
  • Сохраняйте backoff для 429/502/503.
  • Не отправляйте в один запрос нерелевантные большие вложения.

Где ещё смотреть

Внутренние reference-документы команды синхронизированы с этим публичным guide, но не являются основным внешним developer entrypoint.