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

# Key. Base URL. First call.

> Three steps from zero to a response. If you are wiring up a coding agent, one command does all three — see the fast paths at the bottom.

## 1 · Get a key

Create a key in the dashboard at
[www.sideren.io/dashboard/keys](https://www.sideren.io/dashboard/keys). Keys start with
`sdn_` and are shown once at creation — store yours
in an environment variable, not in code.

```sh theme={null}
export SIDEREN_API_KEY=sdn_your_key
```

## 2 · Set the base URL

Everything is served from one origin. OpenAI-style clients append `/v1`;
Anthropic-style clients use the bare origin (their SDKs add `/v1/messages`
themselves).

```sh title="One origin, both dialects" theme={null}
# OpenAI SDKs / OpenAI-compatible tools
https://api.sideren.io/v1

# Anthropic SDKs / Claude Code
https://api.sideren.io
```

## 3 · Make the first call

<CodeGroup>
  ```sh curl theme={null}
  curl https://api.sideren.io/v1/chat/completions \
    -H "authorization: Bearer $SIDEREN_API_KEY" \
    -H "content-type: application/json" \
    -d '{
      "model": "@sdn/gpt-oss-120b",
      "messages": [{ "role": "user", "content": "Say hello." }]
    }'
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.sideren.io/v1",
      api_key="sdn_your_key",
  )

  r = client.chat.completions.create(
      model="@sdn/gpt-oss-120b",
      messages=[{"role": "user", "content": "Say hello."}],
  )
  print(r.choices[0].message.content)
  ```

  ```ts TypeScript theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.sideren.io/v1",
    apiKey: process.env.SIDEREN_API_KEY,
  });

  const r = await client.chat.completions.create({
    model: "@sdn/gpt-oss-120b",
    messages: [{ role: "user", content: "Say hello." }],
  });
  console.log(r.choices[0].message.content);
  ```
</CodeGroup>

Swap `@sdn/gpt-oss-120b` for any model in the [catalog](/models) that your plan includes
([Plans & limits](/plans#model-access-by-plan)); in PAYG mode every model is available.
Closed-weight models are called by their plain name (`gpt-6.1-sol`); open-weight models
are called `@sdn/<name>`, as here. `GET /v1/models` lists these public ids, and the older
spellings (`sdn-gpt-oss-120b`, `gpt-oss-120b`) resolve to the same model. Set `stream: true`
for tokens as they are generated (see [Streaming](/guides/streaming)).

<Note>
  The Anthropic dialect works the same way: POST to `/v1/messages` with your key in
  `x-api-key`. Both dialects accept every model in the catalog. See the
  [API reference](/api/overview).
</Note>

## Fast paths for coding agents

The [setup helper](/setup) configures popular coding agents in one command. Nothing to
install, and safe to re-run:

```sh theme={null}
npx sideren
```

<CardGroup cols={2}>
  <Card title="Claude Code" icon="https://mintcdn.com/layerx1/VcHszhDFLFcAsHzy/logos/claude-code.svg?fit=max&auto=format&n=VcHszhDFLFcAsHzy&q=85&s=dd653454701cd4d6a0407eb39b84f224" href="/guides/claude-code" width="24" height="24" data-path="logos/claude-code.svg">
    Four environment variables and Claude Code runs on the Sideren catalog.
  </Card>

  <Card title="Codex CLI" icon="https://mintcdn.com/layerx1/VcHszhDFLFcAsHzy/logos/codex.svg?fit=max&auto=format&n=VcHszhDFLFcAsHzy&q=85&s=e440905921ad31e98989b29b653510ad" href="/guides/codex" width="24" height="24" data-path="logos/codex.svg">
    One provider block in config.toml, wire\_api = responses.
  </Card>

  <Card title="Cursor" icon="https://mintcdn.com/layerx1/y35JAB8F72zDZrJE/logos/cursor.svg?fit=max&auto=format&n=y35JAB8F72zDZrJE&q=85&s=d8591baa17e0abf699ed5e146232400f" href="/guides/cursor" width="512" height="512" data-path="logos/cursor.svg">
    OpenAI-compatible base URL + key in the model settings.
  </Card>

  <Card title="All agents" icon="robot" href="/guides/other-tools">
    OpenClaw, Hermes Agent, opencode, Cline and more — exact config for each.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.