Playground¶
Try any catalog model against the live API without writing code, the portal's Playground streams real responses through the same endpoint your app will use.
What's included¶
- Model picker, a dropdown of every model on the rate card, with maker logos, and the context window and pricing for whatever you've selected.
- System prompt, a collapsible popover in the composer.
- Parameters rail, temperature, max tokens, top-p, response Format (text or JSON object), and a plain Reasoning switch, on by default, for models that think (how reasoning control works).
- Images, on vision models, attach up to 4 images of 2 MB each, or paste an image URL. Switch mid-thread to a text-only model and the images drop out of the history with a notice saying so, no silent downgrade.
- Key picker, choose which of your API keys a run bills to, so Playground traffic lands under the key you expect in Usage.
- Your real key and balance, runs bill your workspace at normal rates and show up in Usage like any other API call. With no key, or an empty balance, a banner names what's missing and links to the page to fix it.
Answers render as markdown. Nothing is stored: the conversation lives in the tab, and closing the tab discards it.
Metrics on every response¶
The Last response card is measured client-side:
| Metric | Meaning |
|---|---|
| TTFT | Time to the first token of any kind, including the first reasoning token. |
| E2E | Full wall-clock time to the last token. |
| Tokens | N in · M out from the response's own usage block. |
| Speed | Output tokens over the generation window. |
| Cost | What that response cost, at rate-card prices. |
A running session cost totals everything sent in the tab.
Reasoning¶
When a model streams its thinking, the response bubble shows a collapsed Thinking… disclosure filling in live; once the answer starts it settles into a Reasoning dropdown you can expand anytime. The trace is display-only, it's never sent back as conversation context, so it doesn't inflate the next turn's cost.
Errors are shown as returned¶
If an upstream model rejects a request (an unsupported parameter, reasoning that can't be
disabled), the Playground shows the same error the API returns; it does not retry with a different
configuration. That includes telling two
402s apart: an empty workspace balance and a key that has spent its budget are different
problems, and the Playground names the one you have.