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

# Quick Start

> Deploy your first Cuadra AI assistant in under 5 minutes. Create a model, add knowledge, and make your first API call.

## Steps

<Steps>
  <Step title="Create a Model">
    Go to [Dashboard](https://dashboard.cuadra.ai) → **Models** → **Create Model**.

    Choose a name and select a base model from the catalog.
  </Step>

  <Step title="Add Knowledge (Optional)">
    Go to **Datasets** → **Create Dataset** → Upload documents (PDF, DOCX, TXT, MD).

    Then link the dataset to your model: **Models** → Select model → **Datasets** → **Link**.
  </Step>

  <Step title="Get Your Token">
    **For frontend apps:** Use JWT session tokens from your auth system (Stytch B2B).

    **For backend/scripts:** Create M2M credentials in **Settings** → **API Access** and exchange for an access token.
  </Step>

  <Step title="Make Your First Request">
    <CodeGroup>
      ```bash curl theme={null}
      curl -X POST https://api.cuadra.ai/v1/chats \
        -H "Authorization: Bearer YOUR_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
          "modelId": "YOUR_MODEL_ID",
          "messages": [{"role": "user", "content": "Hello!"}]
        }'
      ```

      ```python Python theme={null}
      import httpx

      response = httpx.post(
          "https://api.cuadra.ai/v1/chats",
          headers={"Authorization": "Bearer YOUR_TOKEN"},
          json={
              "modelId": "YOUR_MODEL_ID",
              "messages": [{"role": "user", "content": "Hello!"}]
          }
      )
      print(response.json()["message"]["content"])
      ```

      ```typescript Node.js theme={null}
      const response = await fetch('https://api.cuadra.ai/v1/chats', {
        method: 'POST',
        headers: {
          'Authorization': 'Bearer YOUR_TOKEN',
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          modelId: 'YOUR_MODEL_ID',
          messages: [{ role: 'user', content: 'Hello!' }]
        })
      });
      const { message } = await response.json();
      console.log(message.content);
      ```
    </CodeGroup>
  </Step>
</Steps>

***

## What's Next

<CardGroup cols={2}>
  <Card title="Chat API" icon="comments" href="/api-reference/chat">
    Streaming, tool calling, structured outputs
  </Card>

  <Card title="React UI Kit" icon="react" href="/guides/uikit-react">
    Drop-in chat component
  </Card>

  <Card title="System Prompts" icon="sliders" href="/guides/system-prompts">
    Configure AI behavior
  </Card>

  <Card title="Knowledge Bases" icon="database" href="/guides/knowledge-bases">
    RAG with your documents
  </Card>
</CardGroup>

***

## FAQ

### How long does model creation take?

Models are ready instantly. Document processing (chunking and embedding) takes 1-2 minutes per 10MB.

### Which LLM should I choose?

Start with a cost-effective model for testing, then upgrade to a higher-quality model for production. View available models in the [Dashboard](https://dashboard.cuadra.ai) or via `GET /v1/models`.

### Do I need a backend?

For production: yes. Never expose access tokens in client-side code. Route requests through your backend or use the [React UI Kit](/guides/uikit-react) with a proxy endpoint.

### What file formats are supported?

PDF, DOCX, TXT, CSV, JSON, and Markdown. Max 50MB per file. See [Knowledge Bases](/guides/knowledge-bases).
