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

# Quickstart

> From sign-up to your first OpenAI-compatible API call.

This guide takes you from a new account to a live model responding to an API call.

<Note>
  Replace `https://YOUR-VALKYRIE-DASHBOARD` below with your organization's Valkyrie
  dashboard URL, and `https://valkyrie-back.azumo.com` with your API base URL if it
  differs. Ask your administrator if you're unsure which hosts to use.
</Note>

## 1. Create an account and fund your wallet

1. Sign in to the Valkyrie dashboard.
2. Open **Quota** and check (or top up) your balance. Valkyrie is prepaid and billed
   per use, your balance is what your deployments and jobs draw against. See
   [Quota & billing](/guides/wallet-billing).

## 2. Create an API key

Machine access uses an API key sent in the `X-API-Key` header.

1. Open **API Keys** from the sidebar, then the **Deployment Keys** tab.
2. Create a key and copy it, you won't be able to see it again.

<Warning>
  Treat API keys like passwords. Store them in a secret manager or environment
  variable, never in source control.
</Warning>

## 3. Deploy a model

You can deploy any Hugging Face model directly, or deploy a model you've fine-tuned
on Valkyrie.

1. Open **Models → Deploy**.
2. Choose a base model (for example, a Qwen chat model) or one of your fine-tuned
   models.
3. Launch the deployment. Valkyrie provisions a GPU on demand, starts the serving
   engine (vLLM or Ollama), and health-checks it before marking it ready.

When the deployment is ready it exposes an OpenAI-compatible endpoint. See
[Deploy a model](/guides/deploy-model) for the full walkthrough.

## 4. Call your model

Valkyrie speaks the OpenAI Chat Completions API. Point any OpenAI client at your
deployment's base URL and use your API key.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://valkyrie-back.azumo.com/{deployment_slug}/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "X-API-Key: $VALKYRIE_API_KEY" \
    -d '{
      "model": "{deployment_slug}",
      "messages": [
        {"role": "user", "content": "Say hello from Valkyrie."}
      ]
    }'
  ```

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

  client = OpenAI(
      base_url="https://valkyrie-back.azumo.com/{deployment_slug}/v1",
      api_key="YOUR_VALKYRIE_API_KEY",   # sent as the bearer; Valkyrie also accepts X-API-Key
  )

  resp = client.chat.completions.create(
      model="{deployment_slug}",
      messages=[{"role": "user", "content": "Say hello from Valkyrie."}],
  )
  print(resp.choices[0].message.content)
  ```

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

  const client = new OpenAI({
    baseURL: "https://valkyrie-back.azumo.com/{deployment_slug}/v1",
    apiKey: process.env.VALKYRIE_API_KEY,
  });

  const resp = await client.chat.completions.create({
    model: "{deployment_slug}",
    messages: [{ role: "user", content: "Say hello from Valkyrie." }],
  });
  console.log(resp.choices[0].message.content);
  ```
</CodeGroup>

<Tip>
  Prefer a stable, readable URL? Attach an **alias** to your deployment and call
  `/{account_slug}/{alias}/v1/chat/completions` instead of the raw deployment slug.
  See [Aliases](/guides/aliases).
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Fine-tune a model" icon="graduation-cap" href="/guides/fine-tuning">
    Train an open model on your own dataset.
  </Card>

  <Card title="Connect to Claude Code" icon="terminal" href="/connect/claude-code">
    Use your Valkyrie model from your coding agent.
  </Card>

  <Card title="Automate with MCP" icon="wand-magic-sparkles" href="/mcp/overview">
    Provision and operate models from an AI agent.
  </Card>

  <Card title="Understand billing" icon="wallet" href="/guides/wallet-billing">
    How the prepaid wallet and per-use pricing work.
  </Card>
</CardGroup>
