The Chat Playground
Talk to any chat model in the browser without an API key, see where it ran and what it cost, then copy the exact request as code.
Open it
In Your workspace, choose Connect → Chat Playground. It opens in a new tab.
You do not need an API key. The Playground creates a short-lived personal key for you (valid 24 hours, hidden from your key list). Requests are billed to your workspace wallet at catalogue price and show up in Your workspace → Monitor → Request log marked as Playground. A workspace admin can turn the Playground off for members under Your workspace → Govern → Key policies.
Pick a model
The model list is the chat part of GET /v1/models for your workspace: auto, your Routers, and every chat model you may use. Embedding and transcription models are tried on their model page — see Try a model that is not a chat model. You never choose an endpoint — the model decides which API the request uses:
| Model | Sent to |
|---|---|
Anthropic-native models (claude-*) | POST /v1/messages |
| Models served only on the Responses API | POST /v1/responses |
Everything else, auto, @workspace/router | POST /v1/chat/completions |
Settings
The settings panel is built from GET /v1/params — the same parameter registry the gateway uses to accept or refuse a parameter. A control only appears when the selected model can use it.
- System prompt
- Reasoning — Off, Low, Medium, High, Extra high, Max. Sent as
reasoning_effort, or as Claude's thinking settings. If the serving endpoint does not accept the level you chose, Stav sends the nearest one it does and the receipt shows both. - Tools — define a function or pick a preset. With I answer tool calls myself on, a tool call pauses the turn so you can type the result.
- Output — Text, JSON, or a JSON schema.
- Sampling — temperature, top_p, max tokens, where the model supports them.
- Images — attach an image when the model accepts vision input.
The receipt
Under every answer:
- Ran on — Inference Provider, country, sovereignty level, and the model that served it
- Tokens — input and output, with reasoning tokens shown separately
- Latency — total and time to first token
- Cost — what the request cost
- Routed by — the routing reason, with Why? for the full decision
Open in Requests jumps to the same request in the Request Log.
Try a model that is not a chat model
Embedding and transcription models are not in the Chat Playground. Open the model's page (Your workspace → Connect → Models) and choose Try model. A panel opens on the right with the controls for that kind of model. It uses the same short-lived key, is billed the same way, and shows the same receipt and Code.
- Embedding models — type two to ten texts and choose Embed and compare. You get the vector length, the tokens billed, and a grid of how similar each pair of texts is.
- Transcription models — drop an audio file. It is checked against the model's upload cap before it leaves your browser. Set the language, a prompt of names and terms, and the response format (
json,text,verbose_json,srt,vtt). The transcript has Copy and Download.
What you typed stays in the panel until you leave the page. The audio is never stored. On stav.ai, Try model takes you to the same panel in Your workspace after you sign in. Old links to /playground?mode=transcribe or ?mode=embed open the model page or the model list.
Compare
Compare sends the same message to up to three columns side by side, each with its own receipt. Each column sets its own model, reasoning, temperature, top_p and max tokens. The system prompt, history, tools and output format are shared. The same model can appear in several columns — useful for comparing reasoning levels. Keep this column ends the comparison and carries that column's settings forward.
From Playground to code
Code shows the last request as it was sent:
- Code — curl, Python and TypeScript for that request's API, with a
$STAV_API_KEYplaceholder. One tab per column after a comparison. - Claude Code / Codex — config to point those tools at Stav with the model you used.
- Raw request — edit the JSON body and send it again.
What is kept
The Playground does not save conversations on the server. Recent conversations stay in your browser. Playground requests follow the same Your workspace → Govern → Prompt capture setting as any other request.