GPT-6 Sol & Claude Opus 5.5 kini tersediaGPT-6 Sol: setengah harga 5.6 Sol

Lovable API Key: tempat menaruhnya dan cara mengamankannya

Ke mana kuncinya pergi, empat hal yang disebut Lovable API Key, fungsi yang kami jalankan dengan GPT, Claude dan DeepSeek, dan apa yang harus dilakukan kalau kunci bocor.

Kiki, OmniaKey COO10 menit baca
Di halaman ini

Di Lovable, Lovable API Key Anda masuk ke Secrets: buka More → Settings → Secrets di bilah proyek, atau pakai formulir Add secret yang Lovable tampilkan di chat proyek. Kode backend membacanya dari sana, jadi kunci tidak pernah sampai ke browser. Jangan tempel kunci sebagai pesan chat dan jangan taruh di kode frontend.

Jawaban singkat

  • Kunci Anda sendiri (GPT, Claude, Resend): Secrets, atau formulir yang ditampilkan konektor.
  • Kunci milik Lovable: LOVABLE_API_KEY dibuat otomatis; kunci workspace (lov_…) butuh Business atau Enterprise.
  • GPT, Claude, atau DeepSeek dengan kunci Anda: minta Lovable membuat fungsi backend, karena konektor AI bawaan tidak bisa memakai kunci Anda.
  • Kalau bocor: cabut dulu di penyedia, lalu ganti secret-nya.

Lovable API Key mana yang Anda butuhkan?

Lovable API Key bisa berarti empat hal berbeda.

Anda inginKunciAsalnya
Memanggil GPT, Resend, atau layanan berbayar lainKunci Anda dari layanan ituSecrets, atau formulir konektor
Memakai AI bawaan LovableLOVABLE_API_KEYLovable membuatnya per proyek
Mengelola proyek lewat API LovableKunci workspace (lov_…)Workspace settings → API keys & OAuth → Workspace access tokens → New API key, Business atau Enterprise, owner atau admin
Memakai server MCP atau Build with URLTidak perlu API keyOAuth untuk MCP; tidak ada untuk Build with URL

Kunci workspace hanya dikirim ke API Lovable, di header Lovable-API-Key, dan nilainya ditampilkan sekali (dokumentasi kunci API, diperiksa 2 November 2026). Kunci ini mengelola dan men-deploy proyek; ia tidak memanggil model AI atau membangun aplikasi (Lovable API), dan bukan LOVABLE_API_KEY milik proyek (dokumentasi AI).

Semua di bawah ini soal baris pertama: kunci Anda sendiri.

Cara menambahkan API key di Lovable

  1. Lovable yang meminta. Saat sebuah fitur butuh kunci, formulir Add secret terbuka di chat proyek. Masukkan nilainya di sana, bukan sebagai pesan: formulir menyimpannya langsung ke secrets proyek dan menjaganya di luar riwayat chat (dokumentasi API khusus Lovable, diperiksa 2 November 2026).
  2. Anda menambahkannya sendiri. Buka More → Settings → Secrets di bilah proyek, klik Add secret, lalu masukkan satu atau beberapa pasangan nama dan nilai (dokumentasi Secrets).

Changelog Lovable 26 Agustus 2026 menyebut jalur ini More → Cloud → Secrets, jadi cek di sana kalau menu Anda berbeda (changelog).

Aturan yang sering bikin orang tersandung:

  • Hanya tulis: nilai bisa diganti atau dihapus, tapi tidak bisa dibaca lagi.
  • Nama dengan VITE_ ditolak; itu nilai saat build yang terlihat di browser dan tempatnya di .env.
  • Nama SUPABASE_ dan LOVABLE_ dicadangkan dan diisi otomatis.
  • Secrets milik satu proyek. Setelah remix Anda memasukkan kunci sendiri lagi, karena hanya kunci buatan Lovable yang dibuat ulang.

Di proyek Supabase Anda sendiri, tampilan backend punya tombol Manage secrets yang membuka dasbor Supabase, tempat penyimpanannya ada di Edge Function Secrets (secret Supabase, diperiksa 2 November 2026). Dua proyek Lovable yang berbagi satu proyek Supabase saling menimpa secret, termasuk LOVABLE_API_KEY (integrasi Supabase).

Ke mana kunci Resend, Stripe, dan Google Maps pergi?

Tidak semua kunci masuk langsung ke Secrets: layanan ini punya formulir konektor (Stripe, Resend, API khusus, diperiksa 2 November 2026).

LayananKe mana kuncinyaYang perlu diketahui
StripeFormulir Connect Stripe di chat proyekJangan pernah menempel kunci sebagai pesan chat
ResendFormulir koneksiKunci dimulai dengan re_
Google MapsDua kunci di formulir koneksiKunci server privat; kunci browser publik memang dirancang begitu
Layanan lainKonektor khusus, atau kunci di SecretsKode server membaca secret

Google Maps pengecualiannya. Kunci browser-nya publik memang dirancang begitu dan sampai ke frontend sebagai VITE_LOVABLE_CONNECTOR_GOOGLE_MAPS_BROWSER_KEY, dan pembatasan situslah yang mencegah situs lain memakainya (Google Maps, diperiksa 2 November 2026). Kunci server tetap privat. Kredensial konektor disimpan terenkripsi, dan tidak ada yang bisa membacanya lagi, termasuk Lovable (keamanan integrasi).

Menghubungkan GPT, Claude, atau DeepSeek dengan kunci sendiri

Cek dulu apakah Anda butuh kunci: konektor AI bawaan tidak butuh. Lovable membuat LOVABLE_API_KEY per proyek dan menjalankan GPT-6 Astra secara default; model chat Claude hanya ada di aplikasi TanStack Start yang lebih baru, dibuat sejak 13 Mei 2026 (dokumentasi AI, AI chat, diperiksa 2 November 2026).

Konektor itu tidak bisa memakai kunci Anda: ia selalu berjalan lewat Lovable dan menagih kredit workspace. Dokumentasi Lovable, seperti yang kami baca pada 2 November 2026, tidak menyebut DeepSeek. Untuk kunci Anda sendiri, minta Lovable memanggil penyedia dari fungsi backend dengan kunci di Secrets.

Tidak ada tombol buat fungsi: jelaskan fungsinya di chat proyek dan Lovable menulis lalu men-deploy-nya (Edge functions). Aplikasi TanStack Start yang lebih baru (dibuat sejak 13 Mei 2026, atau 22 Juni 2026 di Enterprise) mendapat server function; aplikasi React + Vite yang lama mendapat Edge Function, yaitu kode yang berjalan di server.

Kode kami memakai API kompatibel OpenAI dari OmniaKey, karena satu kunci menjangkau GPT-6.1 Terra, Claude Sonnet 5.5, dan DeepSeek.

  1. Buat kunci di penyedia Anda. Untuk OmniaKey: daftar di omniakey.com lalu buka Dashboard → tokens (mulai cepat).

  2. Tempel prompt ini di chat proyek:

    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. Masukkan kunci di formulir Add secret dengan nama OMNIAKEY_API_KEY.

Prompt itu belum kami jalankan di Lovable, karena kami tidak punya akun Lovable; langkah Lovable di sini berasal dari dokumentasinya. Fungsinya akan jadi seperti ini, dan versi inilah yang kami jalankan di mesin kami sendiri.

ts
// supabase/functions/chat/index.ts
// Browser mengirim { model, messages }; fungsi ini menambahkan kunci API di server.
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 });
});

Versi uji kami melewatkan pemeriksaan login supaya bisa dipanggil dari skrip; prompt di atas meminta Lovable menambahkannya, karena praktik keamanan Lovable menyebut keputusan autentikasi diambil di server (praktik terbaik).

Dari browser, panggilannya seperti ini (supabase-js):

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

Dengan penyedia lain, ganti URL dan ID model dengan yang ada di dokumentasinya. Kunci OmniaKey juga berfungsi untuk API key khusus di Cline dan model khusus di Factory Droid.

Yang terjadi saat kami menjalankannya

Kami menjalankan fungsi ini di mesin kami sendiri, bukan di Lovable, dengan Deno 2.9.8 pada 2 November 2026, dan memanggilnya seperti browser: dengan header Origin dan preflight CORS.

UjiStatusYang kembali
Preflight (OPTIONS)200* dan daftar header yang diizinkan
gpt-6.1-terra200 dalam 3.28 sSatu balasan, 53 token total
claude-sonnet-5-5200 dalam 2.85 sSatu balasan, 134 token total
deepseek-flash200 dalam 1.75 sSatu balasan, 92 token total
Model di luar daftar400model must be one of: gpt-6.1-terra, claude-sonnet-5-5, deepseek-flash
Secret tidak ada500OMNIAKEY_API_KEY is not set
Kunci salah401Invalid token (request id: …)

Satu panggilan per model, jadi setiap durasi hanya satu sampel; deepseek-flash menjawab sebagai deepseek-v4-1-flash-261017.

Kenapa Anda hanya melihat "non-2xx status code"

Saat error, supabase.functions.invoke hanya mengembalikan Edge Function returned a non-2xx status code, dan data bernilai null. Pesan asli dari fungsi ada di await error.context.json():

ts
if (error) {
  const details = await error.context.json();
  console.error(details.error);
}
  • 401: kuncinya salah. Punya kami berbunyi Invalid token (request id: …).
  • 500 dengan OMNIAKEY_API_KEY is not set: secret tidak ada atau namanya berbeda.
  • 400: model tidak ada di daftar Anda.

Cara memeriksa apakah kunci Anda terbuka

Kunci di kode frontend terlihat oleh pengguna dan harus dianggap bocor (praktik terbaik, diperiksa 2 November 2026).

  • Quick security scan berjalan sendiri setiap kali publish.
  • Deep security scan tidak: jalankan dari Security view proyek (Security view).
  • Cari grup Leaked secrets & credentials.
  • Kedua pemindaian gratis; hanya perbaikan massal yang memakai 10 perbaikan gratis lalu kredit (pemindaian keamanan).

Dengan tangan: di Chrome, buka developer tools aplikasi yang sudah publish, tekan Command+Option+F di Mac atau Control+Shift+F di Windows dan Linux, lalu cari beberapa karakter pertama kunci Anda di berkas yang dimuat. Kalau ada nilai VITE_ yang berisi kunci privat, bertindaklah, karena nilai itu ikut dibangun untuk browser (pencarian DevTools). Pencarian bersih hanya mencakup berkas yang dimuat halaman itu, jadi jalankan juga pemindaiannya.

Menyembunyikan kunci tidak menghentikan orang lain memanggil fungsi Anda: siapa pun bisa memanggil fungsi tanpa pemeriksaan login, dan setiap panggilan memakai kunci Anda. Dokumentasi Lovable meminta login ditegakkan di server; daftar model kami dan max_tokens: 800 membatasi tiap panggilan; dan dokumentasi OmniaKey menyarankan kunci terpisah per lingkungan dengan batas belanja (dokumentasi API OmniaKey).

Yang harus dilakukan kalau kunci bocor

  1. Cabut kunci di layanan yang menerbitkannya dan buat yang baru di sana; dokumentasi Lovable hanya mencantumkan aksi Rotate untuk kuncinya sendiri (dokumentasi Secrets).
  2. Ganti nilainya di Secrets, formulir konektor, atau Supabase. Di Supabase, fungsi membaca secret baru seketika tanpa deploy ulang (secret Supabase). Dokumentasi Lovable tidak menyebut apakah backend bawaan Cloud melakukan hal yang sama, jadi panggil fungsinya sekali untuk memastikan.
  3. Keluarkan kunci dari kode frontend atau .env, lalu jalankan Deep security scan lagi.
  4. Periksa halaman penggunaan penyedia untuk panggilan yang bukan dari Anda.

Kunci milik Lovable bekerja berbeda. LOVABLE_API_KEY punya aksi Rotate untuk editor ke atas, yang menerbitkan kunci baru dan memperbarui lingkungan Edge Function. Kunci workspace (lov_…) yang dilaporkan GitHub secret scanning dicabut otomatis; di tempat lain, cabut sendiri (dokumentasi kunci API).

Berapa biayanya

Tagihan Lovable dan tagihan penyedia Anda terpisah: dengan kunci sendiri, penyedia menagih pemakaian model, dan aplikasi Anda hanya memakai Cloud untuk menjalankan fungsi (dokumentasi AI, Cloud, diperiksa 2 November 2026).

Konektor AI bawaan menagih kredit workspace: Free, Pro, dan Business mendapat kuota 4-credit per bulan untuk AI, kalau habis kembaliannya 402, dan kalau melewati rate limit kembaliannya 429. Paket Free juga memberi 5 build credits per hari, sampai 30 per bulan, plus 20 Cloud credits (harga); tabel paket Lovable mencantumkan 100 credits seharga $25 per bulan di Pro (paket langganan, diperiksa 2 November 2026).

Untuk OmniaKey, lihat tarif terbaru di halaman GPT-6.1 Terra, Claude Sonnet 5.5, dan DeepSeek.

Pertanyaan umum

Di mana saya menemukan Lovable API Key saya?

Tergantung kunci yang Anda maksud. LOVABLE_API_KEY dibuat per proyek dan ada di Secrets proyek itu, tempat Anda bisa memperbaruinya tapi tidak membacanya. Kunci workspace berasal dari Workspace settings → API keys & OAuth → Workspace access tokens dan hanya ditampilkan sekali.

Apakah ada Lovable API Key gratis?

Yang paling dekat adalah LOVABLE_API_KEY: konektor AI bawaan membuatnya untuk setiap proyek, dan workspace Free, Pro, serta Business punya kuota 4-credit per bulan untuk memakainya. Kunci workspace butuh paket Business atau Enterprise.

Bisakah saya memakai kunci OpenAI sendiri dengan Lovable AI?

Tidak dengan konektor AI bawaan, yang selalu berjalan lewat Lovable dan menagih kredit workspace. Untuk kunci sendiri, minta Lovable membuat fungsi backend yang memanggil penyedia langsung, dengan kunci di Secrets.

Kunci API sebaiknya di Secrets atau di .env?

Di Secrets kalau kuncinya privat dan dibaca kode backend. .env untuk nilai VITE_, yang ikut dibangun ke aplikasi dan terlihat di browser.

Kenapa Lovable tidak terhubung ke GPT, Claude, atau DeepSeek?

Baca dulu pesan dari fungsinya, di situ disebutkan masalahnya:

  • 500 dengan OMNIAKEY_API_KEY is not set: secret tidak ada atau disimpan dengan nama lain.
  • 401: kunci salah atau sudah dicabut.
  • 400: ID model tidak ada di daftar Anda.
  • 404: URL dasarnya salah; punya kami berakhir di /v1/chat/completions, dan sebagian besar kesalahan penyiapan berasal dari akhiran protokol yang keliru (dokumentasi error OmniaKey).

Di browser Anda hanya melihat Edge Function returned a non-2xx status code, jadi catat error.context seperti di atas untuk tahu kasus mana yang terjadi.

Sumber yang diperiksa

Dokumentasi OmniaKey sendiri, diperiksa 2 November 2026: mulai cepat, API kompatibel OpenAI, autentikasi, dan error.

Model di artikel ini

Lovablekunci APISecretsEdge FunctionsGPT-6.1 TerraClaude Sonnet 5.5DeepSeek

Artikel terkait

Artikel terbaru

Panduan populer