Mulai cepat
Saat layanan dibuka, buat akun, isi saldo, lalu buat API key di dashboard. Simpan API key berawalan nice- di server aplikasimu, bukan di kode publik.
Autentikasi & idempotensi
Untuk Chat Completions dan Responses, kirim header Authorization: Bearer YOUR_API_KEY. Messages juga menerima x-api-key. Setiap request inferensi membutuhkan Idempotency-Key sepanjang 1 sampai 200 karakter: huruf, angka, titik, garis bawah, titik dua, atau tanda minus.
Kunci berlaku per akun. Gunakan kunci yang sama saat mengirim ulang request yang sama. Request yang sudah selesai tidak ditagih lagi. Jika statusnya request_reconciliation_required, jangan kirim ulang.
Chat Completions
Base URL yang direncanakan: https://api.nicetokens.xyz/v1. Curl di bawah menunjukkan format request; API belum tersedia.
curl https://api.nicetokens.xyz/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: request-001" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6.1-sol","messages":[{"role":"user","content":"Halo"}],"max_tokens":100}'Responses & Messages
POST /v1/responses memakai format Responses, termasuk input dan output items. POST /v1/messages memakai content blocks Anthropic dan membutuhkan max_tokens. Gunakan model yang telah diverifikasi mendukung endpoint dan fitur yang kamu minta.
Streaming & tools
Tambahkan "stream": true untuk menerima respons bertahap melalui SSE. Format event Chat Completions, Responses, dan Messages berbeda. Server tidak mengulang stream otomatis setelah output pertama.
Aplikasi pelanggan mengeksekusi tools dan mengirim kembali hasilnya. Nice Tokens tidak menjalankan kode atau URL tool pelanggan. Dukungan tools, JSON Schema dan reasoning harus diperiksa per model, tidak boleh diasumsikan.
Saldo & biaya pemakaian
Biaya = token input terpakai × tarif input / 1.000.000 + token output terpakai × tarif output / 1.000.000. Sebelum request, sebagian saldo ditahan sementara. Setelah pemakaian terverifikasi, biaya dipotong dan sisa dana yang ditahan dikembalikan.
Jika pemakaian belum dapat dipastikan, dana tetap ditahan untuk diperiksa. Dana tidak otomatis dikembalikan atau ditagih berdasarkan perkiraan.
Top-up QRIS
Isi saldo mulai Rp10.000. Total bayar dapat mencakup penanda unik yang tidak masuk ke saldo — misalnya total bayar Rp25.137 dan saldo bertambah Rp25.000.
Invoice berlaku 10 menit. QR dihapus saat invoice kedaluwarsa atau dibatalkan. Pembayaran terlambat perlu diperiksa sebelum saldo ditambahkan. Status lunas mengikuti konfirmasi pembayaran, bukan screenshot atau tombol pelanggan.
Endpoint & fitur model
| Metode | Path | Tujuan |
|---|---|---|
| GET | /v1/models | Katalog model |
| GET | /v1/balance | Saldo akun pemilik API key |
| GET | /v1/usage | Ringkasan token akun |
| POST | /v1/chat/completions | Chat OpenAI-compatible |
| POST | /v1/responses | Responses |
| POST | /v1/messages | Messages Anthropic-compatible |
Dukungan image, audio, embeddings, files, vector stores, dan count_tokens belum diverifikasi. Jangan menganggap semua model mendukung endpoint dan fitur yang sama.
Error & batas request
| Kode | Tindakan |
|---|---|
| invalid_api_key | Periksa key dan header autentikasi. |
| insufficient_balance | Tambahkan saldo atau kecilkan batas output. |
| capability_not_supported | Periksa endpoint/fitur untuk model yang dipilih. |
| request_in_progress | Request dengan kunci yang sama masih diproses. Tunggu hingga selesai. |
| request_reconciliation_required | Jangan kirim ulang request. Pemakaian perlu diperiksa. |
| model_capacity_exhausted | Kapasitas model sedang penuh. Request tidak masuk antrean. |
| upstream_timeout | Batas waktu total request: 120 detik. |
| usage_unknown | Pemakaian belum dapat dipastikan dan perlu diperiksa. |
Batas percobaan ulang: maksimal 3 kali setelah percobaan pertama, hanya untuk gangguan sementara sebelum output dimulai.
Keamanan akun
Jangan berbagi API key. Ganti atau cabut API key dari dashboard dan periksa sesi akunmu.