seamless.ai.id

Dokumentasi seamless.ai.id

seamless.ai.id adalah satu API kompatibel OpenAI untuk 4 model dari 4 pembuat, dibayar dengan saldo prabayar dalam rupiah. SDK dan alat yang sudah bisa memanggil OpenAI cukup diganti base URL dan API key-nya.

https://16-79-198-229.sslip.io/v1

Mulai dalam empat langkah

  1. Minta API key ke operator (pendaftaran mandiri belum dibuka).
  2. Simpan API key pertama Anda: key hanya ditampilkan sekali.
  3. Isi saldo dengan QRIS dari dashboard, lalu coba model di Playground dashboard tanpa menulis kode.
  4. Ikuti panduan untuk alat Anda: curl, Python (SDK OpenAI), JavaScript / TypeScript (SDK OpenAI), LangChain, n8n.

Model yang tersedia: 3 model chat, 1 model embedding. Harga, konteks, dan kemampuan setiap model ada di daftar model, juga sebagai JSON di /pricing.

Saldo dalam rupiah: isi, tahan, tagih

  1. Isi saldo. Top-up dibayar dengan QRIS dari aplikasi bank atau e-wallet apa pun; saldo bertambah begitu pembayaran diterima dan kuitansi terbit. Jumlah minimum dan maksimum, bonus yang berlaku, dan cara PPN dihitung tampil di dashboard sebelum Anda membayar dan di halaman harga.
  2. Tahan. Sebelum request diteruskan ke provider, gateway menahan batas atas biayanya dari saldo: seluruh body dihitung seolah setiap byte satu token prompt, ditambah max_tokens token jawaban (tanpa max_tokens, batas bawaan model), dengan harga tertinggi yang bisa berlaku selama request berjalan. Kalau saldo yang tersedia tidak cukup, request ditolak sebelum dikirim. Mengisi max_tokens membuat yang ditahan lebih kecil.
  3. Tagih. Setelah jawaban selesai, yang ditagih adalah token yang dilaporkan provider dengan harga provider yang menjawab, dan sisa yang ditahan kembali ke saldo. Tagihan tidak pernah melebihi yang ditahan. Request yang gagal sebelum ada isi jawaban tidak ditagih. Kalau provider tidak melaporkan jumlah token (misalnya stream dihentikan sebelum laporan pemakaian), jumlahnya diperkirakan dari ukuran prompt dan jawaban yang sudah terkirim; untuk penalaran yang tidak terlihat (thinking model Anthropic) yang ditagih adalah seluruh batas jawaban.

Model berharga Gratis tidak memakai saldo. Harga token ditulis per 1 juta token; model pembuat gambar, transkripsi suara, dan teks ke suara dihargai per gambar, per jam audio, atau per 1 juta karakter, dan sebagian model rerank per 1.000 pencarian (lihat di bawah). Saldo, yang sedang ditahan, pemakaian per hari, dan daftar request tampil di dashboard atau lewat GET /v1/balance, /v1/usage, dan /v1/requests. Isi prompt dan jawaban (termasuk audio, transkrip, dan gambar yang dibuat) tidak pernah kami simpan, hanya metadata (model, jumlah token, gambar, detik audio, karakter, atau pencarian, biaya). Satu-satunya pengecualian adalah Batch API: file JSONL yang Anda unggah ke /v1/files dan hasil setiap barisnya kami simpan sampai Anda menghapusnya (DELETE /v1/files/{id}) atau masa simpannya habis.

API key dan scope

Setiap key memegang satu atau beberapa scope:

ScopeBoleh memanggil
inferencePOST /v1/chat/completions, POST /v1/embeddings, POST /v1/images/generations, POST /v1/audio/transcriptions, POST /v1/audio/speech, POST /v1/rerank, POST /v1/moderations, GET /v1/models, dan GET /v1/requests/{id} untuk request key itu sendiri
readsaldo, pemakaian, analitik, daftar request, kuitansi, status top-up, kode referral (GET /v1/referral)
adminmembuat, mengubah, dan mencabut key; membuat top-up; mengurus anggota; pengaturan email

Responses API

POST /v1/responses menerima format Responses API OpenAI untuk setiap model chat, jadi SDK dan framework agent yang memanggil responses.create bisa memakai model mana pun di sini. Gateway menerjemahkannya ke chat completions: routing, fallback, harga, saldo yang ditahan, dan tagihannya sama persis dengan request chat yang sama, dan usage di jawaban adalah token yang ditagih.

Batas

Error

Setiap error berformat OpenAI:

{"error": {"message": "…", "type": "invalid_request_error", "param": "model", "code": "model_not_found"}}
StatuscodeArti dan yang perlu dilakukan
401missing_api_key, invalid_api_key, revoked_api_keyheader Authorization: Bearer … kosong, salah, atau key sudah dicabut
403insufficient_scopekey tidak punya scope endpoint itu; pesannya menyebut scope yang kurang
404model_not_foundid model salah ketik atau tidak dijual; ambil id dari daftar model
400invalid_value, invalid_field, unsupported_value, unsupported_parameterfield request yang salah atau fitur yang tidak bisa dilayani model itu; param menunjuk field-nya. Tidak ditagih
400invalid_image, unsupported_contentgambar yang tidak valid, atau gambar/audio/file ke model yang tidak menerimanya
400no_eligible_provider, price_above_maxpreferensi routing tidak menyisakan provider; ditolak sebelum saldo ditahan
400max_price_not_applicable, unsupported_modelmax_price (di request atau di key) dipakai untuk model pembuat gambar atau transkripsi, yang tidak berharga per token: pakai key dan request tanpa max_price; atau model dikirim ke endpoint jenis lain (lihat gambar dan transkripsi)
413request_too_largebody terlalu besar
429rate_limit_exceededtunggu Retry-After
429insufficient_quota, key_spend_limit_reached, member_budget_reachedisi saldo, naikkan batas, atau kecilkan max_tokens; jangan diulang otomatis
502, 503, 504upstream_error, no_provider_available, upstream_timeoutprovider sedang bermasalah; gateway sudah mencoba provider lain model itu kalau ada. Ulangi nanti (Retry-After kalau ada)

Kondisi setiap model sekarang, riwayat 90 hari, dan insiden yang diumumkan ada di halaman status. Setiap jawaban membawa header x-request-id; sebutkan saat menghubungi operator.

Memilih provider dan membatasi harga

Satu model bisa dilayani beberapa provider dengan harga dan kebijakan data masing-masing (tertulis di halaman model). Tanpa pengaturan, gateway memilih sendiri dan pindah ke provider lain kalau satu gagal. Request ditagih dengan harga provider yang menjawab, paling tinggi harga "hingga" model itu. Pengaturannya dikirim di body sebagai gateway.routing (SDK Python dan LangChain: extra_body):

Harga "mulai" di halaman model hanya dijamin dengan only (atau order + fallback: false) ke provider termurah, atau max_price setinggi harga itu. Admin akun bisa memasang pengaturan yang sama sebagai routing default sebuah key; request hanya bisa memperketatnya.

Input gambar

Model dengan badge Input gambar menerima bagian image_url di pesan user: data URL base64 (data:image/png;base64,…) atau URL https:// yang diambil penyedia model (gateway tidak pernah membukanya; URL ke alamat IP atau nama internal ditolak). Format JPEG, PNG, GIF, atau WebP, dikenali dari isi byte-nya; detail boleh auto, low, high, atau original. Operator membatasi jumlah dan ukuran gambar per request; yang melanggar dijawab 400 invalid_image dengan param yang menunjuk gambarnya. Saldo yang ditahan menghitung setiap gambar dengan batas token terbanyak per gambar model itu; tagihannya tetap dari token yang dilaporkan penyedia. Contoh kode ada di setiap panduan.

Gambar, transkripsi, teks ke suara, dan rerank

Saat ini tidak ada model pembuat gambar, transkripsi suara, teks ke suara, atau rerank di daftar harga.

Moderation

Saat ini tidak ada model moderation di daftar harga.