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

# Quickstart

> Make your first Opper call in under five minutes.

You'll get an API key, pick an API, and run one call. The rest of the docs build on this.

## Make your first call

<Steps>
  <Step title="Get an API key">
    Sign in at [platform.opper.ai](https://platform.opper.ai) and [create a key](https://platform.opper.ai/settings/api-keys). Each key belongs to one project, so make a new project for each app or environment.

    Calls draw from your account balance, so add credits under **Billing** before your first call.

    Put the key in your shell:

    ```bash theme={null}
    export OPPER_API_KEY="your-api-key"
    ```
  </Step>

  <Step title="Run your first call">
    Point your SDK at the gateway and make a call. Here it is with the OpenAI SDK — the same base-URL trick works with the Anthropic and Google AI SDKs too.

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

      client = OpenAI(
          base_url="https://api.opper.ai/v3/compat",
          api_key=os.environ["OPPER_API_KEY"],
      )

      response = client.chat.completions.create(
          model="openai/gpt-5-mini",
          messages=[{"role": "user", "content": "Hello!"}],
      )
      print(response.choices[0].message.content)
      ```

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

      const client = new OpenAI({
          baseURL: "https://api.opper.ai/v3/compat",
          apiKey: process.env.OPPER_API_KEY!,
      });

      const response = await client.chat.completions.create({
          model: "openai/gpt-5-mini",
          messages: [{ role: "user", content: "Hello!" }],
      });
      console.log(response.choices[0].message.content);
      ```

      ```bash cURL theme={null}
      curl https://api.opper.ai/v3/compat/chat/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $OPPER_API_KEY" \
        -d '{
          "model": "openai/gpt-5-mini",
          "messages": [{"role": "user", "content": "Hello!"}]
        }'
      ```
    </CodeGroup>

    <Tip>
      The same trick works with the Anthropic and Google AI SDKs. See [Drop-in SDKs](/build/gateway/drop-in-sdks) for all three. Want typed JSON back instead of free text? Add `response_format` — see [Structured output](/build/gateway/structured-output).
    </Tip>
  </Step>

  <Step title="See it in the platform">
    Open [platform.opper.ai](https://platform.opper.ai) and click into the most recent trace. You'll see your call, the model that ran it, the cost, the latency, and any Control Plane rules that fired.
  </Step>
</Steps>

## What to do next

<CardGroup cols={2}>
  <Card title="Build on Opper" icon="signs-post" href="/build/overview">
    A short guide to text, multimodal, and voice.
  </Card>

  <Card title="Models" icon="brain" href="https://opper.ai/models">
    Browse the 300+ models Opper supports and how to call them.
  </Card>

  <Card title="Drop-in SDKs" icon="plug" href="/build/gateway/drop-in-sdks">
    Use the OpenAI, Anthropic, or Google AI SDK against Opper.
  </Card>

  <Card title="Control Plane" icon="shield-check" href="/control-plane/overview">
    Observe, route, and guard everything you build.
  </Card>
</CardGroup>
