# API LM Studio: как включить токен и проверить доступ

Источник: https://modelium.tech/zhurnal/lm-studio-api-autentifikaciya/

В LM Studio локальный API по умолчанию не требует ключа: его нужно создать и отдельно включить Require Authentication в настройках сервера. На своей машине проверьте один и тот же GET-запрос без токена и с токеном: первый должен быть отклонён, второй — получить список моделей. Доступ по сети настраивается отдельно и не становится безопасным только от наличия токена.

**Срез документации: 27 сентября 2026 года.** Инструкция относится к обычному LM Studio 0.4.0 или новее, а не к отдельному приложению Bionic. Токены и обязательная аутентификация описаны в официальном руководстве [s1](#src-s1). Modelium не запускал эту конфигурацию и не проверял её в своей сети.

## Когда LM Studio нужен API key?

Если программе на **том же компьютере** нужен локальный сервер, LM Studio позволяет начать без токена, но по умолчанию API-запросы не аутентифицируются [s1](#src-s1)[s5](#src-s5). Это означает, что сам факт работы `curl` не подтверждает защиту. Чтобы требовать ключ, мало создать токен: включите **Require Authentication** в **Developers Page → Server Settings** [s1](#src-s1)[s2](#src-s2). Версия с поддержкой этой функции — LM Studio **0.4.0 или новее** [s1](#src-s1).

Ниже — узкий тест доступа к своему серверу. Он не проверяет качество модели или нулевой сетевой исходящий трафик. Если нужен первый запуск, начните с [общего гайда LM Studio](/zhurnal/lm-studio/); для отдельного headless-процесса есть [гайд по llmster](/zhurnal/lm-studio-llmster-server/). Сервер и модель — разные части стека: список моделей не означает, что конкретная модель уже загружена и ответит на запрос [s6](#src-s6).

## Что подготовить перед включением токена?

Проверьте версию установленного LM Studio, запустите приложение, откройте страницу **Developers** и включите API-сервер. Официальный quickstart указывает типичный адрес `http://localhost:1234`; если вы меняли порт, подставьте **фактический** адрес вашей установки [s5](#src-s5)[s2](#src-s2). CLI-путь `lms server start --bind 127.0.0.1 --port 1234` явно оставляет привязку только к localhost; у `lms server start` параметр `--bind` поддерживается, а `127.0.0.1` указан как значение по умолчанию [s4](#src-s4). Не запускайте одновременно второй экземпляр на уже занятом порту.

Для первого теста не используйте реальные документы и не открывайте порт в LAN. Локальный адрес означает ограничение прямых подключений другими машинами, **не** защиту от других процессов и пользователей на том же хосте. Проверку реального сетевого выхода делайте отдельно по [методике офлайн-контура](/zhurnal/proverka-offline-kontura-ii/).

## Как создать и сделать токен обязательным?

- Откройте **Developers Page → Server Settings → Manage Tokens**, создайте отдельный именованный токен для тестового клиента и проверьте доступные разрешения. Скопируйте значение сразу: документация предупреждает, что оно не будет показано повторно [s1](#src-s1).

- В том же разделе включите **Require Authentication**. Переключатель заставляет API-клиентов предъявлять действительный токен через заголовок `Authorization`; просто созданный, но не включённый ключ не ограничивает доступ [s1](#src-s1)[s2](#src-s2).

- Пока не нужен доступ с другого устройства, оставьте **Serve on Local Network** выключенным и `--bind 127.0.0.1`. Это отдельная настройка от обязательного токена [s3](#src-s3)[s4](#src-s4).

Права токена выбирайте под нужные операции: для контрольного чтения списка моделей не предоставляйте более широкие права без причины. Названия и фактическое действие разрешений проверьте в интерфейсе своей версии; документация подтверждает возможность их редактирования, но не заменяет тест на вашей установке [s1](#src-s1). Не храните токен в URL, истории команд или скриншоте.

## Как проверить запрос без ключа и с ключом?

Официальный REST-метод `GET /api/v1/models` не запускает генерацию; он возвращает список моделей, включая сведения о загруженных экземплярах [s6](#src-s6). На **своём** компьютере с работающим сервером выполните два одинаковых запроса. Команды печатают только HTTP-код, не тело ответа:

BASE_URL=http://127.0.0.1:1234curl -sS -o /dev/null -w 'без токена: %{http_code}\n' "$BASE_URL/api/v1/models"read -r -s -p 'Токен LM Studio: ' LM_API_TOKEN; printf '\n'curl -sS -o /dev/null -w 'с токеном: %{http_code}\n' \  -H "Authorization: Bearer $LM_API_TOKEN" "$BASE_URL/api/v1/models"unset LM_API_TOKEN

Ожидаемая **проверяемая разница** при включённой обязательной аутентификации: запрос без токена отклоняется (неуспешный HTTP-код), запрос с действительным токеном и правом чтения списка проходит (успешный HTTP-код) [s1](#src-s1)[s2](#src-s2)[s6](#src-s6). Если **оба** запроса успешны, не считайте сервер защищённым: перепроверьте переключатель, фактический порт и адрес клиента. Если оба отклонены, проверьте права и значение токена, формат `Bearer`, состояние сервера; не публикуйте порт, пока причина не найдена. Код `000` в `curl` означает, что HTTP-ответ вообще не получен: сперва проверьте запуск, адрес и порт. Не сохраняйте секрет или полный вывод `curl -v` в публичном логе.

У REST API и OpenAI-совместимого API разные маршруты: первый использует `/api/v1/models`, второй — `/v1/models` и `/v1/chat/completions` [s6](#src-s6)[s7](#src-s7). Для клиента с OpenAI-совместимым интерфейсом укажите базовый адрес `http://127.0.0.1:1234/v1`, передайте реальный токен вместо демонстрационного `api_key` и **повторите проверку отказа без ключа именно на том endpoint, который использует клиент** [s1](#src-s1)[s7](#src-s7)[s8](#src-s8). Пример `api_key="lm-studio"` в документации Chat Completions не является созданным вами секретом и не доказывает включённую аутентификацию [s8](#src-s8)[s1](#src-s1). После теста доступа выберите идентификатор реально доступной модели и отдельно проверьте ответ `POST /v1/chat/completions` на тестовом вводе; список `/v1/models` при включённой Just-In-Time загрузке может содержать ещё не загруженные модели [s7](#src-s7)[s8](#src-s8).

## Когда можно открыть доступ из локальной сети?

**Serve on Local Network** меняет привязку сервера и открывает его другим устройствам в той же сети; CLI-вариант `lms server start --bind 0.0.0.0` слушает все IPv4-интерфейсы, а не только localhost [s3](#src-s3)[s4](#src-s4). Эти варианты не включают аутентификацию автоматически: перед расширением доступа повторите отрицательный и положительный тесты с **другой разрешённой машины**, ограничьте доступ сетевыми правилами и не выставляйте сервис в интернет. LM Studio прямо предупреждает об опасности bind, отличного от `127.0.0.1`, и рекомендует включить аутентификацию [s3](#src-s3)[s4](#src-s4).

Токен — не замена защищённому каналу: открытый HTTP с заголовком `Bearer` не следует передавать через недоверенную сеть. Для удалённых клиентов проектируйте отдельный защищённый туннель или прокси, ограничение адресов, учёт токенов и их отзыв; конкретная схема зависит от вашего контура. Не включайте **CORS** «на всякий случай»: документация CLI предупреждает о рисках, а Server Settings отдельно содержит переключатели доступа API-клиентов к MCP-серверам, включая способные читать файлы или приватные данные [s4](#src-s4)[s2](#src-s2). Если MCP вам не нужен, не расширяйте соответствующие разрешения. После изменения сетевой конфигурации повторите оба запроса, а для офлайн-требований проведите [отдельный сетевой тест](/zhurnal/proverka-offline-kontura-ii/).

## Что считать результатом?

Зафиксируйте версию приложения, адрес и порт, включённость Require Authentication и Serve on Local Network, HTTP-код без токена, HTTP-код с ним и имя проверенного endpoint. Не записывайте сам токен. **Успешный результат** — отказ без ключа и доступ с нужным ключом именно с предполагаемой клиентской машины; результат генерации на выбранной модели проверяется отдельным запросом [s1](#src-s1)[s6](#src-s6)[s7](#src-s7). Если это не удалось, верните сервер к локальной привязке и не открывайте сетевой интерфейс. Для выбора модели и дальнейшего теста перейдите к [гайду LM Studio](/zhurnal/lm-studio/).

## Источники

1. [LM Studio — Authentication and API Tokens](https://lmstudio.ai/docs/developer/core/authentication) — получено 2026-09-27
2. [LM Studio — Server Settings](https://lmstudio.ai/docs/developer/core/server/settings) — получено 2026-09-27
3. [LM Studio — Serve on Local Network](https://lmstudio.ai/docs/developer/core/server/serve-on-network) — получено 2026-09-27
4. [LM Studio CLI — lms server start](https://lmstudio.ai/docs/cli/serve/server-start) — получено 2026-09-27
5. [LM Studio — REST API Quickstart](https://lmstudio.ai/docs/developer/rest/quickstart) — получено 2026-09-27
6. [LM Studio — REST API List your models](https://lmstudio.ai/docs/developer/rest/list) — получено 2026-09-27
7. [LM Studio — OpenAI Compatibility Endpoints](https://lmstudio.ai/docs/developer/openai-compat) — получено 2026-09-27
8. [LM Studio — Chat Completions](https://lmstudio.ai/docs/developer/openai-compat/chat-completions) — получено 2026-09-27
