Playground

Test any NemoRouter model interactively from your browser

Last updated

The Playground is the fastest way to evaluate NemoRouter without writing code. Paste your virtual API key, pick a model, and start chatting — every request runs through the same gateway your production code will use, so you see real latency, real cost headers, and real guardrail behavior.

Public playground — pick a model and start chatting

What it does

The Playground is a single-page chat UI that calls https://api.nemorouter.ai/v1/chat/completions directly from your browser. It's the same endpoint and the same auth model your SDK code uses — there is no separate "test environment". This means:

  • Your virtual key's rate limits, budgets, and guardrails apply exactly as they would in production
  • Every request shows up in your observability logs with the playground key alias
  • Cost headers (x-nemo-request-cost) settle against the same credit balance

Setup

The Playground requires you to paste your virtual API key (sk-nemo-...). The key is stored in your browser's sessionStorage only — it's cleared the moment you close the tab. NemoRouter never stores a playground-pasted key server-side; it's sent with each call only to authenticate that request, exactly like any production API call.

Why paste a key instead of using your login session?

It's a deliberate security decision. As described in Authentication, all LLM inference requests must authenticate with a virtual key — never a master key. Even though you're logged into the dashboard, the dashboard's session token can't make LLM calls. You paste a virtual key so the request is properly attributed, rate-limited, and budget-enforced like any other production call.

Playground at /[organization]/playground — model picker, message thread, parameter sliders, and the API-key paste field

Picking a model

The model dropdown lists every model your organization can call right now. Each entry shows the provider, the routing alias (the value you'd pass as model in the API), and a one-line capability summary.

Models catalog — every NemoRouter model, available in the Playground

Switching models is instant — the next message you send goes to the new model. There is no provider configuration, no SDK swap, no key rotation.

Parameters

The sidebar lets you tune:

ParameterRangeEffect
temperature0.0 – 2.0Sampling randomness. 0 is deterministic, 1 is balanced, 2 is wild.
max_tokens1 – model maxHard cap on response length
top_p0.0 – 1.0Nucleus sampling — alternative to temperature
system promptfree textSets the assistant's persona / task framing

These are passed straight through to the chat-completions endpoint. They behave exactly like they do in your SDK code.

Code generation

Every conversation has a View Code button. It generates the exact SDK code that would reproduce the current message thread — in cURL, Python, Node.js, or any of 15 supported languages. This is the canonical bridge between exploration and integration: prototype in the playground, copy the code, paste into your codebase.

The generated code reads from 04-nemoroutersdk/examples/ (the SDK examples skill source of truth), so what you see in the playground is what runs in your production app.

Observability

Every playground request is logged just like a production request. After sending a message:

  1. Open /[organization]/logs in another tab
  2. Filter by your playground key alias
  3. Click into the most recent log row to see the full request/response, token counts, latency breakdown, and cost

This is the fastest way to confirm guardrails fired, that a prompt template was applied, or that an A/B test routed traffic correctly.

Observability log at /[organization]/logs — request status, model, latency, token counts, and cost per call

When to use the Playground vs. the public playground

SurfaceURLAuthBest for
Dashboard playground/[organization]/playgroundLogged in + virtual keyReal testing — your guardrails, your budgets, your logs
Public playground/product/playgroundAnonymous + virtual keyQuick demos, sharing a model evaluation with a teammate

Both call the same API. The dashboard version inherits your org's configuration; the public version is org-agnostic until you paste a key.

Errors you'll see

StatusMeaningFix
401Invalid keyPaste a valid sk-nemo-... key
402Out of creditsTop up from /[organization]/billing
429Rate limit exceededWait and retry, or raise the key's RPM/TPM
400 (with guardrail_triggered)Content blocked by a guardrailAdjust the prompt or guardrail scope

FAQ

Do I need to write any code to use the Playground?

No. Paste your virtual API key, pick a model from the dropdown, and start chatting — the Playground is a browser chat UI, so you can evaluate a model without touching your codebase. When you're ready to integrate, the View Code button generates the equivalent SDK snippet for you.

Which key do I paste, and is it stored anywhere?

You paste a virtual key (sk-nemo-...). It lives only in your browser's sessionStorage and is cleared the moment you close the tab — NemoRouter never stores a playground-pasted key server-side (it's sent with each call only to authenticate that request). You paste a virtual key (rather than relying on your dashboard login) because all LLM requests must authenticate with a virtual key so the call is properly attributed, rate-limited, and budget-enforced.

Do Playground requests cost real money and count against my credits?

Yes. The Playground calls the same https://api.nemorouter.ai/v1/chat/completions endpoint your production code uses, and each request's cost (reported in the x-nemo-request-cost header) settles against the same credit balance. There is no separate free "test environment."

Do my rate limits, budgets, and guardrails apply in the Playground?

Yes — exactly as they would in production. Because it hits the same endpoint with the same virtual key, your key's rate limits, budgets, and guardrails all apply, and a blocked request returns the same errors your app would get.

Can I cap how much the Playground is allowed to spend?

Yes. Since Playground calls run through a specific virtual key, you can set a per-key budget on that key to limit how much testing can spend. See Budget Controls for how per-key budgets work.

Which models can I test in the Playground?

The model dropdown lists every model your organization can call right now, each showing the provider, the routing alias (the value you'd pass as model in the API), and a one-line capability summary. Switching models is instant — the next message you send goes to the new model, with no provider config or key change.

Can I adjust parameters like temperature and max_tokens?

Yes. The sidebar lets you set temperature (0.0–2.0), max_tokens (1 to the model's max), top_p (0.0–1.0), and a system prompt. These pass straight through to the chat-completions endpoint and behave identically to your SDK code.

How do I turn a Playground conversation into code I can ship?

Every conversation has a View Code button that generates the exact SDK code to reproduce the current message thread — in cURL, Python, Node.js, or any of the 15 supported languages. The snippets come from the canonical SDK examples, so what you copy is what runs in your app.

Where do I see the logs, latency, and cost for a Playground request?

Every Playground request is logged just like a production request. Open Request Logs at /[organization]/logs, filter by your playground key alias, and click the most recent row to see the full request/response, token counts, latency breakdown, and cost — the fastest way to confirm a guardrail fired or a prompt template was applied.

What errors might I see in the Playground, and how do I fix them?

Four common ones: 401 means the key is invalid (paste a valid sk-nemo-... key); 402 means you're out of credits (top up from /[organization]/billing); 429 means you hit a rate limit (wait and retry, or raise the key's RPM/TPM); and a 400 with guardrail_triggered means a guardrail blocked the content (adjust the prompt or the guardrail scope).

Next Steps

Was this page helpful?