DeepSeek Playground

deepseek.stenly.co · API docs & testing

Chat Console
Mulai dengan menulis prompt di bawah,
atau klik salah satu contoh.
Contoh: · ·
Server Status
Status
Session login DeepSeek
Job aktif
Total job
Model
memuat…

Mulai Cepat

API ini memutar ulang chat.deepseek.com lewat browser sungguhan. Kamu mengirim prompt, lalu mengambil hasilnya dengan pola submit → poll status. Semua respons berupa JSON.

1

Kirim prompt

POST /api/v1/chat mengembalikan job_id. Model default DeepThink (reasoner) aktif.

2

Poll status job

GET /api/v1/jobs/{job_id} setiap ±2 detik hingga status = done atau error.

3

Baca hasil

Percakapan lengkap (user + assistant, thinking trace jika DeepThink) tersedia di field result.

Contoh lengkap

# 1. Kirim prompt
curl -X POST https://deepseek.stenly.co/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Jelaskan cara kerja transformer","deep_think":true}'

# → {"job_id":"ab12cd34ef56","status":"queued"}

# 2. Poll sampai selesai
curl https://deepseek.stenly.co/api/v1/jobs/ab12cd34ef56

Autentikasi

Autentikasi bersifat opsional. Jika server dikonfigurasi dengan token, endpoint /api/v1/* (kecuali /health) wajib menyertakan header:

Authorization: Bearer TOKEN_KAMU

Tanpa token yang dikonfigurasi, semua endpoint bisa dipanggil bebas. Token diatur lewat env API_TOKEN atau server.api_token di config.json.

POST/api/v1/chat

Submit prompt sebagai job asinkron. Langsung balas job_id; ambil hasilnya lewat GET /api/v1/jobs/{id}.

Request body

FieldTipeWajibKeterangan
promptstringwajibInstruksi / pertanyaan.
deep_thinkbooleanopsionalAktifkan DeepThink (reasoner). Default true.
web_searchbooleanopsionalAktifkan pencarian web. Default false.

Contoh

# submit
curl -X POST https://deepseek.stenly.co/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Jelaskan cara kerja transformer","deep_think":true}'

# → {"job_id":"ab12cd34ef56","status":"queued"}

Coba langsung (submit + poll otomatis)

Mengirim job lalu otomatis poll hingga done.
// hasil akan muncul di sini

POST/api/v1/chat/stream

Realtime (SSE). Body respons dari POST ini langsung adalah stream event — sekali request, token mengalir. Cocok untuk EventSource standar, library SSE, atau fetch stream.

Event yang dikirim (setiap event = satu objek JSON)

EventIsiKapan
{"type":"job"}text = stream_idMulai streaming.
{"type":"thinking"}text = seluruh proses berpikir (akumulasi)Saat DeepThink aktif, text selalu berisi thinking lengkap sejauh ini.
{"type":"delta"}text = seluruh jawaban (akumulasi)Satu variabel yang tumbuh kata demi kata — langsung timpa variabel kamu.
{"type":"done"}result = percakapan lengkapStream selesai.
{"type":"error"}text = pesan errorGagal — tutup koneksi.

curl

# satu request, langsung stream — pakai -N agar tidak nunggu buffer
curl -N -X POST https://deepseek.stenly.co/api/v1/chat/stream \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Jelaskan cara kerja transformer","deep_think":true}'

Python (streaming)

import requests, json

with requests.post("https://deepseek.stenly.co/api/v1/chat/stream",
                  json={"prompt": "2+2?", "deep_think": True},
                  stream=True) as resp:
    buffer = ""
    for chunk in resp.iter_content(chunk_size=None):
        buffer += chunk.decode()
        while "\n\n" in buffer:
            data, buffer = buffer.split("\n\n", 1)
            line = data.strip()
            if not line.startswith("data:"): continue
            ev = json.loads(line[5:])
            if ev["type"] == "thinking":
                think = ev["text"]      # satu variabel, tumbuh terus
            elif ev["type"] == "delta":
                answer = ev["text"]     # satu variabel, kata demi kata
            elif ev["type"] == "error":
                print("[ERROR]", ev["text"])

# setelah selesai: answer berisi jawaban lengkap, think berisi proses berpikir

Coba langsung (lihat event mengalir)

Setiap baris data: = satu event. delta.text selalu berisi seluruh jawaban yang tumbuh — tinggal timpa ke satu variabel.
// hasil akan muncul di sini

GET/api/v1/jobs/{job_id}

Poll status job yang telah disubmit. Poll setiap ±2 detik sampai status = done atau error.

Field status

StatusArtinya
queuedMenunggu slot browser kosong.
runningSedang diproses browser.
doneSelesai — field result berisi percakapan.
errorGagal — field error berisi pesan.

Coba langsung

Isi dengan job_id dari hasil POST chat.
// hasil akan muncul di sini

GET/api/v1/models

Daftar preset model dan toggle yang didukung server.

Coba langsung

// hasil akan muncul di sini

GET/api/v1/health

Status server: liveness, keberadaan session login, job aktif, dan kondisi pool browser. Tidak butuh token.

Coba langsung

// hasil akan muncul di sini

Parameter Umum

NamaDefaultKeterangan
promptTeks pertanyaan / instruksi. Wajib diisi.
deep_thinktrueMode DeepThink (reasoner) — memikirkan dulu sebelum menjawab, 15–60 detik.
web_searchfalseBiarkan DeepSeek mencari info terbaru dari web.
!
DeepThink aktif membuat respons lebih lambat (proses berpikir dulu). Untuk latensi rendah, kirim "deep_think": false.

Struktur Respons

Saat job done, field result berisi:

FieldKeterangan
idID percakapan unik.
titleJudul percakapan (mis. Jelaskan 2+2 - DeepSeek).
modeldeepseek-chat atau deepseek-reasoner.
scraped_atTimestamp epoch detik.
message_countJumlah pesan (biasanya 2).
messages[]Daftar pesan dengan role, content, thinking (tanpa HTML).

Kode Status & Error

KodeArtinya
200OK.
400Body tidak valid / prompt kosong.
401Token salah / tidak ada — hanya jika autentikasi diaktifkan.
404Job / stream tidak ditemukan.
500Gagal internal (mis. browser error).
503Browser tidak tersedia / semua slot sibuk.

Batasan Sistem

!
API ini berjalan di atas browser sungguhan (Playwright). Ada batasan yang wajar:
  • Jumlah request bersamaan dibatasi server.concurrency (default 3) — lebih dari itu antre.
  • Setiap jawaban butuh waktu beberapa detik (navigasi + menunggu DeepSeek).
  • Pemakaian berlebihan bisa memicu rate-limit akun DeepSeek.
i
Gunakan GET /api/v1/health untuk memantau kesehatan pool sebelum mengirim banyak request.