ID ▾
Dapatkan kunci API

Panduan Cepat untuk Pengguna OpenRouter NSFW

Integrasikan API LLM tanpa sensor kami ke basis kode Anda yang ada dengan memperbarui Base URL dan kunci API. Panduan ini mencakup endpoint yang kompatibel dengan OpenAI, streaming, dan penanganan batasan untuk penggunaan langsung oleh pengembang.

URL Dasar dan Autentikasi

Ganti Base URL penyedia Anda saat ini dengan https://api.openrouternsfw.com/v1. Autentikasi menggunakan header Authorization: Bearer <key> standar. Anda mendapatkan kunci segera setelah masuk melalui Google atau email di halaman Dapatkan kunci API. Tidak diperlukan nomor telepon, dan kunci hanya ditampilkan sekali, jadi salin sebelum meninggalkan halaman.

Layanan kami adalah API independen, bukan reseller model vendor lain. Pengidentifikasi model yang Anda kirimkan dalam permintaan adalah uncensored, yang berjalan di server kami sendiri. Ini disesuaikan untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah, tetapi ini bukan model GPT, Claude, atau model vendor bernama lainnya.

Pastikan pustaka klien Anda dikonfigurasi untuk menggunakan Base URL baru ini. Semua permintaan harus menyertakan kunci API yang valid di header. Jika kunci tidak ada atau tidak valid, server mengembalikan kesalahan 401. Jika Anda tidak memiliki saldo prabayar, Anda menerima kesalahan 402. Ini adalah kode status HTTP standar yang menunjukkan masalah autentikasi atau pembayaran, bukan kesalahan server.

Endpoint Penyelesaian Obrolan

Fungsi inti disediakan melalui endpoint POST /v1/chat/completions. Endpoint ini menerima tubuh JSON yang berisi nama model, array pesan, dan parameter opsional. Ini mengembalikan objek JSON dengan teks yang dihasilkan, statistik penggunaan token, dan alasan selesai. Struktur ini kompatibel dengan SDK OpenAI resmi dan sebagian besar pustaka klien kompatibel OpenAI.

Anda tidak perlu menulis klien HTTP khusus jika Anda lebih suka menggunakan SDK. Namun, Anda harus memperbarui konfigurasi untuk mengarah ke Base URL kami. Contoh berikut menunjukkan permintaan penyelesaian standar menggunakan cURL. Permintaan ini mengirim prompt ke model tanpa sensor dan mengharapkan respons teks.

curl https://api.openrouternsfw.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

Ingatlah bahwa API ini hanya melayani teks. Tidak ada endpoint embedding, gambar, audio, atau generasi video. Jika aplikasi Anda memerlukan input atau output multimodal, Anda harus menangani itu secara terpisah. Layanan kami berfokus secara eksklusif pada generasi teks berkualitas tinggi dengan model tanpa sensor.

Integrasi SDK Python

Menggunakan SDK Python menyederhanakan proses integrasi. Inisialisasi klien dengan Base URL yang benar dan kunci API Anda. Pustaka menangani permintaan HTTP dan parsing JSON untuk Anda. Anda dapat menentukan ID model sebagai uncensored untuk memastikan Anda menggunakan model khusus kami.

from openai import OpenAI

client = OpenAI(base_url="https://api.openrouternsfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Potongan kode ini menunjukkan cara mengirim pesan dan mengambil respons. Klien secara otomatis menangani koneksi dan pelaporan kesalahan. Jika server mengembalikan kesalahan, SDK melempar pengecualian. Anda harus menangani pengecualian ini dalam logika aplikasi Anda untuk memberikan pengalaman pengguna yang lebih baik.

SDK Python hanyalah salah satu opsi. Anda dapat menggunakan bahasa apa pun yang mendukung permintaan HTTP. Struktur endpoint tetap sama terlepas dari klien yang Anda pilih. Fleksibilitas ini memungkinkan Anda mengintegrasikan model tanpa sensor ke dalam alur kerja yang ada tanpa perubahan kode yang signifikan.

Penggunaan SDK Node

SDK Node bekerja mirip dengan versi Python. Konfigurasikan klien dengan Base URL dan kunci API, lalu panggil metode penyelesaian obrolan. Pendekatan ini ideal untuk aplikasi sisi server atau layanan backend yang perlu menghasilkan teks secara asinkron.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Pengembang Node.js dapat dengan mudah mengintegrasikan API ini ke proyek yang ada. SDK menangani serialisasi dan deserialisasi data JSON. Anda juga dapat menentukan parameter tambahan seperti temperature atau top_p untuk mengontrol keacakan output.

Pastikan untuk menangani sifat asinkron dari permintaan dengan benar. Gunakan async/await atau rantai Promise untuk mengelola data respons. Ini memastikan bahwa aplikasi Anda tetap responsif saat menunggu model menghasilkan teks. SDK Node adalah pilihan yang andal untuk membangun layanan generasi teks yang dapat diskalakan.

Respons Streaming

Aktifkan streaming dengan mengatur parameter stream menjadi true dalam permintaan Anda. Server akan mengirimkan serangkaian Server-Sent Events (SSE) alih-alih respons JSON tunggal. Setiap peristiwa berisi potongan teks yang dihasilkan secara parsial.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Streaming berguna untuk aplikasi real-time di mana Anda ingin menampilkan output saat dihasilkan. Potongan terakhir dari stream berisi total penggunaan token untuk permintaan tersebut. Ini memungkinkan Anda melacak biaya secara akurat tanpa menunggu seluruh respons selesai.

Tangani event stream dengan hati-hati untuk memastikan teks dirakit dengan benar. Gabungkan potongan-potongan tersebut sesuai urutan penerimaannya. Server menjamin bahwa potongan-potongan dikirim secara berurutan. Jika koneksi terputus, Anda mungkin perlu mencoba ulang permintaan tersebut. Streaming adalah fitur canggih yang meningkatkan pengalaman pengguna untuk tugas generasi teks.

Batas Laju dan Jendela Konteks

Setiap kunci API dibatasi hingga 300 permintaan per menit dan 8 permintaan konkuren. Ukuran tubuh permintaan dibatasi hingga 8 MB. Jika Anda melebihi batas ini, server mengembalikan kode status 429. Ini adalah kode status HTTP standar yang menunjukkan bahwa Anda telah mengirim terlalu banyak permintaan dalam jendela waktu tertentu. Anda harus menerapkan backoff eksponensial di klien Anda untuk menangani kesalahan ini dengan lancar.

Jendela konteks mendukung hingga 100,000 token untuk prompt dan penyelesaian gabungan. Tidak ada batas output terpisah. Jika Anda tidak menentukan parameter max_tokens, respons dapat berjalan hingga akhir jendela. Anda dapat membatasi panjang output dengan mengatur max_tokens ke nilai yang lebih rendah.

Pantau penggunaan token Anda untuk mengelola saldo prabayar Anda secara efektif. Kesalahan dan penolakan tidak mengonsumsi token, jadi Anda tidak dikenakan biaya untuk permintaan yang gagal. Ini memastikan bahwa Anda hanya membayar untuk generasi teks yang berhasil. Perhatikan batas laju Anda untuk menghindari gangguan dalam layanan Anda.

Spesifikasi teknis

Semua batas dan fitur API yang sebenarnya di satu tempat — cek dulu sebelum isi saldo.

ItemNilai
Formatkompatibel OpenAI: SDK OpenAI apa pun bisa dipakai, cukup ganti base URL dan kunci
AutentikasiAuthorization: Bearer YOUR_KEY
EndpointPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.openrouternsfw.com/v1
ID modeluncensored
Mode JSONresponse_format: {"type": "json_object"}
Output maksimalhingga sisa jendela 100.000 token; max_tokens opsional (tanpa batas terpisah)
Jendela konteks100.000 token (input + output)
Parametertemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Function callingya — tools, tool_choice; balasan berisi tool_calls, juga saat streaming; hasil dikirim sebagai role: tool
Streamingya — server-sent events; potongan terakhir berisi penggunaan token
Header responsX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Ukuran permintaanhingga 8 MB
Konkurensi8 permintaan bersamaan per kunci
Batas laju300 permintaan per menit per kunci
Isi saldoUSDT (TRC20) atau USDC (Base), nominal bulat berapa pun dari $20 sampai $500
Masa berlakusaldo berbayar tidak kedaluwarsa, tanpa langganan
Penagihansaldo prabayar sesuai pemakaian nyata; error dan penolakan gratis
Uji coba gratis$0,50 selama 7 hari, tanpa kartu · Kunci uji coba: 2 permintaan paralel, 60 per menit; batas penuh (8 dan 300) setelah isi saldo pertama
Bonus+5% mulai $50, +10% mulai $100, +15% mulai $200
Harga$0,15 per 1 juta token input · $0,50 per 1 juta token output
Kontenkonten dewasa diizinkan; konten seksual yang melibatkan anak di bawah umur ditolak
MasukGoogle atau email dan kata sandi
Kuncisatu kunci aktif per akun; kunci baru menggantikan yang lama

Kode error

Error dikirim sebagai JSON dengan type tetap; permintaan gagal atau ditolak tidak ditagih.

KodeTipeArti
400bad_requestJSON tidak valid, pesan kosong, parameter salah, atau konteks terlalu panjang
401missing_key · invalid_key · key_revokedkunci tidak ada, salah, atau sudah diganti
402no_creditsaldo habis — isi ulang dan lanjut seketika
403content_blockedkonten seksual dengan anak di bawah umur — ditolak, tidak ditagih
404not_foundendpoint tidak dikenal
413request_too_largebody lebih dari 8 MB
429rate_limited · concurrencylebih dari 300/menit atau 8 paralel — tunggu lalu coba lagi
503upstream_busymodel sibuk — coba lagi beberapa detik lagi

Tanya jawab

Bagaimana model tanpa sensor berbeda dari vendor lain?

Model kami adalah model bobot terbuka yang dijalankan di server kami sendiri, disesuaikan untuk menjawab tanpa penolakan konten untuk penggunaan dewasa yang sah. Ini bukan GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama, atau model vendor lain. Kami tidak melakukan pengalihan antar vendor; kami melayani satu endpoint tanpa sensor.

Apa yang terjadi jika saya melebihi batas laju?

Jika Anda melebihi 300 permintaan per menit atau 8 permintaan konkuren per kunci, server mengembalikan kode status 429. Ini adalah kode status HTTP standar yang menunjukkan bahwa Anda telah mengirim terlalu banyak permintaan dalam jendela waktu tertentu. Anda harus menerapkan logika backoff di klien Anda untuk menangani kesalahan ini.

Apakah API mendukung pemanggilan fungsi dan mode JSON?

Ya, API mendukung pemanggilan fungsi (tools, tool_choice) dan mode JSON (response_format json_object). Anda juga dapat menentukan parameter seperti temperature, top_p, stop, seed, presence_penalty, dan frequency_penalty untuk mengontrol output.

Kunci Anda hanya selangkah lagi dari satu formulir

Buat akun, salin kunci, ubah URL dasar. Itu saja seluruh proses pengaturannya.

Dapatkan kunci API