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

# Quickstart

> Start building awesome stuff with a LLM hosted on SUPA.

<Warning>
  We're in **closed Beta** right now. Please be aware the things could break. We're happy to get your feedback.
</Warning>

## Get started in three easy steps

Get your LLM running and send your first request.

<Steps>
  <Step title="Create an API Key">
    Go to your [profile page](https://app.supa.works/user) and create an API Key. Store the API key at a secure location.
  </Step>

  <Step title="Install the SDK">
    Install the OpenAI SDK for your preferred language.

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

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

  <Step title="Use your API Key">
    Adjust the base path and the API key to target SUPA's infrastructure.

    <CodeGroup>
      ```javascript Javascript lines wrap theme={null}
      import OpenAI from 'openai';

      const openai = new OpenAI({
        apiKey: '<YOUR_API_KEY>',
        baseURL: 'https://api.supa.works/openai',
      });

      async function main() {
        const chatCompletion = await openai.chat.completions.create({
          messages: [{ role: 'user', content: 'What is a Banana?' }],
          model: 'qwen/qwen-turbo',
        });
        console.log(chatCompletion.choices[0].message.content);
      }

      main();
      ```

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

      client = OpenAI(
          api_key="<YOUR_API_KEY>",
          base_url="https://api.supa.works/openai"
      )

      chat_completion = client.chat.completions.create(
          messages=[
              {
                  "role": "user",
                  "content": "What is a Banana?",
              }
          ],
          model="qwen/qwen-turbo",
      )

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

      ```bash CURL lines wrap theme={null}
      curl https://api.supa.works/openai/v1/chat/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer <YOUR_API_KEY>" \
        -d '{
          "model": "qwen/qwen-turbo",
          "messages": [{"role": "user", "content": "What is a Banana?"}]
        }'
      ```
    </CodeGroup>
  </Step>

  <Step title="Use your API Key">
    Adjust the base path and the API key to target SUPA's infrastructure.

    <CodeGroup>
      ```javascript Javascript theme={null}
      import OpenAI from 'openai';

      const openai = new OpenAI({
        apiKey: '<YOUR_API_KEY>',
        baseURL: 'https://api.supa.works/openai',
      });

      async function main() {
        const chatCompletion = await openai.chat.completions.create({
          messages: [{ role: 'user', content: 'What is a Banana?' }],
          model: 'google/gemma-3-27b-it',
        });
        console.log(chatCompletion.choices[0].message.content);
      }

      main();
      ```

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

      client = OpenAI(
          api_key="<YOUR_API_KEY>",
          base_url="https://api.supa.works/openai"
      )

      chat_completion = client.chat.completions.create(
          messages=[
              {
                  "role": "user",
                  "content": "What is a Banana?",
              }
          ],
          model="google/gemma-3-27b-it",
      )

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

      ```bash CURL theme={null}
      curl https://api.supa.works/openai/v1/chat/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer <YOUR_API_KEY>" \
        -d '{
          "model": "google/gemma-3-27b-it",
          "messages": [{"role": "user", "content": "What is a Banana?"}]
        }'
      ```
    </CodeGroup>
  </Step>
</Steps>

And thats it! ✌🏻

## Next steps

Now that you know the basics, use a framework integration or walk through focused examples.

<CardGroup cols={2}>
  <Card title="Vercel AI SDK" icon="code" href="/guides/vercel-ai-sdk">
    `generateText`, streaming, and tools with `@ai-sdk/openai`.
  </Card>

  <Card title="TanStack AI" icon="layer-group" href="/guides/tanstack-ai">
    OpenAI adapter and `chat()` with SUPA.
  </Card>

  <Card title="Tool calls" icon="wrench" href="/examples/tool-calls">
    Function calling patterns across SDKs.
  </Card>

  <Card title="Image attachments" icon="image" href="/examples/image-attachments">
    Vision-style prompts with images.
  </Card>
</CardGroup>

<Card icon="pen-to-square" href="https://github.com/supaworks/field-guide" title="SUPA Field Guide">
  Browse our implementation examples to build awesome stuff.
</Card>
