# Lovable API Key: где хранить ключ и как его защитить

> Куда вставлять Lovable API Key, почему ему место в Secrets и серверной функции и как подключить GPT, Claude или DeepSeek без открытого ключа.

- Canonical HTML: https://omniakey.com/ru/blog/lovable-api-key
- Markdown: https://omniakey.com/ru/blog/lovable-api-key.md
- Published: 2026-11-02 (updated 2026-11-02)
- Author: Kiki, COO at OmniaKey
- Language: ru
- Category: API setup
- Reading time: 10 min
- All posts: https://omniakey.com/blog/llms.txt

---

В Lovable ваш Lovable API Key живёт в Secrets: откройте More → Settings → Secrets на панели проекта или заполните форму Add secret, которую Lovable показывает в чате проекта. Серверный код читает ключ оттуда, поэтому в браузер он не попадает. Не отправляйте ключ сообщением в чат и не вставляйте его в код фронтенда.

## Короткий ответ

- **Свой ключ** (GPT, Claude, Resend): Secrets или форма, которую показывает коннектор.
- **Ключи самого Lovable:** `LOVABLE_API_KEY` создаётся автоматически; ключ рабочего пространства (`lov_…`) требует Business или Enterprise.
- **GPT, Claude или DeepSeek со своим ключом:** попросите Lovable сделать серверную функцию, потому что встроенный AI-коннектор ваш ключ не использует.
- **Если ключ утёк:** сначала отзовите его у провайдера, потом замените секрет.

## Какой Lovable API Key вам нужен?

Lovable API Key — это четыре разные вещи.

|Что вы хотите|Ключ|Откуда он берётся|
|-|-|-|
|Вызывать GPT, Resend или другой платный сервис|Свой ключ этого сервиса|Secrets или форма коннектора|
|Пользоваться встроенным ИИ Lovable|`LOVABLE_API_KEY`|Lovable создаёт его для каждого проекта|
|Управлять проектами через API Lovable|Ключ рабочего пространства (`lov_…`)|Workspace settings → API keys & OAuth → Workspace access tokens → New API key, Business или Enterprise, owner или admin|
|Пользоваться MCP-сервером или Build with URL|API-ключ не нужен|OAuth для MCP; ничего для Build with URL|

Ключ рабочего пространства идёт только в API Lovable, в заголовке `Lovable-API-Key`, и его значение показывают один раз ([документация по ключам API](https://docs.lovable.dev/features/api-keys), проверено 2 ноября 2026 года). Он управляет проектами и публикует их; модели ИИ он не вызывает и приложения не собирает ([Lovable API](https://docs.lovable.dev/integrations/lovable-api)), и это не `LOVABLE_API_KEY` проекта ([документация по ИИ](https://docs.lovable.dev/features/ai)).

Дальше речь только о первой строке — о вашем собственном ключе.

## Куда в Lovable вставлять API-ключ

1. Lovable сам попросит. Когда функции нужен ключ, в чате проекта открывается форма Add secret. Вводите значение там, а не сообщением: форма сохраняет его сразу в секреты проекта и не пускает в историю чата ([документация Lovable о своих API](https://docs.lovable.dev/integrations/any-api), проверено 2 ноября 2026 года).
2. Вы добавляете сами. Откройте More → Settings → Secrets на панели проекта, нажмите Add secret и введите одну или несколько пар «имя — значение» ([документация по Secrets](https://docs.lovable.dev/features/secrets)).

В changelog Lovable от 26 августа 2026 года этот путь называется More → Cloud → Secrets, так что ищите там, если меню выглядит иначе ([changelog](https://docs.lovable.dev/changelog)).

Правила, на которых спотыкаются:

- Только запись: значение можно заменить или удалить, но не прочитать.
- Имена с `VITE_` отклоняются: это значения времени сборки, браузер их видит, и место им в `.env`.
- Имена с `SUPABASE_` и `LOVABLE_` зарезервированы и заполняются автоматически.
- Секреты принадлежат одному проекту. После ремикса свои ключи вводят заново, потому что пересоздаются только ключи, созданные Lovable.

В своём проекте Supabase в панели бэкенда есть кнопка Manage secrets: она открывает дашборд Supabase, где хранилище называется Edge Function Secrets ([секреты Supabase](https://supabase.com/docs/guides/functions/secrets), проверено 2 ноября 2026 года). Два проекта Lovable на одном проекте Supabase перезаписывают секреты друг друга, включая `LOVABLE_API_KEY` ([интеграция с Supabase](https://docs.lovable.dev/integrations/supabase)).

## Куда идут ключи Resend, Stripe и Google Maps?

Не каждый ключ попадает прямо в Secrets: у этих сервисов есть формы коннекторов ([Stripe](https://docs.lovable.dev/integrations/stripe), [Resend](https://docs.lovable.dev/integrations/resend), [свои API](https://docs.lovable.dev/integrations/any-api), проверено 2 ноября 2026 года).

|Сервис|Куда идёт ключ|Что стоит знать|
|-|-|-|
|Stripe|Форма Connect Stripe в чате проекта|Не отправляйте ключ сообщением в чат|
|Resend|Форма подключения|Ключи начинаются с `re_`|
|Google Maps|Два ключа в форме подключения|Серверный ключ приватный; браузерный ключ публичный по замыслу|
|Любой другой сервис|Свой коннектор или ключ в Secrets|Серверный код читает секрет|

Google Maps — исключение. Его браузерный ключ публичен по замыслу и попадает во фронтенд как `VITE_LOVABLE_CONNECTOR_GOOGLE_MAPS_BROWSER_KEY`, а ограничение по сайту не даёт другим сайтам им воспользоваться ([Google Maps](https://docs.lovable.dev/integrations/google-maps), проверено 2 ноября 2026 года). Серверный ключ остаётся приватным. Учётные данные коннекторов хранятся зашифрованными, и прочитать их обратно не может никто, даже Lovable ([безопасность интеграций](https://docs.lovable.dev/integrations/security)).

## Как подключить GPT, Claude или DeepSeek со своим ключом

Сначала проверьте, нужен ли ключ вообще: встроенному AI-коннектору он не нужен. Lovable создаёт `LOVABLE_API_KEY` для каждого проекта и по умолчанию запускает [GPT-6 Astra](https://omniakey.com/ru/gpt-6-astra); чат-модели Claude есть только в новых приложениях на TanStack Start, созданных с 13 мая 2026 года ([документация по ИИ](https://docs.lovable.dev/features/ai), [AI chat](https://docs.lovable.dev/features/ai-chat), проверено 2 ноября 2026 года).

Этот коннектор ваш ключ не использует: он всегда работает через Lovable и списывает кредиты рабочего пространства. В документации Lovable, какой мы её прочитали 2 ноября 2026 года, DeepSeek не упоминается. Со своим ключом попросите Lovable вызывать провайдера из серверной функции, а ключ положите в Secrets.

Кнопки «создать функцию» нет: опишите функцию в чате проекта, и Lovable напишет и развернёт её ([Edge functions](https://docs.lovable.dev/features/edge-functions)). Новые приложения на TanStack Start (созданные с 13 мая 2026 года, в Enterprise — с 22 июня 2026 года) получают серверную функцию; старые приложения React + Vite получают Edge Function, то есть код, который работает на сервере.

Наш код использует [API, совместимый с OpenAI](https://docs.omniakey.com/ru/api/openai-compatible) от OmniaKey: один ключ открывает [GPT-6.1 Terra](https://omniakey.com/ru/gpt-6-1-terra), [Claude Sonnet 5.5](https://omniakey.com/ru/claude-sonnet-5-5) и [DeepSeek](https://omniakey.com/ru/deepseek-flash).

1. Создайте ключ у провайдера. Для OmniaKey: зарегистрируйтесь на omniakey.com и откройте Dashboard → tokens ([быстрый старт](https://docs.omniakey.com/ru/quick-start)).

2. Вставьте этот промпт в чат проекта:

   ```text
   Add an AI chat feature that uses my own API key, not the built-in AI connector.
   Create a backend function named "chat". It reads OMNIAKEY_API_KEY from Secrets and calls
   POST https://api.omniakey.com/v1/chat/completions with the model and messages the frontend sends.
   Only allow these models: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash.
   Require a signed-in user. Never put the key in frontend code.
   Ask me for the key with the Add secret form.
   ```

3. Введите ключ в форме Add secret под именем `OMNIAKEY_API_KEY`.

Этот промпт мы не запускали в Lovable: у нас нет аккаунта Lovable, а шаги для Lovable взяты из его документации. Функция должна получиться такой; именно этот вариант мы запускали на своей машине.

```ts
// supabase/functions/chat/index.ts
// Браузер отправляет { model, messages }; эта функция добавляет ключ API на сервере.
const corsHeaders = {
  "Access-Control-Allow-Origin": "*",
  "Access-Control-Allow-Headers": "authorization, x-client-info, apikey, content-type",
};

const ALLOWED_MODELS = ["gpt-6.1-terra", "claude-sonnet-5-5", "deepseek-flash"];

function json(body: unknown, status = 200) {
  return new Response(JSON.stringify(body), {
    status,
    headers: { ...corsHeaders, "Content-Type": "application/json" },
  });
}

Deno.serve(async (req) => {
  if (req.method === "OPTIONS") {
    return new Response("ok", { headers: corsHeaders });
  }

  const apiKey = Deno.env.get("OMNIAKEY_API_KEY");
  if (!apiKey) {
    return json({ error: "OMNIAKEY_API_KEY is not set" }, 500);
  }

  const { model, messages } = await req.json();
  if (!ALLOWED_MODELS.includes(model)) {
    return json({ error: `model must be one of: ${ALLOWED_MODELS.join(", ")}` }, 400);
  }

  const upstream = await fetch("https://api.omniakey.com/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ model, messages, max_tokens: 800 }),
  });

  const data = await upstream.json();
  if (!upstream.ok) {
    return json({ error: data.error?.message ?? "upstream error" }, upstream.status);
  }
  return json({ reply: data.choices[0].message.content, model: data.model, usage: data.usage });
});
```

В тестовом варианте мы убрали проверку входа, чтобы вызывать функцию из скрипта; в промпте выше Lovable добавляет её сам, потому что правила безопасности Lovable требуют решать вопрос аутентификации на сервере ([best practices](https://docs.lovable.dev/tips-tricks/security-best-practices)).

Из браузера вызов выглядит так ([supabase-js](https://supabase.com/docs/reference/javascript/functions-invoke)):

```ts
const { data, error } = await supabase.functions.invoke("chat", {
  body: { model: "deepseek-flash", messages: [{ role: "user", content: "Say hello in five words." }] },
});
```

С другим провайдером замените URL и ID моделей на значения из его документации. Ключ OmniaKey подходит и для [своего API-ключа в Cline](https://omniakey.com/ru/blog/cline-custom-api-key), и для [своих моделей в Factory Droid](https://omniakey.com/ru/blog/factory-droid-custom-models).

## Что показал запуск

Мы запускали функцию на своей машине, не в Lovable, с Deno 2.9.8 2 ноября 2026 года, и обращались к ней как браузер: с заголовком `Origin` и preflight-запросом CORS.

|Проверка|Статус|Что вернулось|
|-|-|-|
|Preflight (`OPTIONS`)|200|`*` и список разрешённых заголовков|
|`gpt-6.1-terra`|200 за 3.28 s|Ответ, 53 токена всего|
|`claude-sonnet-5-5`|200 за 2.85 s|Ответ, 134 токена всего|
|`deepseek-flash`|200 за 1.75 s|Ответ, 92 токена всего|
|Модель вне списка|400|`model must be one of: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash`|
|Секрет отсутствует|500|`OMNIAKEY_API_KEY is not set`|
|Неверный ключ|401|`Invalid token (request id: …)`|

По одному вызову на модель, так что каждое время — одна выборка; `deepseek-flash` ответил как `deepseek-v4-1-flash-261017`.

### Почему видно только "non-2xx status code"

При ошибке `supabase.functions.invoke` возвращает только `Edge Function returned a non-2xx status code`, а `data` равно null. Настоящее сообщение функции лежит в `await error.context.json()`:

```ts
if (error) {
  const details = await error.context.json();
  console.error(details.error);
}
```

- 401: ключ неверный. У нас было `Invalid token (request id: …)`.
- 500 с `OMNIAKEY_API_KEY is not set`: секрета нет или он назван иначе.
- 400: модели нет в вашем списке.

## Как проверить, не виден ли ключ

Ключ в коде фронтенда виден пользователям, и его нужно считать скомпрометированным ([best practices](https://docs.lovable.dev/tips-tricks/security-best-practices), проверено 2 ноября 2026 года).

- Quick security scan запускается сам при каждой публикации.
- Deep security scan — нет: запустите его в Security view проекта ([Security view](https://docs.lovable.dev/features/security-view)).
- Ищите группу Leaked secrets & credentials.
- Оба сканирования бесплатны; только массовые исправления расходуют 10 бесплатных, а дальше кредиты ([сканирование безопасности](https://docs.lovable.dev/features/security)).

Вручную: в Chrome откройте инструменты разработчика опубликованного приложения, нажмите Command+Option+F на Mac или Control+Shift+F в Windows и Linux и поищите в загруженных файлах первые символы ключа. Если приватный ключ лежит в значении `VITE_`, действуйте: такие значения собираются для браузера ([поиск в DevTools](https://developer.chrome.com/docs/devtools/search)). Чистый поиск покрывает только файлы, которые загрузила страница, поэтому запустите и сканирование.

Спрятанный ключ не мешает посторонним вызывать вашу функцию: функцию без проверки входа может вызвать кто угодно, и каждый вызов тратит ваш ключ. Документация Lovable требует проверять вход на сервере; наш список моделей и `max_tokens: 800` ограничивают каждый вызов; документация OmniaKey советует отдельный ключ для каждого окружения с лимитом расходов ([документация API OmniaKey](https://docs.omniakey.com/ru/api/authentication)).

## Что делать, если ключ утёк

1. Отзовите ключ в сервисе, который его выдал, и создайте там новый; в документации Lovable действие Rotate есть только для её собственного ключа ([документация по Secrets](https://docs.lovable.dev/features/secrets)).
2. Замените значение в Secrets, в форме коннектора или в Supabase. В Supabase функция читает новый секрет сразу, без повторного деплоя ([секреты Supabase](https://supabase.com/docs/guides/functions/secrets)). Делает ли то же встроенный бэкенд Lovable, Cloud, в документации не сказано, поэтому вызовите функцию один раз и проверьте.
3. Уберите ключ из кода фронтенда или из `.env` и запустите Deep security scan снова.
4. Посмотрите в панели использования провайдера, нет ли вызовов, которых вы не делали.

С ключами самого Lovable всё иначе. У `LOVABLE_API_KEY` есть действие Rotate для роли editor и выше: он выдаёт новый ключ и обновляет окружение Edge Function. Ключ рабочего пространства (`lov_…`), о котором сообщил GitHub secret scanning, отзывается автоматически; в остальных случаях отзывайте его сами ([документация по ключам API](https://docs.lovable.dev/features/api-keys)).

## Сколько это стоит

Счёт Lovable и счёт провайдера раздельные: со своим ключом провайдер берёт деньги за использование модели, а приложение обращается к Cloud только чтобы запустить функцию ([документация по ИИ](https://docs.lovable.dev/features/ai), [Cloud](https://docs.lovable.dev/features/cloud), проверено 2 ноября 2026 года).

Встроенный AI-коннектор списывает кредиты рабочего пространства: Free, Pro и Business получают 4-credit в месяц на ИИ, когда они кончаются, приходит 402, а при превышении rate limit — 429. План Free даёт ещё 5 build credits в день, до 30 в месяц, плюс 20 Cloud credits ([цены](https://lovable.dev/pricing)); в таблице тарифов Lovable указано 100 credits за $25 в месяц на Pro ([тарифы](https://docs.lovable.dev/introduction/subscription-plans), проверено 2 ноября 2026 года).

Актуальные цены OmniaKey смотрите на страницах [GPT-6.1 Terra](https://omniakey.com/ru/gpt-6-1-terra), [Claude Sonnet 5.5](https://omniakey.com/ru/claude-sonnet-5-5) и [DeepSeek](https://omniakey.com/ru/deepseek-flash).

## Частые вопросы

### Где найти свой Lovable API Key?

Зависит от ключа. `LOVABLE_API_KEY` создаётся для проекта и лежит в Secrets этого проекта: там его можно перевыпустить, но не прочитать. Ключ рабочего пространства берётся в Workspace settings → API keys & OAuth → Workspace access tokens и показывается один раз.

### Есть ли бесплатный Lovable API Key?

Ближе всего `LOVABLE_API_KEY`: встроенный AI-коннектор создаёт его для каждого проекта, а у Free, Pro и Business есть 4-credit в месяц на ИИ. Ключу рабочего пространства нужен план Business или Enterprise.

### Можно ли подключить свой ключ OpenAI к Lovable AI?

Со встроенным AI-коннектором — нет, он всегда работает через Lovable и списывает кредиты рабочего пространства. Со своим ключом попросите Lovable сделать серверную функцию, которая вызывает провайдера напрямую, а ключ положите в Secrets.

### Ключ API класть в Secrets или в .env?

В Secrets, если ключ приватный и его читает серверный код. `.env` — для значений `VITE_`, которые попадают в сборку приложения и видны в браузере.

### Почему Lovable не подключается к GPT, Claude или DeepSeek?

Сначала прочитайте сообщение функции, в нём названа причина:

- 500 с `OMNIAKEY_API_KEY is not set`: секрета нет или он сохранён под другим именем.
- 401: ключ неверный или отозван.
- 400: ID модели нет в вашем списке.
- 404: неверный базовый URL; наш заканчивается на `/v1/chat/completions`, и большинство ошибок настройки — это лишний или неверный суффикс протокола ([документация ошибок OmniaKey](https://docs.omniakey.com/ru/api/errors)).

В браузере видно только `Edge Function returned a non-2xx status code`, поэтому логируйте `error.context`, как показано выше, чтобы понять, какой это случай.

## Проверенные источники

- [Документация Lovable по Secrets](https://docs.lovable.dev/features/secrets), проверено 2 ноября 2026 года
- [Ключи API Lovable](https://docs.lovable.dev/features/api-keys), проверено 2 ноября 2026 года
- [Lovable API](https://docs.lovable.dev/integrations/lovable-api), проверено 2 ноября 2026 года
- [MCP-сервер Lovable](https://docs.lovable.dev/integrations/lovable-mcp-server), проверено 2 ноября 2026 года
- [Build with URL](https://docs.lovable.dev/integrations/build-with-url), проверено 2 ноября 2026 года
- [Возможности ИИ в Lovable](https://docs.lovable.dev/features/ai), проверено 2 ноября 2026 года
- [Lovable AI chat](https://docs.lovable.dev/features/ai-chat), проверено 2 ноября 2026 года
- [Lovable Edge functions](https://docs.lovable.dev/features/edge-functions), проверено 2 ноября 2026 года
- [Lovable Cloud](https://docs.lovable.dev/features/cloud), проверено 2 ноября 2026 года
- [Свои API и коннекторы](https://docs.lovable.dev/integrations/any-api), проверено 2 ноября 2026 года
- [Интеграция со Stripe](https://docs.lovable.dev/integrations/stripe), проверено 2 ноября 2026 года
- [Интеграция с Resend](https://docs.lovable.dev/integrations/resend), проверено 2 ноября 2026 года
- [Интеграция с Google Maps](https://docs.lovable.dev/integrations/google-maps), проверено 2 ноября 2026 года
- [Безопасность интеграций](https://docs.lovable.dev/integrations/security), проверено 2 ноября 2026 года
- [Интеграция с Supabase](https://docs.lovable.dev/integrations/supabase), проверено 2 ноября 2026 года
- [Безопасность Lovable](https://docs.lovable.dev/features/security), проверено 2 ноября 2026 года
- [Security view в Lovable](https://docs.lovable.dev/features/security-view), проверено 2 ноября 2026 года
- [Правила безопасности Lovable](https://docs.lovable.dev/tips-tricks/security-best-practices), проверено 2 ноября 2026 года
- [Тарифы Lovable](https://docs.lovable.dev/introduction/subscription-plans), проверено 2 ноября 2026 года
- [Changelog Lovable](https://docs.lovable.dev/changelog), проверено 2 ноября 2026 года
- [Цены Lovable](https://lovable.dev/pricing), проверено 2 ноября 2026 года
- [Секреты Edge Functions в Supabase](https://supabase.com/docs/guides/functions/secrets), проверено 2 ноября 2026 года
- [Supabase functions.invoke](https://supabase.com/docs/reference/javascript/functions-invoke), проверено 2 ноября 2026 года
- [Поиск в Chrome DevTools](https://developer.chrome.com/docs/devtools/search), проверено 2 ноября 2026 года

Документация самого OmniaKey, проверено 2 ноября 2026 года: [быстрый старт](https://docs.omniakey.com/ru/quick-start), [API, совместимый с OpenAI](https://docs.omniakey.com/ru/api/openai-compatible), [аутентификация](https://docs.omniakey.com/ru/api/authentication) и [ошибки](https://docs.omniakey.com/ru/api/errors).
