Начните создавать с Neiroport

Модели и форматы API через единый ключ Neiroport

NEIROPORT

Подключите API за 30 секунд

Все модели работают через Neiroport без VPN из любой страны. Выберите идентификатор модели в каталоге, создайте ключ и укажите Base URL сервиса в SDK

OpenAIAnthropicGeminiSSE
BASE URL · OPENAI SDKhttps://neiroport.com/v1Authorization: Bearer NEIROPORT_API_KEY
1

Создайте ключ

В разделе API-ключей; сохраните секрет при создании.

2

Пополните баланс

Баланс и бюджет ключа должны покрывать запрос.

3

Отправьте запрос

Скопируйте пример SDK и идентификатор модели из каталога.

Проверьте перед первым запросом

Base URL нашего сервиса; /v1 для OpenAI SDK.

Точный model ID и вариант из каталога, без переименования.

Действующий ключ Neiroport с доступом к выбранной модели.

Достаточный баланс и бюджет ключа; иначе запрос отклоняется до запуска модели.

При обращении в поддержку приложите request_id из ответа или истории.

Первый вызов через SDK

Примеры используют модель из актуального каталога. Замените её на нужный доступный вариант.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NEIROPORT_API_KEY,
  baseURL: "https://neiroport.com/v1"
});

const response = await client.chat.completions.create({
  model: "qwen3.6-27b",
  messages: [{ role: "user", content: "Hello!" }],
  max_tokens: 1024
});

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

Агенты в IDE

Подключите Neiroport к агенту, который читает файлы проекта, вносит изменения и запускает команды. Выберите OpenCode через ACP или терминал, Continue Agent либо Cline Act и используйте маршрут модели с поддержкой инструментов.

Агент

Клиент читает файлы, применяет правки и запускает команды по ответам модели. Нужны агентский плагин и маршрут модели с поддержкой tools. Разрешения на действия задаются в клиенте.

1. Подготовьте ключ и модель

  1. В разделе «API-ключи» создайте ключ Neiroport или откройте существующий и скопируйте его полное значение.
  2. В разделе «Поставщики моделей» выберите этот же ключ, нужную модель и доступный вариант маршрута. Сохраните выбор. У ключа должны быть разрешены эта модель и нужные расходы.
  3. Проверьте положительный баланс. Скопируйте точный ID модели из каталога или списка /v1/models для этого ключа. Для агента выберите вариант, который поддерживает вызов инструментов.
Тип провайдераOpenAI-compatible
Base URL / API Basehttps://neiroport.com/v1
API keyorb_…Ваш ключ из кабинета Neiroport
Меняет примеры ниже; доступ к модели настраивается у ключа
Максимальный ответ8192токена или меньше, если у модели ниже лимит

gpt-4o-mini - пример, а не единственная модель. Введите точный ID нужного варианта: конфигурации обновятся. Используйте текстовый ввод; вложения изображений в этих инструкциях отключены. Base URL уже содержит /v1 - не добавляйте его второй раз.

2. Выберите редактор и клиент

Редактор / IDEСпособ подключенияРежим работы
VS CodeAgent / Act - работа с проектом
Cursor, WindsurfВнутри расширения Cline
PyCharm, IntelliJ IDEA, WebStorm, GoLand, Rider, PhpStorm, CLion, RubyMine, RustRoverАгент через ACP или Cline
ZedРабота с файлами и терминалом
NeovimРабота с файлами и терминалом
Visual Studio, Eclipse, Sublime Text, Emacs, Python IDLE и другиеЗависит от плагина; OpenCode в терминале

Для Cursor и Windsurf здесь описан Cline как отдельное расширение. Поддержка собственного ключа во встроенном чате редактора не означает доступ ко всем его платным функциям. Совместимость плагина зависит от версии и редакции IDE; Cline для JetBrains доступен в Early Access.

OpenCode · терминал и ACP

Один профиль Neiroport можно использовать в терминале и редакторах с ACP. Сначала настройте OpenCode, затем подключите его к редактору.

  1. Установите OpenCode по официальной инструкции. При наличии Node.js можно использовать команду ниже. Откройте терминал в папке проекта.
  2. Сохраните конфигурацию в ~/.config/opencode/opencode.json (Windows: %USERPROFILE%\.config\opencode\opencode.json). Это общий профиль для терминала и ACP. limit.context: 32768 - консервативный пример; замените его на лимит выбранной модели. output не должен превышать 8192 и лимит модели.
Установка при наличии Node.js
npm install -g opencode-ai
OpenCode · opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "neiroport/gpt-4o-mini",
  "provider": {
    "neiroport": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Neiroport",
      "options": {
        "baseURL": "https://neiroport.com/v1"
      },
      "models": {
        "gpt-4o-mini": {
          "name": "gpt-4o-mini",
          "tool_call": true,
          "modalities": {
            "input": [
              "text"
            ],
            "output": [
              "text"
            ]
          },
          "limit": {
            "context": 32768,
            "output": 8192
          }
        }
      }
    }
  }
}
  1. Запустите opencode. Внутри него выполните /connect → Other, укажите ID провайдера neiroport и вставьте ключ Neiroport. Ключ будет храниться отдельно от конфигурации проекта.
  2. В /models выберите neiroport/gpt-4o-mini. Provider ID должен совпадать с neiroport в конфигурации. Для другой модели сначала настройте её маршрут у ключа, затем добавьте её ID в models и измените model.

В терминале OpenCode можно обсуждать код и поручать изменения проекту. Для чата без инструментов используйте Continue Chat. При ACP редактор запускает opencode acp; Neiroport остаётся провайдером модели, а файлы и команды обрабатывает OpenCode на вашем компьютере.

JetBrains · PyCharm / IntelliJ IDEA / WebStorm / другие

В AI Chat выберите Install From ACP Registry → OpenCode, либо Settings → Tools → AI Assistant → Agents. После установки выберите OpenCode в переключателе агента. Если добавляете установленный бинарник вручную, Add Custom Agent откроет ~/.jetbrains/acp.json: объедините настройки с примером ниже и замените FULL_PATH_TO_OPENCODE абсолютным путём к исполняемому файлу.

JetBrains · acp.json
{
  "agent_servers": {
    "Neiroport / OpenCode": {
      "command": "FULL_PATH_TO_OPENCODE",
      "args": [
        "acp"
      ]
    }
  }
}

В Windows используйте нативный OpenCode для ACP в JetBrains: запуск ACP-агентов из WSL сейчас не поддерживается. После настройки ключа и модели перезапустите агентскую сессию.

Zed · ACP

Откройте Command Palette → zed: acp registry и установите OpenCode. Запустите agent: new thread и выберите OpenCode. Для своего установленного бинарника добавьте agent_servers в настройки Zed через меню настроек:

Zed · settings.json
{
  "agent_servers": {
    "Neiroport / OpenCode": {
      "type": "custom",
      "command": "opencode",
      "args": [
        "acp"
      ]
    }
  }
}

Если opencode отсутствует в PATH процесса редактора, укажите абсолютный путь к бинарнику. Модель и ключ задаются в общем профиле OpenCode выше.

Neovim · Avante.nvim / ACP

Установите Avante.nvim с поддержкой ACP. Добавьте acp_providers в параметры setup существующего плагина. Затем выполните :AvanteSwitchProvider, выберите opencode и откройте :AvanteChat. Для списка моделей используйте :AvanteModels.

Avante.nvim · setup options
acp_providers = {
  opencode = {
    command = "opencode",
    args = { "acp" },
  },
},
Установка и команды Avante ↗

3. Проверьте подключение

Поручите агенту найти файл и объяснить его содержимое, затем сделать небольшую правку и запустить тест. Убедитесь, что выбран именно Neiroport и нужная модель. Один агентский шаг может включать несколько оплачиваемых запросов; расходы видны в журнале кабинета.

Ошибки подключения и решения
Пустой список моделей
Настройте доступный маршрут у того же ключа в кабинете. Перечитайте список моделей в клиенте. Test Connection и назначение модели - разные шаги.
401 · invalid_api_key
Вставьте полное значение клиентского ключа Neiroport, проверьте пробелы и срок действия.
402 · insufficient_balance / key_budget
Проверьте баланс и лимит расходов ключа. Успешное получение списка моделей не проверяет баланс для генерации.
403 / 404 · model
Проверьте точный ID, разрешённые модели ключа и выбранный маршрут. Если 404 без кода Neiroport, проверьте Base URL: /v1 должен быть указан один раз.
400 · invalid_output_limit / context_limit
Уменьшите Max Output Tokens до 8192 или лимита модели. Сократите историю и контекст проекта при context_limit.
502 / 503
Посмотрите код ошибки и request_id в журнале. Проверьте доступность маршрута и поддержку tools у выбранного варианта. Для агентских задач нужен маршрут с вызовом инструментов.
Агент недоступен / tools
Проверьте поддержку Agent в версии плагина, capabilities/tool calling и маршрут. При смене ключа обновите его отдельно в каждом клиенте, включая OpenCode.

Три формата API

Выбирайте формат запроса по возможностям модели. Для всех поддерживаемых протоколов используются ваш ключ Neiroport и адрес API сервиса.

OpenAI

/v1/chat/completions

Bearer NEIROPORT_API_KEY

Chat · Responses · Images · Embeddings

Anthropic

/v1/messages

x-api-key: NEIROPORT_API_KEY

anthropic-version: 2023-06-01

Gemini

/v1beta/models/{model}:generateContent

x-goog-api-key: NEIROPORT_API_KEY

contents · parts · generationConfig
Anthropic · cURL
curl https://neiroport.com/v1/messages \
  -H "x-api-key: $NEIROPORT_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "claude-fable-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello!"
    }
  ]
}'
Gemini · cURL
curl "https://neiroport.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "x-goog-api-key: $NEIROPORT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Hello!"
        }
      ]
    }
  ],
  "generationConfig": {
    "maxOutputTokens": 1024
  }
}'

Каталог и варианты моделей

Каталог обновляется автоматически. Идентификаторы и суффиксы сохраняются полностью: разные варианты имеют отдельные модели и тарифы. Маршрут определяется выбранными предпочтениями.

129 моделей и вариантов
GET /v1/models
curl https://neiroport.com/v1/models \
  -H "Authorization: Bearer $NEIROPORT_API_KEY"

Предпочтения маршрутизации

В разделе «Поставщики моделей» сравните предложения и закрепите поставщика отдельно для каждой модели и клиентского ключа. Показанные цены уже включают наценку. Закрепление имеет приоритет над автоматическим выбором и действует в SDK без дополнительных параметров.

Для закреплённых маршрутов переход к другому поставщику отключён. При изменении тарифа или недоступности поставщика запрос отклоняется до отправки; выберите поставщика повторно либо включите автовыбор. В песочнице выберите тот же клиентский ключ, чтобы проверить его маршрут.

При создании API-ключа выберите режим; его можно изменить позже без замены ключа. Все запросы этого ключа используют выбранные предпочтения. В песочнице режим выбирается отдельно.

Приоритет самой низкой цены

Цена имеет основной вес. При близкой цене также учитываются успешность и скорость ответа.

Приоритет высокоскоростной связи

Приоритет маршрутам с быстрым ответом. Цена остаётся одним из критериев выбора.

Стабильность прежде всего

Приоритет высокой успешности запросов и меньшему количеству отказов

Высококачественный комплексный подход

Комплексная оценка успешности, скорости ответа и цены маршрута

Только с гарантией

Только гарантированные маршруты. Если подходящих маршрутов нет, запрос отклоняется.

Стоимость и доступность могут отличаться между режимами. Каталог показывает тариф выбранного режима. Общая и индивидуальная наценка применяются ко всем режимам; неподтверждённый тариф не используется для генерации. В режиме «Только с гарантией» используются исключительно гарантированные маршруты.

В карточке модели указаны форматы API, тип оплаты, вход, выход, чтение и запись кеша либо стоимость запроса. Справочные цены до подтверждения не являются действующим тарифом.

Справочник эндпоинтов

Для относительных путей используется Base URL /v1. Путь Gemini /v1beta начинается от корня сервиса. Методы с отметкой «Недоступно» пока не подключены в Neiroport.

Текст и агенты

POST
/chat/completions

Диалог; обычный ответ или SSE.

Шлюз
POST
/responses

Responses API с явным входом и лимитом ответа.

Шлюз
POST
/messages

Нативный формат Anthropic Messages.

Шлюз
POST
/v1beta/models/{model}:generateContent

Нативный формат Google Gemini.

Шлюз
POST
/completions

Завершение текстового prompt.

Шлюз

Мультимодальность и поиск

POST
/images/generations

Создание изображения; тарификация по запросу.

Шлюз
POST
/images/edits

Редактирование изображений, multipart/form-data.

Недоступно
POST
/embeddings

Векторные представления текста.

Шлюз
POST
/rerank

Ранжирование документов относительно запроса.

Шлюз
POST
/audio/transcriptions

Распознавание речи из аудиофайла.

Недоступно
POST
/audio/speech

Синтез речи; ответ содержит аудио.

Недоступно

Модели, задачи и realtime

GET
/models

Модели, доступные вашему ключу.

Шлюз
GET
/models/{model}

Информация о конкретном идентификаторе.

Шлюз
WS
/realtime

Соединение WebSocket в реальном времени.

Недоступно
POST
/mj/submit/imagine

Создание задачи Midjourney.

Недоступно
GET
/mj/task/{id}/fetch

Состояние задачи Midjourney.

Недоступно
POST
/suno/submit/{action}

Музыкальная задача Suno.

Недоступно
Responses
curl https://neiroport.com/v1/responses \
  -H "Authorization: Bearer $NEIROPORT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "qwen3.6-27b",
  "input": "Hello!",
  "max_output_tokens": 1024,
  "store": false
}'
Embeddings
curl https://neiroport.com/v1/embeddings \
  -H "Authorization: Bearer $NEIROPORT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "gemini-embedding-2-preview",
  "input": "Text to embed"
}'
Images
curl https://neiroport.com/v1/images/generations \
  -H "Authorization: Bearer $NEIROPORT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "google-imagen-4",
  "prompt": "A quiet mountain lake",
  "n": 1,
  "size": "1024x1024"
}'

Справочник ошибок

Ищите по error.code и request_id. Ошибки API и расширенный справочник совместимости доступны отдельно. Внутренние данные маршрутизации не передаются клиенту.

Структура ответа с ошибкой
{
  "error": {
    "code": "model_not_found",
    "message": "model_not_found"
  },
  "request_id": "http_xxxxxxxxxxxx"
}
Найдено: 31 · Всего: 31
HTTP 401invalid_api_keyТребуется исправление
Место ошибки
auth/key
Описание
Ключ отсутствует, недействителен, отозван или отключён.
Решение
Проверьте ключ, срок действия и заголовок авторизации. Используйте ключ нашего сервиса для клиентских запросов.
HTTP 403model_not_allowedТребуется исправление
Место ошибки
auth/model
Описание
Ключ не разрешает выбранную модель.
Решение
Проверьте статус аккаунта, права ключа и ограничения для выбранной модели или операции. Повтор без изменения прав не поможет.
HTTP 403account_disabledТребуется исправление
Место ошибки
auth/account
Описание
Аккаунт отключён.
Решение
Проверьте статус аккаунта, права ключа и ограничения для выбранной модели или операции. Повтор без изменения прав не поможет.
HTTP 402insufficient_balanceТребуется исправление
Место ошибки
billing/balance
Описание
Доступного баланса недостаточно для резервирования запроса.
Решение
Проверьте доступный баланс, лимит ключа и выбранный тариф. Измените соответствующий лимит перед повторной отправкой.
HTTP 402key_budgetТребуется исправление
Место ошибки
billing/key_budget
Описание
Бюджет API-ключа не покрывает запрос.
Решение
Проверьте доступный баланс, лимит ключа и выбранный тариф. Измените соответствующий лимит перед повторной отправкой.
HTTP 404model_not_foundТребуется исправление
Место ошибки
routing/model
Описание
Модель отсутствует или не активирована для запросов.
Решение
Сверьте путь, точный идентификатор модели или задачи и её доступность. Удалённые данные могут быть недоступны для восстановления.
HTTP 400invalid_inputТребуется исправление
Место ошибки
request/validation
Описание
Тело запроса или обязательные поля некорректны.
Решение
Сверьте обязательные поля, формат данных и возможности модели. Исправьте запрос, затем отправьте его с новым идентификатором операции.
HTTP 400unsupported_inputТребуется исправление
Место ошибки
request/format
Описание
Формат входа не поддерживается этим адаптером шлюза.
Решение
Сверьте обязательные поля, формат данных и возможности модели. Исправьте запрос, затем отправьте его с новым идентификатором операции.
HTTP 400unsupported_billingТребуется исправление
Место ошибки
billing/tariff
Описание
Для операции нет подтверждённого поддерживаемого тарифа.
Решение
Сверьте обязательные поля, формат данных и возможности модели. Исправьте запрос, затем отправьте его с новым идентификатором операции.
HTTP 400context_limitТребуется исправление
Место ошибки
request/context
Описание
Запрос и лимит ответа превышают окно контекста модели.
Решение
Сверьте обязательные поля, формат данных и возможности модели. Исправьте запрос, затем отправьте его с новым идентификатором операции.
HTTP 400invalid_output_limitТребуется исправление
Место ошибки
request/output
Описание
Недопустимый лимит токенов ответа.
Решение
Сверьте обязательные поля, формат данных и возможности модели. Исправьте запрос, затем отправьте его с новым идентификатором операции.
HTTP 409request_already_submittedТребуется исправление
Место ошибки
request/idempotency
Описание
Операция с этим Idempotency-Key уже отправлена.
Решение
Проверьте исходный request_id в истории. Повторная отправка с тем же Idempotency-Key не создаёт нового списания; для новой операции используйте новый ключ.

Учёт расхода и потоковые ответы

Тариф

Стоимость рассчитывается по опубликованному тарифу выбранной модели и режима. Применяются ставки входа, выхода и кеша либо фиксированная цена запроса. Изменения тарифов относятся к новым запросам.

Usage

Для токеновых тарифов учитываются вход, выход, чтение и запись кеша. Для подтверждённых тарифов по запросу списывается фиксированная цена.

История и резерв

Перед вызовом резервируется максимальная сумма. После usage списывается фактическая стоимость. Неопределённые расходы остаются на проверке с видимым резервом.

Python · streaming
stream = client.chat.completions.create(
    model="qwen3.6-27b",
    messages=[{"role": "user", "content": "Hello!"}],
    max_tokens=1024,
    stream=True,
    stream_options={"include_usage": True}
)

for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="")
    if chunk.usage:
        print("\nUsage:", chunk.usage)

Для платных POST-запросов передавайте уникальный Idempotency-Key. Повтор с тем же ключом возвращает 409 и request_id исходного запроса. При обрыве потока проверьте историю до повторной отправки.