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

# Quickstart

> Integrate Nolma in 5 minutes

# Quickstart

<Steps>
  <Step title="Get your API key">
    Sign up at [nolma.ai](https://nolma.ai) and copy your API key from Settings → API Keys.

    Your key looks like: `nm_live_abc123...`
  </Step>

  <Step title="Change one URL">
    Find where you create your LLM client and change the `base_url`:

    <CodeGroup>
      ```python Python (Anthropic) theme={null}
      import anthropic

      client = anthropic.Anthropic(
          api_key="your-anthropic-key",
          base_url="https://gateway.nolma.ai/anthropic",
          default_headers={
              "NM-Key": "nm_live_abc123",
              "NM-Agent": "my-agent",
          }
      )

      # All existing calls work unchanged
      response = client.messages.create(
          model="claude-haiku-4-5-20251001",
          max_tokens=100,
          messages=[{"role": "user", "content": "Hello"}]
      )
      ```

      ```python Python (OpenAI) theme={null}
      import openai

      client = openai.OpenAI(
          api_key="your-openai-key",
          base_url="https://gateway.nolma.ai/openai",
          default_headers={
              "NM-Key": "nm_live_abc123",
              "NM-Agent": "my-agent",
          }
      )

      # All existing calls work unchanged
      response = client.chat.completions.create(
          model="gpt-4o-mini",
          messages=[{"role": "user", "content": "Hello"}]
      )
      ```

      ```typescript Node.js (OpenAI) theme={null}
      import OpenAI from 'openai'

      const client = new OpenAI({
        apiKey: process.env.OPENAI_API_KEY,
        baseURL: 'https://gateway.nolma.ai/openai',
        defaultHeaders: {
          'NM-Key': 'nm_live_abc123',
          'NM-Agent': 'my-agent',
        }
      })

      // All existing calls work unchanged
      const response = await client.chat.completions.create({
        model: 'gpt-4o-mini',
        messages: [{ role: 'user', content: 'Hello' }]
      })
      ```
    </CodeGroup>
  </Step>

  <Step title="Open your dashboard">
    Go to [nolma.ai/dashboard/guard](https://nolma.ai/dashboard/guard).

    Within 30 seconds of making your first call you will see:

    * Session created
    * Token count
    * Cost in USD
    * Agent name

    That's it. You're integrated.
  </Step>

  <Step title="Set a budget (optional)">
    Prevent surprise bills by setting a hard limit:

    Dashboard → Guard → Budgets → Add rule

    | Field       | Value      |
    | ----------- | ---------- |
    | Scope       | Agent      |
    | Agent       | my-agent   |
    | Limit       | \$10.00    |
    | Period      | Daily      |
    | Enforcement | Hard block |

    When the limit is hit Nolma returns `HTTP 429` **before** the LLM call fires. Zero cost incurred.
  </Step>
</Steps>

## What's next?

<CardGroup cols={2}>
  <Card title="Install the Python SDK" href="/sdk/python">
    Session tracking and signal collection
  </Card>

  <Card title="Set up alerts" href="/guard/alerts">
    Slack and email notifications
  </Card>

  <Card title="Collect signals" href="/lens/signals">
    Track user acceptance rates
  </Card>

  <Card title="Budget templates" href="/guard/budgets">
    Pre-built budget configurations
  </Card>
</CardGroup>
