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

# Quick Start

> Make your first OmniaKey request in under 5 minutes

This guide uses an OpenAI-compatible SDK. To wire up a coding agent instead
(Claude Code, Cursor, Cline, aider, Codex), see [Coding Agents](/en/coding).

## Step 1: Get your API key

Sign up at [omniakey.com](https://omniakey.com) and create a key in the Dashboard.
**New accounts include free credit, so you can run these examples right away** —
no top-up needed to start. Every request authenticates with
`Authorization: Bearer <your-key>`.

<Card title="Go to Dashboard" icon="key" href="https://omniakey.com/dashboard/tokens">
  Create your API key
</Card>

## Step 2: Install an SDK

OmniaKey works with the official OpenAI SDKs — no OmniaKey-specific library needed.

<CodeGroup>
  ```bash Python theme={null}
  pip install openai
  ```

  ```bash Node.js theme={null}
  npm install openai
  ```
</CodeGroup>

## Step 3: Make your first request

Set the base URL to `https://api.omniakey.com/v1` and use your key. Pick any model
id from [Models](/en/models) — here we use `claude-opus-4-8`.

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

  client = OpenAI(
      api_key="your-omniakey-api-key",
      base_url="https://api.omniakey.com/v1",
  )

  response = client.chat.completions.create(
      model="claude-opus-4-8",
      messages=[{"role": "user", "content": "Explain what a race condition is."}],
  )

  print(response.choices[0].message.content)
  ```

  ```bash cURL theme={null}
  curl https://api.omniakey.com/v1/chat/completions \
    -H "Authorization: Bearer your-omniakey-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "claude-opus-4-8",
      "messages": [{"role": "user", "content": "Explain what a race condition is."}]
    }'
  ```
</CodeGroup>

## Step 4: Stream responses

Set `stream: true` to receive tokens as they are generated:

```python theme={null}
stream = client.chat.completions.create(
    model="claude-opus-4-8",
    messages=[{"role": "user", "content": "Write a haiku about clean code."}],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")
```

## Next steps

<CardGroup cols={3}>
  <Card title="API Reference" icon="code" href="/en/api">
    All three protocols, the model matrix, and curl/SDK examples
  </Card>

  <Card title="Coding Agents" icon="terminal" href="/en/coding">
    Configure Claude Code, Cursor, Cline, aider, and Codex
  </Card>

  <Card title="Models" icon="cubes" href="/en/models">
    Browse the full Claude, GPT, Gemini, and Grok lineup
  </Card>
</CardGroup>
