---
title: "Dashboard"
description: "Configure the router: billing mode, your own AI Gateway key, routing profiles per API key, and per-key usage."
canonical_url: "https://scholarxiv.com/developers/docs/router-api/dashboard"
markdown_url: "https://scholarxiv.com/developers/docs/router-api/dashboard.md"
---

> For the complete documentation index, see [llms.txt](/llms.txt).

# Dashboard
URL: /developers/docs/router-api/dashboard
LLM index: /llms.txt
Description: Configure the router: billing mode, your own AI Gateway key, routing profiles per API key, and per-key usage.
Related: router-api/route, router-api/completions, router-api/feedback

# Router dashboard

Everything about how the router behaves for your account is configured in one place:
**[Developers → Dashboard → Router](/developers/dashboard/router)**.

## Billing

Pick who pays for the models the router chooses.

| Mode | Who pays | Model pool |
|---|---|---|
| **Your subscription** *(default)* | ScholarXIV bills it | The models your plan includes |
| **Your gateway key** | You pay the provider directly | Everything your key can reach — plan tiers no longer restrict it |

To switch to your own key, paste a Vercel AI Gateway key and save. It's **verified
against the gateway before it's stored** — a key that can't reach any models is
rejected rather than saved and left to fail on your first real request. Once stored it
is encrypted at rest and never shown again; the dashboard displays only the last four
characters and when it was added.

Removing the key returns you to subscription billing.

## Routing profiles

A profile is a named policy the router must obey. Each one carries:

| Setting | What it does |
|---|---|
| **Allowed models** | Exact ids or wildcards (`anthropic/*`). Empty means every model available to you. |
| **Optimize for** | The default preset — `quality`, `balanced` or `cheap`. |
| **Max cost per request** | A hard per-request ceiling in USD. Leave blank to use your plan's default. |

One profile is always the default. Assign profiles to individual API keys under **Key
assignment** — a key with no assignment routes under the default.

This is how you run tiers of your own product through one router: give your free tier a
profile capped to cheap models, your paid tier a profile with the frontier ones, and
issue each tier its own API key.

### How profiles interact with a request

A `models` list or `preset` sent on a request is applied **on top of** the key's
profile:

- `preset` on the request overrides the profile's default, for that call only.
- `models` on the request **narrows** the profile's allowed list. It can never widen
  it — a request cannot reach a model its key's profile excludes.

```json title="request.json"
// Key assigned a profile allowing anthropic/* only
{ "prompt": "…", "models": ["anthropic/claude-opus-4.6", "openai/gpt-5.4"] }
// → routes to claude-opus-4.6. The OpenAI entry is ignored: outside the profile.
```

## Usage

The same page reports what the router actually did, over 24 hours, 7 days or 30 days:

- **Requests**, **estimated spend**, **average routing latency**, and average number of
  candidate models considered
- **Requests over time**
- **Models chosen** and the **task mix** the classifier assigned
- **Per API key**: volume, estimated spend, average routing latency, last used
- **Recent decisions** — model, task, preset, cost and latency for individual calls

Estimated spend is computed from list pricing and the expected answer length for the
task, so treat it as a close estimate rather than an invoice.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
