> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nemu.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> From a fresh account to a working request in about five minutes

You need one thing before you start: an API key from a model provider, for
example OpenAI, Anthropic, Google or OpenRouter. nemu does not resell model
access, it routes to the accounts you already have.

## 1. Connect a provider

In the console, open **Providers** and add one.

Pick **Automatic** and choose from the models.dev catalog if your provider is a
known one. nemu then knows its base URL, its protocol and its model list, and
keeps the pricing and context windows current for you. Pick **Custom** if you
are pointing at something the catalog does not know about, such as a local
server or a private deployment, and give it a base URL and a compatibility mode.

Paste the provider key. It is sealed and never shown again, and never leaves the
console.

## 2. Enable a model

Open **Models** and add one under that provider.

The important field is the **gateway name**. That is the string your code will
send, and it is yours to choose. A model whose real identifier is
`nvidia/nemotron-nano-9b-v2` can be `openrouter/nemotron` to you.

That name is the only name the gateway accepts. The provider's own identifier
does not work from outside, so nothing you run can reach a model you did not
deliberately expose.

## 3. Create a key

Open **API keys** and create one. It looks like `sk_xxxxx-xxxxx.` followed by a
40 character secret, and it belongs to the workspace you are in.

Copy it now. It is not shown again.

## 4. Send a request

```bash theme={null}
curl https://api.nemu.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_NEMU_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/nemotron",
    "messages": [{ "role": "user", "content": "hello" }]
  }'
```

To see exactly which names are accepted:

```bash theme={null}
curl https://api.nemu.cc/v1/models -H "Authorization: Bearer YOUR_NEMU_KEY"
```

Every `id` in that response is a string you can put in `model`.

## 5. Point a real client at it

Most tools take a base URL and a key, so nothing else has to change.

<CodeGroup>
  ```python OpenAI SDK theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="YOUR_NEMU_KEY",
      base_url="https://api.nemu.cc/v1",
  )
  ```

  ```typescript Anthropic SDK theme={null}
  import Anthropic from "@anthropic-ai/sdk";

  const client = new Anthropic({
    apiKey: "YOUR_NEMU_KEY",
    baseURL: "https://api.nemu.cc/anthropic",
  });
  ```

  ```bash Claude Code theme={null}
  export ANTHROPIC_BASE_URL="https://api.nemu.cc/anthropic"
  export ANTHROPIC_AUTH_TOKEN="YOUR_NEMU_KEY"
  claude
  ```
</CodeGroup>

Full guides: [Claude Code](/setup/claude-code), [Codex](/setup/codex),
[How the gateway works](/setup/gateway).

## What to do next

Open **Metrics** and you will see the request you just made, with its model,
latency, token counts and cost.

From there, the pieces that are worth knowing about are
[mappings](/console/mappings) for renaming models without touching your code,
[quotas](/console/quotas) for capping spend, and
[workflows](/workflows) for routing a request through logic before it reaches a
model.
