API AI Karakter: Alihkan klien Anda dalam tiga baris
Hubungkan chatbot Anda ke LLM tanpa sensor dalam hitungan menit menggunakan API yang kompatibel dengan OpenAI. Panduan ini memandu Anda melalui pengaturan, permintaan dasar, dan streaming tanpa kesulitan konfigurasi.
https://api.characteraiapi.com/v1
Prasyarat
Sebelum menulis kode, Anda memerlukan akun aktif di characteraiapi.com. Kunjungi halaman Dapatkan kunci API dan daftar hanya dengan email dan kata sandi. Tidak diperlukan kartu kredit untuk memulai, dan akun baru menerima $0.50 dalam kredit uji coba yang berlaku selama 7 hari. Setelah terdaftar, kunci API Anda ditampilkan secara langsung. Simpan kunci ini dengan aman karena digunakan untuk mengautentikasi semua permintaan ke endpoint. Anda juga perlu menginstal SDK bahasa yang didukung di lingkungan pengembangan Anda. Endpoint character ai api menerima parameter standar OpenAI, sehingga klien yang kompatibel dengan OpenAI apa pun dapat bekerja dengan perubahan minimal.
Instal SDK
Untuk proyek Python, instal paket OpenAI resmi menggunakan pip. Perpustakaan ini menangani serialisasi JSON dan permintaan HTTP secara otomatis. Untuk aplikasi Node.js, gunakan npm untuk menambahkan paket openai. Kedua perpustakaan mendukung fitur streaming dan pemanggilan alat yang dijelaskan nanti dalam panduan ini. Pastikan versi SDK Anda cukup baru untuk mendukung Server-Sent Events (SSE) untuk streaming token secara real-time. Jika Anda menggunakan klien HTTP kustom alih-alih SDK, Anda harus menangani payload JSON dan parsing stream SSE secara manual sesuai dengan spesifikasi API OpenAI.
Autentikasi
Setiap permintaan ke API harus menyertakan kunci API Anda di header Authorization. Gunakan format Bearer YOUR_API_KEY. URL dasar untuk semua permintaan adalah https://api.characteraiapi.com/v1. Saat menggunakan SDK, atur konfigurasi base_url ke nilai ini dan berikan kunci Anda melalui parameter api_key. Jika Anda kehilangan kunci atau mencurigakan kebocoran, Anda dapat membuat ulang kunci tersebut dari dasbor; kunci lama akan dicabut segera. Hanya satu kunci aktif yang diizinkan per akun. Pastikan Anda menggunakan URL dasar yang benar, karena permintaan ke endpoint OpenAI standar akan gagal dengan error 404 atau 401.
Penyelesaian Chat Dasar
Fungsionalitas inti dilayani melalui endpoint /v1/chat/completions. Kirim permintaan POST dengan nama model uncensored dan riwayat pesan Anda. Model merespons dengan output teks tanpa menerapkan filter konten standar untuk konten dewasa yang sah. Di bawah ini adalah contoh curl yang menunjukkan permintaan penyelesaian teks sederhana.
curl https://api.characteraiapi.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."}]
}'
Permintaan ini mengembalikan objek penyelesaian yang berisi teks yang dihasilkan. Anda dapat menyesuaikan parameter seperti temperature untuk mengontrol keacakan atau max_tokens untuk membatasi panjang output. Model mendukung jendela konteks 100.000 token, memungkinkan riwayat percakapan yang substansial atau dokumen panjang diproses dalam satu permintaan.
Respons Streaming
Untuk pengalaman pengguna yang lebih baik, aktifkan streaming dengan mengatur stream: true dalam permintaan Anda. API mengembalikan Server-Sent Events (SSE) yang berisi potongan token parsial saat dihasilkan. Ini mengurangi latensi yang dirasakan untuk aplikasi chatbot. Gunakan parameter stream_options jika Anda ingin menerima statistik penggunaan akhir di peristiwa terakhir. Streaming sangat berguna untuk roleplay karakter real-time, di mana menampilkan teks kata demi kata meningkatkan imersi. Pastikan kode klien Anda menangani format SSE dengan benar untuk mengurai setiap potongan secara berurutan.
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)
Batas Laju dan Error
API memberlakukan batas 300 permintaan per menit per kunci. Jika Anda melebihi ini, Anda akan menerima error 429 Too Many Requests. Badan permintaan dibatasi hingga 8 MB. Error umum termasuk 401 untuk kunci yang tidak valid atau hilang, dan 402 jika saldo prabayar Anda habis. Anda dapat mengisi saldo mulai dari $10 menggunakan crypto (USDT atau USDC), dengan kredit bonus tersedia untuk deposit yang lebih besar. Tidak seperti beberapa penyedia, tidak ada biaya tersembunyi atau kunci langganan; Anda hanya membayar untuk token yang Anda konsumsi. Harga transparan: $0,25 per 1M token input dan $1,00 per 1M token output. Pastikan logika penanganan error Anda melakukan ulang permintaan pada 429 dengan backoff eksponensial.
from openai import OpenAI
client = OpenAI(base_url="https://api.characteraiapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.characteraiapi.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);Spesifikasi API
Semua batas dan fitur API yang sebenarnya di satu tempat — cek dulu sebelum isi saldo.
| Item | Nilai |
|---|---|
| Format | kompatibel OpenAI: SDK OpenAI apa pun bisa dipakai, cukup ganti base URL dan kunci |
| Endpoint | POST /v1/chat/completions · GET /v1/models |
| Autentikasi | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.characteraiapi.com/v1 |
| ID model | uncensored |
| Mode JSON | response_format: {"type": "json_object"} |
| Output maksimal | hingga sisa jendela 100.000 token; max_tokens opsional (tanpa batas terpisah) |
| Parameter | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Jendela konteks | 100.000 token (input + output) |
| Streaming | ya — server-sent events; potongan terakhir berisi penggunaan token |
| Function calling | ya — tools, tool_choice; balasan berisi tool_calls, juga saat streaming; hasil dikirim sebagai role: tool |
| Ukuran permintaan | hingga 8 MB |
| Header respons | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Konkurensi | 8 permintaan bersamaan per kunci |
| Batas laju | 300 permintaan per menit per kunci |
| Masa berlaku | saldo berbayar tidak kedaluwarsa, tanpa langganan |
| Bonus | +5% mulai $50, +10% mulai $100 |
| Isi saldo | USDT (TRC20) atau USDC (Base), nominal bulat berapa pun dari $10 sampai $500 |
| Harga | $0,25 per 1 juta token input · $1,00 per 1 juta token output |
| Penagihan | saldo 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 |
| Kunci | satu kunci aktif per akun; kunci baru menggantikan yang lama |
| Masuk | Google atau email dan kata sandi |
| Konten | konten dewasa diizinkan; konten seksual yang melibatkan anak di bawah umur ditolak |
Kode error
Error dikirim sebagai JSON dengan type tetap; permintaan gagal atau ditolak tidak ditagih.
| Kode | Tipe | Arti |
|---|---|---|
400 | bad_request | JSON tidak valid, pesan kosong, parameter salah, atau konteks terlalu panjang |
401 | missing_key · invalid_key · key_revoked | kunci tidak ada, salah, atau sudah diganti |
402 | no_credit | saldo habis — isi ulang dan lanjut seketika |
403 | content_blocked | konten seksual dengan anak di bawah umur — ditolak, tidak ditagih |
404 | not_found | endpoint tidak dikenal |
413 | request_too_large | body lebih dari 8 MB |
429 | rate_limited · concurrency | lebih dari 300/menit atau 8 paralel — tunggu lalu coba lagi |
503 | upstream_busy | model sibuk — coba lagi beberapa detik lagi |
Tanya jawab
Apakah ini API Character.ai resmi?
Tidak, ini adalah layanan independen yang di-host di characteraiapi.com. Layanan ini menyediakan model tanpa sensor sendiri dan tidak berafiliasi dengan Character.AI atau vendor LLM besar lainnya.
Apakah model mendukung pembuatan gambar atau audio?
Tidak. API ini hanya teks. API menerima input teks dan mengembalikan output teks. API tidak mendukung embedding, fine-tuning, atau input/output multimodal.
Bagaimana 'tanpa sensor' didefinisikan?
Model tidak menolak topik dewasa yang sah, fiksi, atau kontroversial. Model hanya memblokir konten seksual yang melibatkan anak di bawah umur, yang merupakan batas keras yang diterapkan pada semua permintaan.
Kunci Anda hanya selangkah lagi dari satu formulir
Buat akun, salin kuncinya, ubah URL dasar. Itu saja seluruh pengaturannya.