Pengembang

API Opencran

Semua model di katalog, langsung dari kode Anda. Satu kunci, satu saldo, harga yang sama dengan studio.

1 · Autentikasi

Buat kunci di Pengaturan, Kunci API. Kirimkan di setiap permintaan sebagai token Bearer. Kunci diawali dengan oc_live_ dan hanya berfungsi di Opencran; simpan di server Anda, jangan pernah di browser atau aplikasi.

curl
curl https://opencran.com/api/v1/api/catalog/me \
  -H 'Authorization: Bearer oc_live_...'

2 · Pilih model

Pilih model untuk melihat permintaan siap pakai yang disusun dari kolomnya sendiri. Kolom wajib sudah terisi, dan setiap pengaturan opsional memakai nilai bawaan model.

Model terpilihopencran/fast-image/text-to-image
Halaman model →
Kolom
NamaTipeWajibBawaan
prompttextya-
aspect_ratio1:1 | 2:1 | 1:2 | 3:1 | 1:3 | 21:9 | ...tidak1:1

3 · Mulai render

Satu panggilan menghitung harga input persis Anda dan memotongnya dari saldo. Respons langsung kembali dengan status queued, sementara render berjalan di latar belakang. Kirim header Idempotency-Key agar permintaan yang diulang tidak pernah ditagih dua kali.

curl
curl -X POST https://opencran.com/api/v1/api/catalog/generations \
  -H 'Authorization: Bearer oc_live_...' \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "modelId": "opencran/fast-image/text-to-image",
  "inputs": {
    "prompt": "a lighthouse on a cliff at dusk, soft light"
  }
}'

Cek harga terlebih dahulu (opsional)

Input yang sama, dihitung harganya tanpa memulai apa pun. Jawabannya dalam sen.

curl
curl -X POST https://opencran.com/api/v1/api/catalog/quote \
  -H 'Authorization: Bearer oc_live_...' \
  -H 'Content-Type: application/json' \
  -d '{"modelId":"opencran/fast-image/text-to-image","inputs":{"prompt":"a lighthouse on a cliff at dusk, soft light"}}'

4 · Cek status dan unduh

Minta status render setiap beberapa detik sampai statusnya succeeded, failed, atau refunded. Jika berhasil, unduh file dari contentUrl dengan kunci yang sama. Model teks mengembalikan jawabannya di textOutput.

curl
curl https://opencran.com/api/v1/api/catalog/generations/GENERATION_ID \
  -H 'Authorization: Bearer oc_live_...'
curl
curl https://opencran.com/api/v1/api/catalog/generations/GENERATION_ID/content \
  -H 'Authorization: Bearer oc_live_...' \
  -o result.png

Endpoint

URL dasar: https://opencran.com/api/v1/api/catalog

GET/meKunci dan saldo Anda
GET/modelsSemua model
GET/models/detail?id=MODEL_IDSatu model dan kolomnya
POST/quoteHarga untuk input tertentu
POST/generationsMulai render
GET/generationsRender terbaru Anda
GET/generations/IDStatus satu render
GET/generations/ID/contentFile hasil
DELETE/generations/IDHapus render

Harga dan saldo

Render lewat API memakai saldo yang sama dengan studio dan harganya sama. Setiap jumlah di API dalam sen euro: costCents adalah biaya sebuah render, balanceCents adalah sisa saldo.

Error dan batas

Galat dikembalikan sebagai JSON dengan kode dan pesan. 401: kunci hilang, salah, atau dicabut. 400: ada kolom yang tidak valid (detailnya menyebutkannya). 402: saldo tidak cukup. 429: terlalu banyak permintaan, pelan-pelan. Render yang gagal dikembalikan dananya secara otomatis. Batas yang tepat akan diumumkan saat kunci diluncurkan. 403 dengan halaman HTML: permintaan dihentikan sebelum mencapai API, biasanya karena User-Agent. Bawaan Python-urllib diblokir, kirim milik Anda sendiri, misalnya User-Agent: my-app/1.0.