{"id":1648,"date":"2026-09-07T10:17:00","date_gmt":"2026-09-07T03:17:00","guid":{"rendered":"https:\/\/komunitech.com\/blog\/?p=1648"},"modified":"2026-09-07T10:17:00","modified_gmt":"2026-09-07T03:17:00","slug":"cara-membuat-memakai-api-key-openrouter-panduan-2026","status":"publish","type":"post","link":"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/","title":{"rendered":"Cara Membuat &amp; Memakai API Key OpenRouter (Panduan 2026)"},"content":{"rendered":"<p><strong>tl;dr<\/strong> \u2014 API key OpenRouter dibuat di halaman Keys setelah kamu punya akun, lalu dipakai sebagai Bearer token di header <code>Authorization<\/code>. Endpointnya <code>https:\/\/openrouter.ai\/api\/v1\/chat\/completions<\/code> dan mengikuti spesifikasi API OpenAI, jadi kode lama yang sudah memakai OpenAI SDK cukup diganti base URL dan kuncinya. Satu kunci itu membuka akses ke 430 model dari puluhan penyedia, termasuk 18 model bervarian <code>:free<\/code> yang tidak memotong saldo. Dokumentasi resmi OpenRouter menyebut kunci mereka lebih berkuasa dibanding kunci provider biasa karena bisa diberi batas kredit dan dipakai dalam alur OAuth \u2014 alasan kenapa penyimpanannya tidak boleh sembarangan.<\/p>\n<div style=\"background:#f0f9ff;border-left:4px solid #0284c7;padding:1em 1.2em;margin:1.5em 0;border-radius:4px\">\n<p style=\"text-transform:uppercase;font-size:0.8em;font-weight:700;letter-spacing:0.05em;color:#0284c7;margin:0 0 0.5em\">\ud83d\udca1 Key Takeaway<\/p>\n<ul style=\"margin:0;padding-left:1.2em\">\n<li><strong>Satu kunci, ratusan model.<\/strong> Ganti nilai <code>model<\/code> saja untuk pindah dari GPT ke Claude atau Gemini.<\/li>\n<li><strong>Drop-in replacement OpenAI.<\/strong> Cukup arahkan <code>base_url<\/code> ke <code>https:\/\/openrouter.ai\/api\/v1<\/code>.<\/li>\n<li><strong>Beri batas kredit per kunci<\/strong> supaya satu aplikasi bocor tidak menghabiskan seluruh saldo.<\/li>\n<li><strong>Jangan tulis kunci di dalam kode.<\/strong> Simpan di environment variable \u2014 OpenRouter memindai kunci yang bocor di GitHub.<\/li>\n<\/ul>\n<\/div>\n<p>Banyak orang berhenti di langkah pertama bukan karena kesulitan teknis, tapi karena bingung membedakan mana kunci untuk memanggil model dan mana kunci untuk mengelola akun. Panduan berikut membereskan urutannya dari membuat akun sampai panggilan pertamamu berhasil, lengkap dengan kesalahan umum yang bikin error 401 dan 402.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-6a9e9837d5ece\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a9e9837d5ece\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Apa_Fungsi_API_Key_OpenRouter\" >Apa Fungsi API Key OpenRouter<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Cara_Membuat_API_Key_OpenRouter\" >Cara Membuat API Key OpenRouter<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#1_Buat_akun\" >1. Buat akun<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#2_Buka_halaman_Keys\" >2. Buka halaman Keys<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#3_Beri_nama_dan_batas_kredit\" >3. Beri nama dan batas kredit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#4_Salin_sekali_simpan_aman\" >4. Salin sekali, simpan aman<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Cara_Memakai_API_Key_di_Kode\" >Cara Memakai API Key di Kode<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Memilih_Model_Format_Slug_dan_Varian\" >Memilih Model: Format Slug dan Varian<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Menyambungkan_ke_Tool_Coding\" >Menyambungkan ke Tool Coding<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Mengamankan_Kunci_dan_Membaca_Error\" >Mengamankan Kunci dan Membaca Error<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Pertanyaan_yang_Sering_Ditanya\" >Pertanyaan yang Sering Ditanya<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Apakah_API_key_OpenRouter_gratis\" >Apakah API key OpenRouter gratis?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Kenapa_muncul_error_401_padahal_kunci_sudah_benar\" >Kenapa muncul error 401 padahal kunci sudah benar?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Bisakah_satu_API_key_dipakai_untuk_beberapa_aplikasi\" >Bisakah satu API key dipakai untuk beberapa aplikasi?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Apakah_kode_OpenAI_lama_perlu_ditulis_ulang\" >Apakah kode OpenAI lama perlu ditulis ulang?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Bagaimana_cara_mengecek_sisa_saldo_lewat_API\" >Bagaimana cara mengecek sisa saldo lewat API?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Catatan\" >Catatan<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-membuat-memakai-api-key-openrouter-panduan-2026\/#Referensi\" >Referensi<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Apa_Fungsi_API_Key_OpenRouter\"><\/span>Apa Fungsi API Key OpenRouter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>OpenRouter berperan sebagai perantara: kamu memanggil satu alamat, mereka meneruskannya ke penyedia model yang sesuai. API key adalah identitas yang dipakai untuk menghitung pemakaian dan memotong saldo kreditmu.<\/p>\n<p>Menurut <a href=\"https:\/\/openrouter.ai\/docs\/api_reference\/authentication\" rel=\"noopener nofollow\" target=\"_blank\">dokumentasi autentikasi OpenRouter<\/a>, ada tiga metode autentikasi yang berlaku: cookie untuk antarmuka web dan chatroom, API key sebagai Bearer token untuk memanggil model, serta Management API key khusus untuk mengelola kunci secara programatis. Yang kamu butuhkan untuk menjalankan model adalah tipe kedua.<\/p>\n<p>Keunggulan praktisnya terasa saat kamu ingin berpindah model. Tanpa gateway, mencoba Claude berarti mendaftar ke Anthropic, mengurus penagihan terpisah, dan menulis ulang pemanggilan API. Dengan satu kunci OpenRouter, perpindahan itu cuma soal mengganti satu string. Kami sudah membandingkan perbedaan karakter tiap model dalam ulasan <a href=\"https:\/\/komunitech.com\/blog\/ai-agent\/perbedaan-model-llm-claude-gpt-gemini-5-lainnya\/\">perbedaan model LLM Claude, GPT, dan Gemini<\/a> kalau kamu masih menimbang mau memakai yang mana.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cara_Membuat_API_Key_OpenRouter\"><\/span>Cara Membuat API Key OpenRouter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Prosesnya empat langkah dan tidak sampai lima menit:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_Buat_akun\"><\/span>1. Buat akun<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Daftar di openrouter.ai memakai email, akun Google, atau GitHub. Semua pengguna baru mendapat jatah percobaan kecil untuk mencoba layanan.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_Buka_halaman_Keys\"><\/span>2. Buka halaman Keys<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Masuk ke <code>openrouter.ai\/keys<\/code>. Halaman ini yang disebut dokumentasi resmi sebagai tempat pembuatan kunci, terpisah dari halaman pengaturan kredit.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_Beri_nama_dan_batas_kredit\"><\/span>3. Beri nama dan batas kredit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Isi nama kunci sesuai peruntukannya \u2014 misalnya <code>bot-cs-produksi<\/code> atau <code>eksperimen-lokal<\/code>. Kolom batas kredit bersifat opsional tapi sangat disarankan diisi: nilai itu menjadi plafon maksimal yang bisa dihabiskan kunci tersebut. Kalau satu aplikasi bermasalah dan memanggil model berulang tanpa henti, kerugianmu berhenti di angka itu.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_Salin_sekali_simpan_aman\"><\/span>4. Salin sekali, simpan aman<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kunci ditampilkan sekali saat dibuat. Simpan ke pengelola kata sandi atau environment variable, jangan ke catatan biasa dan jangan langsung ditempel ke dalam kode.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cara_Memakai_API_Key_di_Kode\"><\/span>Cara Memakai API Key di Kode<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kunci dikirim sebagai Bearer token pada header <code>Authorization<\/code>. Berikut bentuk paling dasarnya lewat cURL:<\/p>\n<pre><code>curl https:\/\/openrouter.ai\/api\/v1\/chat\/completions \n  -H \"Content-Type: application\/json\" \n  -H \"Authorization: Bearer $OPENROUTER_API_KEY\" \n  -d '{\n  \"model\": \"google\/gemma-4-31b-it:free\",\n  \"messages\": [\n    {\"role\": \"user\", \"content\": \"Halo, jelaskan apa itu AI Agent dalam dua kalimat.\"}\n  ]\n}'<\/code><\/pre>\n<p>Versi Python memakai OpenAI SDK yang sudah umum dipakai, cukup diarahkan ulang:<\/p>\n<pre><code>from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https:\/\/openrouter.ai\/api\/v1\",\n    api_key=os.getenv(\"OPENROUTER_API_KEY\"),\n)\n\nresponse = client.chat.completions.create(\n    model=\"google\/gemma-4-31b-it:free\",\n    messages=[\n        {\"role\": \"user\", \"content\": \"Halo, jelaskan apa itu AI Agent dalam dua kalimat.\"}\n    ],\n)\n\nprint(response.choices[0].message.content)<\/code><\/pre>\n<p>Dua header opsional bisa ditambahkan: <code>HTTP-Referer<\/code> berisi URL situsmu dan <code>X-OpenRouter-Title<\/code> berisi nama aplikasi. Keduanya tidak memengaruhi hasil, hanya membuat aplikasimu muncul di papan peringkat OpenRouter.<\/p>\n<p>OpenRouter juga menyediakan SDK resmi sendiri lewat paket <code>@openrouter\/sdk<\/code> untuk TypeScript dan <code>openrouter<\/code> untuk Python, plus Agent SDK <code>@openrouter\/agent<\/code> yang menangani perulangan percakapan multi-giliran dan eksekusi tool secara otomatis. Untuk kebutuhan sederhana, memanggil endpoint langsung sudah cukup.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Memilih_Model_Format_Slug_dan_Varian\"><\/span>Memilih Model: Format Slug dan Varian<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nilai <code>model<\/code> memakai format <code>penyedia\/nama-model<\/code>, contohnya <code>google\/gemma-4-31b-it<\/code>. Daftar lengkapnya bisa diambil sendiri dari endpoint publik <code>https:\/\/openrouter.ai\/api\/v1\/models<\/code> tanpa perlu autentikasi. Saat pemeriksaan terakhir kami pada September 2026, terdaftar 430 model di sana.<\/p>\n<p>Akhiran khusus mengubah perilaku routing, dan ini yang membedakan pemakaian dasar dari pemakaian cermat:<\/p>\n<table>\n<thead>\n<tr>\n<th>Varian<\/th>\n<th>Efek<\/th>\n<th>Kapan dipakai<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>:free<\/code><\/td>\n<td>Model gratis, rate limit rendah<\/td>\n<td>Belajar dan prototipe<\/td>\n<\/tr>\n<tr>\n<td><code>:nitro<\/code><\/td>\n<td>Prioritas penyedia tercepat<\/td>\n<td>Aplikasi interaktif, chat real-time<\/td>\n<\/tr>\n<tr>\n<td><code>:floor<\/code><\/td>\n<td>Prioritas penyedia termurah<\/td>\n<td>Pekerjaan batch, volume besar<\/td>\n<\/tr>\n<tr>\n<td><code>:exacto<\/code><\/td>\n<td>Prioritas keandalan pemanggilan tool<\/td>\n<td>Agent yang memanggil banyak fungsi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Varian <code>:online<\/code> yang dulu dipakai untuk menambahkan hasil pencarian web sudah berstatus usang menurut FAQ resminya, digantikan server tool <code>openrouter:web_search<\/code>. Kalau kamu menemukan tutorial lama yang masih memakainya, itu tanda tutorial tersebut belum diperbarui.<\/p>\n<p>Pemilihan varian ini berdampak langsung ke ongkos. Menjalankan pekerjaan batch dengan <code>:nitro<\/code> berarti membayar penyedia termahal demi kecepatan yang tidak dibutuhkan siapa-siapa. Logika penghematan serupa berlaku di platform lain \u2014 pembahasan lengkap soal menekan biaya lewat pemilihan fitur ada di ulasan kami tentang <a href=\"https:\/\/komunitech.com\/blog\/tutorial\/7-fitur-gemini-api-yang-jarang-dipakai-tapi-bikin-agent-lebih-murah-2026\/\">fitur Gemini API yang bikin agent lebih murah<\/a>.<\/p>\n<div style=\"background:#f0f9ff;border-left:4px solid #0284c7;padding:1em 1.2em;margin:1.5em 0;border-radius:4px\">\n<p style=\"text-transform:uppercase;font-size:0.8em;font-weight:700;letter-spacing:0.05em;color:#0284c7;margin:0 0 0.5em\">\ud83d\udca1 Key Takeaway<\/p>\n<ul style=\"margin:0;padding-left:1.2em\">\n<li><strong>Slug model = penyedia\/nama-model<\/strong>, ambil daftar terbaru dari endpoint publik <code>\/api\/v1\/models<\/code>.<\/li>\n<li><strong>Empat varian aktif:<\/strong> <code>:free<\/code>, <code>:nitro<\/code>, <code>:floor<\/code>, <code>:exacto<\/code> \u2014 masing-masing mengubah cara permintaanmu dirutekan.<\/li>\n<li><strong>Varian <code>:online<\/code> sudah usang<\/strong>, ganti dengan server tool pencarian web.<\/li>\n<\/ul>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Menyambungkan_ke_Tool_Coding\"><\/span>Menyambungkan ke Tool Coding<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Cara tercepat merasakan manfaat satu kunci untuk banyak model adalah memasangnya di editor. Pola pengaturannya seragam di hampir semua tool: cari bagian penyedia model, pilih OpenRouter atau opsi &#8220;OpenAI Compatible&#8221;, isi base URL <code>https:\/\/openrouter.ai\/api\/v1<\/code>, tempel kunci, lalu tulis slug model.<\/p>\n<p>Pola tersebut berlaku untuk Cline, Roo Code, Cursor, dan tool sejenis yang menerima endpoint kompatibel OpenAI. Kalau kamu ingin melihat langkah pengaturan yang serupa dalam bentuk lebih rinci, kami pernah menuliskannya untuk penyedia berbeda di panduan <a href=\"https:\/\/komunitech.com\/blog\/tutorial\/cara-connect-google-gemini-api-ke-cline-roo-code-coding-agent-2026\/\">cara connect Gemini API ke Cline dan Roo Code<\/a> \u2014 struktur pengisiannya sama, hanya nilai base URL dan kuncinya yang berbeda.<\/p>\n<p>Untuk asisten coding yang mendukung MCP, OpenRouter menyediakan server terkelola di <code>https:\/\/mcp.openrouter.ai\/mcp<\/code> sehingga asistenmu bisa membaca data langsung soal model yang tersedia, harganya, dan sisa saldomu alih-alih menebak dari data pelatihan lama. Konsep dasar protokolnya sudah kami bahas di artikel <a href=\"https:\/\/komunitech.com\/blog\/ai-agent\/mcp-server-apa-itu-cara-kerja-ai-agent-2026\/\">MCP Server: apa itu dan kenapa AI Agent membutuhkannya<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Mengamankan_Kunci_dan_Membaca_Error\"><\/span>Mengamankan Kunci dan Membaca Error<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dokumentasi resmi memberi peringatan tegas: kunci OpenRouter lebih berkuasa dibanding kunci model biasa, dan tidak boleh dikirim ke repositori publik. OpenRouter berstatus mitra pemindaian rahasia GitHub, sehingga kunci yang bocor akan terdeteksi dan pemiliknya diberi tahu lewat surel. Kalau itu terjadi, langkah yang benar adalah menghapus kunci lama di halaman pengaturan lalu membuat yang baru.<\/p>\n<p>Tiga kode error paling sering muncul dan artinya berbeda-beda:<\/p>\n<ul>\n<li><strong>401 Unauthorized<\/strong> \u2014 kunci salah, kedaluwarsa, atau dinonaktifkan. Sering terjadi karena kata <code>Bearer<\/code> lupa ditulis sebelum kunci.<\/li>\n<li><strong>402 Payment Required<\/strong> \u2014 saldo habis atau batas kredit kunci tersebut sudah tersentuh. Cek lewat <code>GET https:\/\/openrouter.ai\/api\/v1\/key<\/code> untuk melihat sisa kuota.<\/li>\n<li><strong>429 Too Many Requests<\/strong> \u2014 melampaui batas permintaan. Tangani dengan jeda bertingkat dan patuhi header <code>Retry-After<\/code> jika ada.<\/li>\n<\/ul>\n<p>Kebiasaan menaruh kunci di environment variable, bukan di dalam berkas kode, menutup sebagian besar risiko ini sejak awal. Di Komunitech, pengelolaan kredensial semacam ini kami ajarkan sebagai bagian dari workshop OpenClaw untuk membangun Karyawan AI, karena agent yang punya akses API tanpa pagar pengaman adalah risiko operasional yang nyata, bukan sekadar urusan teknis.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Pertanyaan_yang_Sering_Ditanya\"><\/span>Pertanyaan yang Sering Ditanya<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Apakah_API_key_OpenRouter_gratis\"><\/span>Apakah API key OpenRouter gratis?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Membuat kuncinya gratis dan tidak perlu kartu kredit. Yang berbayar adalah pemakaian model. Kamu tetap bisa memanggil model berlabel <code>:free<\/code> tanpa mengisi saldo, dengan batas 50 permintaan per hari.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kenapa_muncul_error_401_padahal_kunci_sudah_benar\"><\/span>Kenapa muncul error 401 padahal kunci sudah benar?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Penyebab paling umum adalah format header. Nilainya harus <code>Bearer &lt;kunci&gt;<\/code>, bukan kuncinya saja. Penyebab kedua adalah spasi atau baris baru yang ikut tersalin saat menempel kunci.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bisakah_satu_API_key_dipakai_untuk_beberapa_aplikasi\"><\/span>Bisakah satu API key dipakai untuk beberapa aplikasi?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bisa, tapi risikonya lebih besar dari manfaatnya. Buat kunci terpisah per aplikasi dengan batas kredit masing-masing, supaya pemakaian bisa dilacak per aplikasi dan satu kebocoran tidak memaksamu mengganti kunci di semua tempat sekaligus.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Apakah_kode_OpenAI_lama_perlu_ditulis_ulang\"><\/span>Apakah kode OpenAI lama perlu ditulis ulang?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tidak. OpenRouter mengimplementasikan spesifikasi API OpenAI untuk endpoint <code>\/chat\/completions<\/code>, sehingga cukup mengubah <code>base_url<\/code> dan <code>api_key<\/code>. Struktur permintaan dan responsnya tetap sama.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bagaimana_cara_mengecek_sisa_saldo_lewat_API\"><\/span>Bagaimana cara mengecek sisa saldo lewat API?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kirim permintaan GET ke <code>https:\/\/openrouter.ai\/api\/v1\/key<\/code> dengan kunci yang sama. Responsnya memuat <code>limit_remaining<\/code>, total pemakaian, serta rincian pemakaian harian, mingguan, dan bulanan.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Catatan\"><\/span>Catatan<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Langkah dan angka di atas mengacu pada dokumentasi resmi OpenRouter per September 2026. Antarmuka dan kebijakan platform dapat berubah \u2014 periksa dokumentasi resminya bila ada perbedaan. Komunitech tidak berafiliasi dengan OpenRouter dan tidak menerima kompensasi apa pun dari layanan tersebut.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Referensi\"><\/span>Referensi<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/openrouter.ai\/docs\/api_reference\/authentication\" rel=\"noopener nofollow\" target=\"_blank\">OpenRouter \u2014 Authentication<\/a> (Bearer token, metode autentikasi, kebijakan kunci bocor)<\/li>\n<li><a href=\"https:\/\/openrouter.ai\/docs\/quickstart\" rel=\"noopener nofollow\" target=\"_blank\">OpenRouter \u2014 Quickstart<\/a> (contoh kode, SDK resmi, MCP server)<\/li>\n<li><a href=\"https:\/\/openrouter.ai\/docs\/faq\" rel=\"noopener nofollow\" target=\"_blank\">OpenRouter \u2014 FAQ<\/a> (varian model, dukungan SDK, spesifikasi endpoint)<\/li>\n<li><a href=\"https:\/\/openrouter.ai\/docs\/api_reference\/limits\" rel=\"noopener nofollow\" target=\"_blank\">OpenRouter \u2014 Limits<\/a> (kode error 401\/402\/429, pengecekan sisa kredit)<\/li>\n<li><a href=\"https:\/\/openrouter.ai\/api\/v1\/models\" rel=\"noopener nofollow\" target=\"_blank\">OpenRouter \u2014 Daftar model publik<\/a> (jumlah model terdaftar)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>tl;dr \u2014 API key OpenRouter dibuat di halaman Keys setelah kamu punya akun, lalu dipakai sebagai Bearer token di header Authorization. Endpointnya https:\/\/openrouter.ai\/api\/v1\/chat\/completions dan mengikuti spesifikasi API OpenAI, jadi kode lama yang sudah memakai OpenAI SDK cukup diganti base URL dan kuncinya. Satu kunci itu membuka akses ke 430 model dari puluhan penyedia, termasuk 18 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1652,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75],"tags":[],"class_list":["post-1648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial"],"_links":{"self":[{"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/posts\/1648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/comments?post=1648"}],"version-history":[{"count":1,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/posts\/1648\/revisions"}],"predecessor-version":[{"id":1651,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/posts\/1648\/revisions\/1651"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/media\/1652"}],"wp:attachment":[{"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/media?parent=1648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/categories?post=1648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/komunitech.com\/blog\/wp-json\/wp\/v2\/tags?post=1648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}