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

# Quickstart

> Make your first ShuttleAI API call in under a minute.

ShuttleAI is fully compatible with the OpenAI SDK. Just change the base URL and API key — everything else works out of the box.

## Prerequisites

* A ShuttleAI account — [sign up here](https://shuttleai.com/auth/register)
* An API key — [generate one here](https://shuttleai.com/keys)

## Installation

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

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

## Your first request

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

  client = OpenAI(
      api_key="shuttle-xxx",
      base_url="https://api.shuttleai.com/v1"
  )

  response = client.chat.completions.create(
      model="shuttleai/auto",
      messages=[
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "What is ShuttleAI?"}
      ]
  )

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

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: "shuttle-xxx",
    baseURL: "https://api.shuttleai.com/v1",
  });

  const response = await client.chat.completions.create({
    model: "shuttleai/auto",
    messages: [
      { role: "system", content: "You are a helpful assistant." },
      { role: "user", content: "What is ShuttleAI?" },
    ],
  });

  console.log(response.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl https://api.shuttleai.com/v1/chat/completions \
    -H "Authorization: Bearer shuttle-xxx" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "shuttleai/auto",
      "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is ShuttleAI?"}
      ]
    }'
  ```
</CodeGroup>

## Response format

```json theme={null}
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677858242,
  "model": "shuttleai/auto",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "ShuttleAI is a unified AI API platform..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 45,
    "total_tokens": 69
  }
}
```

## Using a specific model

Replace `"shuttleai/auto"` with any model ID to target a specific model:

```python theme={null}
# Use GPT-5.2 directly
response = client.chat.completions.create(
    model="gpt-5.2",
    messages=[{"role": "user", "content": "Hello!"}]
)
```

<Tip>
  Use the `shuttleai/auto` model (ShuttleAI Auto) to let our smart router automatically pick the best model for your task. It's the most cost-efficient way to use the API. [Learn more →](/models/shuttleai-auto)
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/getting-started/authentication">
    Set up your API key properly.
  </Card>

  <Card title="Streaming" icon="tower-broadcast" href="/getting-started/streaming">
    Get responses token by token.
  </Card>

  <Card title="Models" icon="cube" href="/models/overview">
    See what models are available.
  </Card>

  <Card title="Tool Calling" icon="wrench" href="/guides/tool-calling">
    Give models access to functions.
  </Card>
</CardGroup>
