Referensi API¶
Claudin.io adalah API yang kompatibel dengan OpenAI. Jika Anda pernah menggunakan API OpenAI, semuanya di sini terasa familier — cukup arahkan ke URL dasar Claudin.io dan gunakan model claudinio.
URL dasar¶
Rute bergaya OpenAI tersedia di bawah /v1.
Autentikasi¶
Kirim kunci API Anda dengan setiap permintaan, sebagai salah satu header berikut:
Model¶
| ID model | Jendela konteks |
|---|---|
claudinio |
256K token |
Gunakan claudinio di mana saja. (Beberapa klien mengharapkan bentuk provider/model — untuk itu, gunakan claudinio/claudinio.)
Endpoint¶
| Metode & path | Deskripsi |
|---|---|
POST /v1/chat/completions |
Chat completions — endpoint utama |
POST /v1/completions |
Completions teks lawas |
POST /v1/messages |
Format Anthropic Messages |
POST /v1/responses |
API Responses (Codex) |
POST /v1/embeddings |
Embedding teks |
GET /v1/models |
Daftar model yang tersedia |
Chat completions¶
curl https://api.claudin.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "claudinio",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a haiku about proxies."}
],
"temperature": 0.7
}'
Parameter OpenAI standar didukung: messages, temperature, top_p, max_tokens, stream, stop, tools / tool_choice (function calling), response_format, dan seterusnya. Dua di antaranya memiliki batas yang perlu Anda ketahui sebelum mengirimnya: max_tokens dibatasi antara nilai minimum dan maksimum, dan n harus 1.
max_tokens dan penalaran¶
Model Claudinio bernalar sebelum menjawab, dan token penalaran diperhitungkan dalam max_tokens — anggaran yang sama mencakup rantai pemikiran internal dan balasan yang terlihat. Oleh karena itu, max_tokens yang kecil bisa habis hampir seluruhnya untuk penalaran, sehingga jawaban terpotong di tengah kalimat.
Untuk mencegah hal itu, nilai di bawah 32000 otomatis dinaikkan menjadi 32000. Di sisi lain, nilai di atas 393216 diturunkan menjadi 393216 — maksimum yang dapat diterima model — karena angka yang lebih besar ditolak mentah-mentah, bukan dianggap sebagai "sebanyak yang Anda mau". Nilai apa pun di antara keduanya diteruskan tanpa perubahan, dan tidak menyertakan parameter ini selalu aman.
max_tokens adalah batas atas, bukan reservasi: Anda ditagih untuk token yang benar-benar dihasilkan, jadi nilai yang besar tidak memerlukan biaya tambahan.
Jika Anda mengurai output terstruktur (JSON, XML, format ketat), periksa finish_reason sebelum mengurai — "length" berarti respons mencapai batas token dan tidak lengkap, sehingga kegagalan penguraian adalah hal yang wajar, bukan masalah model yang rusak:
choice = response.choices[0]
if choice.finish_reason == "length":
... # truncated — retry with a larger max_tokens
data = json.loads(choice.message.content)
Beberapa completions (n)¶
Hanya n = 1 yang didukung. Mengirim n lebih besar dari 1 akan mengembalikan 400 dengan "code": "unsupported_parameter"; tidak menyertakan parameter ini selalu aman.
Model Claudinio bernalar sebelum menjawab, dan proses penalaran menghasilkan satu alur pemikiran — tidak ada cara murah untuk mencabangnya menjadi beberapa kandidat independen, sehingga penyedia hulu tidak menyediakannya. Jika Anda menginginkan lebih dari satu kandidat, kirim permintaan lebih dari sekali (temperature yang lebih tinggi memberi Anda variasi), dan perlu diingat bahwa masing-masing ditagih secara terpisah.
Kami menolak n > 1 alih-alih diam-diam mengembalikan satu pilihan: klien yang meminta empat dan menerima satu biasanya akan gagal di kemudian hari, di dalam kodenya sendiri, tanpa ada error dari kami yang menjelaskan alasannya.
Streaming¶
Setel "stream": true untuk menerima server-sent events dalam format streaming OpenAI (potongan data: {...} yang diakhiri dengan data: [DONE]).
Tool / function calling¶
claudinio mendukung tool calls. Kirim tools dan baca kembali tool_calls dari respons, persis seperti pada API OpenAI. Inilah yang membuatnya berfungsi di dalam editor agentik seperti Claude Code, Kilo, dan Cursor.
Input multimodal¶
claudinio adalah model teks, tetapi Claudin.io menangani secara transparan blok gambar, audio, dan video: jika Anda mengirimnya, proxy mengubahnya menjadi deskripsi/transkripsi teks sebelum model melihatnya. Anda tidak perlu melakukan hal khusus apa pun — kirim blok konten OpenAI standar dan semuanya berfungsi.
Error¶
Error mengikuti bentuk error OpenAI:
| Status | Makna | Yang harus dilakukan |
|---|---|---|
401 |
Kunci API tidak valid atau tidak ada | Periksa kunci dan header autentikasi |
403 |
Endpoint tidak diizinkan | Gunakan salah satu jalur /v1/* yang didukung |
402 |
Tidak ada langganan aktif | Berlangganan — mencoba lagi tidak akan membantu |
429 |
Batas anggaran tercapai atau terkena rate limit | Tunggu reset jendela (lihat header Retry-After) atau tingkatkan paket |
400 |
Permintaan rusak | Periksa JSON / parameter Anda — lihat max_tokens dan n |
5xx |
Gangguan upstream/provider | Coba lagi dengan backoff |
Detail provider sengaja disembunyikan
Pesan error disanitasi sehingga tidak membocorkan penyedia model yang mendasarinya. Anda akan selalu melihat error bermerek Claudin.io berbentuk OpenAI.
Mencapai batas anggaran¶
Saat Anda menghabiskan perlindungan pengeluaran pada jendela saat ini, permintaan akan mengembalikan 429 dengan header Retry-After yang menunjukkan detik hingga jendela direset. Dasbor Anda menampilkan waktu reset yang tepat dan sisa anggaran. Tunggulah sesuai header tersebut alih-alih mencoba lagi segera. Lihat Paket & batasan untuk mengetahui cara kerja jendela tersebut.
Sebuah pesan alih-alih 429¶
Pada sejumlah kecil akun kami sedang mencoba jawaban berbeda untuk situasi yang sama. Alih-alih galat, permintaan diselesaikan dan balasannya sendiri menjelaskan bahwa batas sudah tercapai dan kapan batas itu disetel ulang. Kami mengukur apakah dengan cara ini informasinya sampai ke orangnya lebih andal daripada galat yang ditelan diam-diam oleh agen mereka — dan apakah, kalau dikatakan terus terang, mereka lebih memilih pindah ke paket yang pas.
Kalau kamu membangun otomasi, jangan membaca 2xx sebagai "pekerjaan
selesai". Perlakukan balasan yang menyatakan batas tercapai sebagai batas yang
memang tercapai, dan tunggu sampai jendelanya disetel ulang. 429 di atas tetap
perilaku bawaan dan itulah yang diterima hampir semua akun.
Rate limiting¶
Claudin.io tidak memblokir total penggunaan normal. Laju permintaan yang abusif diperlambat (throttle yang transparan) alih-alih ditolak, sehingga klien yang berperilaku baik tidak akan pernah dirugikan. Dalam praktiknya, Anda tidak perlu melakukan apa pun — cukup coba lagi pada 429 yang jarang terjadi.