Lovable API Key: onde colocar e como manter segura
Onde a chave vai, as quatro coisas que chamam de Lovable API key, uma função que rodamos com GPT, Claude e DeepSeek, e o que fazer se uma chave vazar.
Nesta página
- Resposta curta
- Qual Lovable API Key você precisa?
- Como adicionar uma API key no Lovable
- Para onde vão as chaves do Resend, do Stripe e do Google Maps?
- Como ligar GPT, Claude ou DeepSeek com a sua própria chave
- O que aconteceu quando rodamos
- Por que você só vê "non-2xx status code"
- Como saber se a sua chave está exposta
- O que fazer se uma chave vazou
- Quanto custa
- Perguntas frequentes
- Onde encontro minha Lovable API key?
- Existe uma Lovable API key grátis?
- Posso usar minha própria chave da OpenAI com o Lovable AI?
- A API key vai nos Secrets ou no .env?
- Por que o Lovable não conecta com GPT, Claude ou DeepSeek?
- Fontes verificadas
No Lovable, sua Lovable API Key vai para os Secrets: abra More → Settings → Secrets na barra do projeto, ou use o formulário Add secret que o Lovable mostra no chat do projeto. O código do backend lê a chave dali, então ela nunca chega ao navegador. Não cole a chave numa mensagem do chat nem no código do frontend.
Resposta curta
- Sua própria chave (GPT, Claude, Resend): os Secrets, ou o formulário que o conector mostra.
- As chaves do próprio Lovable:
LOVABLE_API_KEYé gerada sozinha; uma chave de workspace (lov_…) exige Business ou Enterprise. - GPT, Claude ou DeepSeek com a sua chave: peça ao Lovable uma função de backend, porque o conector de IA embutido não usa a sua chave.
- Se vazar: revogue no provedor primeiro, depois troque o secret.
Qual Lovable API Key você precisa?
Lovable API key pode significar quatro coisas diferentes.
| Você quer | Chave | De onde vem |
|---|---|---|
| Chamar GPT, Resend ou outro serviço pago | Sua própria chave desse serviço | Secrets, ou o formulário de um conector |
| Usar a IA embutida do Lovable | LOVABLE_API_KEY | O Lovable gera por projeto |
| Gerenciar projetos pela API do Lovable | Uma chave de workspace (lov_…) | Workspace settings → API keys & OAuth → Workspace access tokens → New API key, Business ou Enterprise, owner ou admin |
| Usar o servidor MCP ou o Build with URL | Nenhuma API key | OAuth no MCP; nada no Build with URL |
A chave de workspace vai só para a API do Lovable, no cabeçalho Lovable-API-Key, e o valor aparece uma vez (documentação de API keys, conferida em 2 de novembro de 2026). Ela gerencia e publica projetos; não chama modelos de IA nem monta apps (Lovable API), e não é a LOVABLE_API_KEY do projeto (documentação de IA).
Tudo abaixo é sobre a primeira linha: a sua chave.
Como adicionar uma API key no Lovable
- O Lovable pede. Quando um recurso precisa de uma chave, ele abre o formulário Add secret no chat do projeto. Digite o valor ali, não como mensagem: o formulário salva direto nos secrets do projeto e mantém a chave fora do histórico (documentação de APIs personalizadas do Lovable, conferida em 2 de novembro de 2026).
- Você adiciona. Abra More → Settings → Secrets na barra do projeto, clique em Add secret e informe um ou mais pares de nome e valor (documentação de Secrets).
O changelog do Lovable de 26 de agosto de 2026 chama esse caminho de More → Cloud → Secrets, então procure ali se o seu menu for diferente (changelog).
Regras que pegam muita gente:
- Só escrita: você substitui ou apaga um valor, nunca lê de volta.
- Nomes com
VITE_são recusados; são valores de build que o navegador enxerga e ficam no.env. - Nomes com
SUPABASE_eLOVABLE_são reservados e preenchidos automaticamente. - Secrets pertencem a um projeto. Depois de um remix você digita os seus de novo, porque só as chaves geradas pelo Lovable são recriadas.
No seu próprio projeto Supabase, a visão de backend tem um botão Manage secrets que abre o painel do Supabase, onde o armazenamento fica em Edge Function Secrets (secrets do Supabase, conferidos em 2 de novembro de 2026). Dois projetos Lovable que dividem um projeto Supabase sobrescrevem os secrets um do outro, LOVABLE_API_KEY incluída (integração com o Supabase).
Para onde vão as chaves do Resend, do Stripe e do Google Maps?
Nem toda chave entra direto nos Secrets: esses serviços têm formulários de conector (Stripe, Resend, APIs personalizadas, conferidos em 2 de novembro de 2026).
| Serviço | Para onde vai a chave | Bom saber |
|---|---|---|
| Stripe | O formulário Connect Stripe no chat do projeto | Nunca cole a chave como mensagem no chat |
| Resend | O formulário de conexão | As chaves começam com re_ |
| Google Maps | Duas chaves no formulário de conexão | Chave de servidor privada; chave de navegador pública por projeto |
| Qualquer outro serviço | Um conector personalizado, ou a chave nos Secrets | O código do servidor lê o secret |
O Google Maps é a exceção. A chave de navegador é pública por projeto e chega ao frontend como VITE_LOVABLE_CONNECTOR_GOOGLE_MAPS_BROWSER_KEY, e a restrição por site é o que impede outros sites de reutilizá-la (Google Maps, conferido em 2 de novembro de 2026). A chave de servidor continua privada. As credenciais dos conectores ficam guardadas criptografadas, e ninguém consegue lê-las de volta, nem o Lovable (segurança das integrações).
Como ligar GPT, Claude ou DeepSeek com a sua própria chave
Primeiro, veja se você precisa de uma chave: o conector de IA embutido não usa nenhuma. O Lovable gera uma LOVABLE_API_KEY por projeto e roda GPT-6 Astra por padrão; modelos de chat Claude só existem em apps TanStack Start mais novos, criados a partir de 13 de maio de 2026 (documentação de IA, AI chat, conferidas em 2 de novembro de 2026).
Esse conector não usa a sua chave: ele sempre passa pelo Lovable e cobra créditos do workspace. A documentação do Lovable, como lemos em 2 de novembro de 2026, não cita o DeepSeek. Para usar a sua chave, peça ao Lovable uma função de backend que chame o provedor, com a chave nos Secrets.
Não existe botão de criar função: descreva a função no chat do projeto e o Lovable escreve e publica (Edge functions). Apps TanStack Start mais novos (criados a partir de 13 de maio de 2026, ou 22 de junho de 2026 no Enterprise) recebem uma server function; apps React + Vite antigos recebem uma Edge Function, que é código rodando no servidor.
Nosso código usa a API compatível com OpenAI da OmniaKey, porque uma chave só alcança GPT-6.1 Terra, Claude Sonnet 5.5 e DeepSeek.
-
Crie uma chave no seu provedor. Na OmniaKey: cadastre-se em omniakey.com e abra Dashboard → tokens (início rápido).
-
Cole este prompt no chat do projeto:
textAdd 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. -
Informe a chave no formulário Add secret, com o nome
OMNIAKEY_API_KEY.
Não rodamos esse prompt no Lovable, porque não temos conta no Lovable, e os passos do Lovable aqui vêm da documentação dele. A função deve ficar assim, que é a versão que rodamos na nossa própria máquina.
// supabase/functions/chat/index.ts
// O navegador envia { model, messages }; esta função acrescenta a chave de API no servidor.
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 });
});
Nossa versão de teste deixa a checagem de login de fora para que pudéssemos chamá-la de um script; o prompt acima pede ao Lovable para incluir, porque as boas práticas de segurança do Lovable dizem que a autenticação se decide no servidor (boas práticas).
Do navegador, a chamada fica assim (supabase-js):
const { data, error } = await supabase.functions.invoke("chat", {
body: { model: "deepseek-flash", messages: [{ role: "user", content: "Say hello in five words." }] },
});
Com outro provedor, troque a URL e os IDs de modelo pelos da documentação dele. Uma chave OmniaKey também serve para uma API key personalizada no Cline e para modelos personalizados no Factory Droid.
O que aconteceu quando rodamos
Rodamos a função na nossa própria máquina, não no Lovable, com Deno 2.9.8 em 2 de novembro de 2026, e chamamos como um navegador, com um cabeçalho Origin e um preflight CORS.
| Teste | Status | O que voltou |
|---|---|---|
Preflight (OPTIONS) | 200 | * e a lista de cabeçalhos liberados |
gpt-6.1-terra | 200 em 3.28 s | Uma resposta, 53 tokens no total |
claude-sonnet-5-5 | 200 em 2.85 s | Uma resposta, 134 tokens no total |
deepseek-flash | 200 em 1.75 s | Uma resposta, 92 tokens no total |
| Modelo fora da lista | 400 | model must be one of: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash |
| Secret ausente | 500 | OMNIAKEY_API_KEY is not set |
| Chave errada | 401 | Invalid token (request id: …) |
Uma chamada por modelo, então cada tempo é uma amostra; deepseek-flash respondeu como deepseek-v4-1-flash-261017.
Por que você só vê "non-2xx status code"
Em caso de erro, supabase.functions.invoke devolve só Edge Function returned a non-2xx status code, e data é null. A mensagem real da função está em await error.context.json():
if (error) {
const details = await error.context.json();
console.error(details.error);
}
- 401: a chave está errada. A nossa dizia
Invalid token (request id: …). - 500 com
OMNIAKEY_API_KEY is not set: o secret não existe ou está com outro nome. - 400: o modelo não está na sua lista.
Como saber se a sua chave está exposta
Uma chave no código do frontend fica visível para os usuários e deve ser tratada como comprometida (boas práticas, conferidas em 2 de novembro de 2026).
- O Quick security scan roda sozinho a cada publicação.
- O Deep security scan não: inicie pela Security view do projeto (Security view).
- Procure o grupo Leaked secrets & credentials.
- Os dois scans são gratuitos; só as correções em massa consomem as 10 correções grátis e depois créditos (scans de segurança).
Na mão: no Chrome, abra as ferramentas de desenvolvedor do app publicado, aperte Command+Option+F no Mac ou Control+Shift+F no Windows e no Linux, e busque nos arquivos carregados os primeiros caracteres da sua chave. Se um valor VITE_ guardar uma chave privada, aja, porque esses valores são compilados para o navegador (busca no DevTools). Uma busca limpa cobre só os arquivos que aquela página carregou, então rode o scan também.
Esconder a chave não impede estranhos de chamar a sua função: qualquer pessoa chama uma função sem checagem de login, e cada chamada gasta a sua chave. A documentação do Lovable pede login obrigatório no servidor; nossa lista de modelos e max_tokens: 800 limitam cada chamada; e a documentação da OmniaKey recomenda uma chave por ambiente com limite de gasto (documentação de API da OmniaKey).
O que fazer se uma chave vazou
- Revogue no serviço que emitiu a chave e crie outra lá; a documentação do Lovable só lista a ação Rotate para a chave dele (documentação de Secrets).
- Troque o valor nos Secrets, no formulário do conector ou no Supabase. No Supabase a função lê o novo secret na hora, sem novo deploy (secrets do Supabase). A documentação do Lovable não diz se o backend embutido dele, o Cloud, faz o mesmo, então chame a função uma vez para confirmar.
- Tire a chave do código do frontend ou do
.enve rode o Deep security scan de novo. - Confira a página de uso do provedor em busca de chamadas que você não fez.
As chaves do próprio Lovable funcionam diferente. LOVABLE_API_KEY tem uma ação Rotate, para editor e acima, que emite uma chave nova e atualiza o ambiente da Edge Function. Uma chave de workspace (lov_…) reportada pelo GitHub secret scanning é revogada sozinha; em qualquer outro lugar, revogue você mesmo (documentação de API keys).
Quanto custa
A conta do Lovable e a do seu provedor são separadas: com a sua chave, o provedor cobra o uso do modelo, e o seu app só usa o Cloud para rodar a função (documentação de IA, Cloud, conferidas em 2 de novembro de 2026).
O conector de IA embutido cobra créditos do workspace: Free, Pro e Business têm uma cota mensal de 4-credit para IA, o fim dela devolve 402, e passar do rate limit devolve 429. O plano Free ainda dá 5 build credits por dia, até 30 por mês, mais 20 Cloud credits (preços); a tabela de planos do Lovable lista 100 credits a $25 por mês no Pro (planos de assinatura, conferidos em 2 de novembro de 2026).
Para a OmniaKey, veja os preços atuais nas páginas GPT-6.1 Terra, Claude Sonnet 5.5 e DeepSeek.
Perguntas frequentes
Onde encontro minha Lovable API key?
Depende de qual chave você quer. A LOVABLE_API_KEY é gerada por projeto e fica nos Secrets desse projeto, onde você pode trocá-la mas nunca lê-la. Uma chave de workspace vem de Workspace settings → API keys & OAuth → Workspace access tokens e aparece uma vez.
Existe uma Lovable API key grátis?
O mais perto é a LOVABLE_API_KEY: o conector de IA embutido a gera para cada projeto, e workspaces Free, Pro e Business têm uma cota mensal de 4-credit para usá-la. Uma chave de workspace exige plano Business ou Enterprise.
Posso usar minha própria chave da OpenAI com o Lovable AI?
Não com o conector de IA embutido, que sempre passa pelo Lovable e cobra créditos do workspace. Para a sua chave, peça ao Lovable uma função de backend que chame o provedor direto, com a chave nos Secrets.
A API key vai nos Secrets ou no .env?
Nos Secrets, quando a chave é privada e lida pelo código do backend. O .env é para valores VITE_, que entram no build do app e ficam visíveis no navegador.
Por que o Lovable não conecta com GPT, Claude ou DeepSeek?
Leia primeiro a mensagem da função, ela diz o problema:
- 500 com
OMNIAKEY_API_KEY is not set: o secret não existe ou está salvo com outro nome. - 401: a chave está errada ou revogada.
- 400: o ID do modelo não está na sua lista.
- 404: a URL base está errada; a nossa termina em
/v1/chat/completions, e a maioria dos erros de configuração vem de um sufixo de protocolo trocado (documentação de erros da OmniaKey).
No navegador você vê só Edge Function returned a non-2xx status code, então registre error.context como acima para saber qual caso é.
Fontes verificadas
- Documentação de Secrets do Lovable, verificado em 2 de novembro de 2026
- API keys do Lovable, verificado em 2 de novembro de 2026
- Lovable API, verificado em 2 de novembro de 2026
- Servidor MCP do Lovable, verificado em 2 de novembro de 2026
- Build with URL, verificado em 2 de novembro de 2026
- Recursos de IA do Lovable, verificado em 2 de novembro de 2026
- Lovable AI chat, verificado em 2 de novembro de 2026
- Lovable Edge functions, verificado em 2 de novembro de 2026
- Lovable Cloud, verificado em 2 de novembro de 2026
- APIs personalizadas e conectores, verificado em 2 de novembro de 2026
- Integração com o Stripe, verificado em 2 de novembro de 2026
- Integração com o Resend, verificado em 2 de novembro de 2026
- Integração com o Google Maps, verificado em 2 de novembro de 2026
- Segurança das integrações, verificado em 2 de novembro de 2026
- Integração com o Supabase, verificado em 2 de novembro de 2026
- Segurança do Lovable, verificado em 2 de novembro de 2026
- Security view do Lovable, verificado em 2 de novembro de 2026
- Boas práticas de segurança do Lovable, verificado em 2 de novembro de 2026
- Planos de assinatura do Lovable, verificado em 2 de novembro de 2026
- Changelog do Lovable, verificado em 2 de novembro de 2026
- Preços do Lovable, verificado em 2 de novembro de 2026
- Secrets das Edge Functions do Supabase, verificado em 2 de novembro de 2026
- Supabase functions.invoke, verificado em 2 de novembro de 2026
- Busca no Chrome DevTools, verificado em 2 de novembro de 2026
Documentação da própria OmniaKey, verificada em 2 de novembro de 2026: início rápido, API compatível com OpenAI, autenticação e erros.
Modelos deste artigo
Artigos relacionados
Configurar uma chave API personalizada no Cline
Conecte Cline a um OpenAI compatível com API em quatro campos, verifique-o e diagnostique falhas por camada.
Modelos personalizados no Factory Droid: use Claude e GPT com sua própria chave de API
Um único settings.json colocou Claude Sonnet 5.5, GPT-6.1 Terra e MiniMax M3.1 Flash no Droid 1.0.0 com uma só chave. Aqui estão o arquivo, o provider de cada modelo e os quatro erros que encontramos.
Conectar GPT e APIs de terceiros no Cherry Studio
Escolha o protocolo correto, insira o URL raiz do provedor, adicione o ID exato do modelo e verifique uma pequena solicitação antes de expandir a configuração.