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

# Create chat

> Vytvoření nového chatu

Založí nový chat, ve kterém agent Macaly začne pracovat na vašem zadání.

## Požadavek

```
POST /api/chat
```

### Hlavičky

| Hlavička        | Povinná | Popis               |
| --------------- | ------- | ------------------- |
| `Authorization` | Ano     | `Bearer macaly_...` |
| `Content-Type`  | Ano     | `application/json`  |

### Parametry těla požadavku

| Pole                       | Typ                                                              | Povinné | Výchozí hodnota | Popis                                                                     |
| -------------------------- | ---------------------------------------------------------------- | ------- | --------------- | ------------------------------------------------------------------------- |
| `content`                  | string                                                           | Ano     | -               | Zpráva / prompt uživatele                                                 |
| `stream`                   | boolean                                                          | Ne      | `true`          | Pokud `false`, vrátí JSON místo streamu                                   |
| `backend`                  | string                                                           | Ne      | `"DEFAULT"`     | Použitý backend                                                           |
| `executionMode`            | `"auto"` \| `"planning"` \| `"build"`                            | Ne      | -               | Režim, v jakém AI agent pracuje                                           |
| `model`                    | `"sonnet-4-5"` \| `"sonnet-4-6"` \| `"opus-4-5"` \| `"opus-4-6"` | Ne      | -               | Konkrétní AI model. Pokud neupřesníte, použije se model nastavený pro tým |
| `reasoningEffort`          | `"medium"` \| `"high"`                                           | Ne      | -               | Určuje, jak hluboce má model přemýšlet                                    |
| `experimental_attachments` | array                                                            | Ne      | `[]`            | Přílohy souborů (formát viz níže)                                         |

#### Formát příloh

Každá položka v poli `experimental_attachments` má následující strukturu:

| Pole          | Typ    | Povinné | Popis                     |
| ------------- | ------ | ------- | ------------------------- |
| `url`         | string | Ano     | URL přiloženého souboru   |
| `name`        | string | Ne      | Zobrazovaný název přílohy |
| `contentType` | string | Ne      | MIME typ souboru          |

### Příklad požadavku

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://www.macaly.com/api/chat \
    -H "Authorization: Bearer macaly_abc123..." \
    -H "Content-Type: application/json" \
    -d '{
      "content": "Create a landing page for a coffee shop",
      "stream": false
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://www.macaly.com/api/chat', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer macaly_abc123...',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      content: 'Create a landing page for a coffee shop',
      stream: false,
    }),
  });

  const data = await response.json();
  console.log(data.chatId);
  ```

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

  response = requests.post(
      'https://www.macaly.com/api/chat',
      headers={
          'Authorization': 'Bearer macaly_abc123...',
          'Content-Type': 'application/json',
      },
      json={
          'content': 'Create a landing page for a coffee shop',
          'stream': False,
      },
  )

  data = response.json()
  print(data['chatId'])
  ```
</CodeGroup>

## Odpověď

### JSON odpověď (při `stream: false`)

```json theme={null}
{
  "chatId": "abc123def456",
  "url": "https://www.macaly.com/chat/abc123def456",
  "streamId": "stream_xyz789",
  "assistantMessageId": "msg_123"
}
```

| Pole                 | Typ                 | Popis                                                               |
| -------------------- | ------------------- | ------------------------------------------------------------------- |
| `chatId`             | string              | Unikátní identifikátor chatu                                        |
| `url`                | string              | Přímý odkaz na zobrazení chatu                                      |
| `streamId`           | string \| undefined | Identifikátor streamu pro odběr. Přítomen pouze u workflow backendů |
| `assistantMessageId` | string \| undefined | ID generované zprávy asistenta. Přítomno pouze u workflow backendů  |

### Streaming odpověď (při `stream: true`, výchozí)

Pokud je streaming zapnutý, odpověď je textový stream:

```
2:[{"chatId":"abc123def456"}]
0:"Starting to build..."
...
```

První řádek obsahuje ID chatu ve formátu `2:[{"chatId":"..."}]`.

#### Parsování ID chatu ze streamu

```javascript theme={null}
const text = await response.text();
const match = text.match(/2:\[{"chatId":"([^"]+)"/);
const chatId = match?.[1];
```

## Stavové kódy

| Kód | Popis                                             |
| --- | ------------------------------------------------- |
| 200 | Úspěch – chat vytvořen                            |
| 400 | Neplatný požadavek                                |
| 401 | Neplatný nebo chybějící API klíč                  |
| 402 | Nedostatek kreditů                                |
| 403 | Forbidden – nedostatečná oprávnění pro zadaný tým |
| 422 | Chyba validace                                    |
| 429 | Překročen limit požadavků                         |
| 500 | Chyba serveru                                     |

## Další kroky

Po vytvoření chatu:

1. **Sledujte průběh** pomocí [`GET /api/chat/{chatId}/status`](/cs/api/get-status)
2. **Odebírejte real-time aktualizace** pomocí [`GET /api/chat/{chatId}/subscribe`](/cs/api/subscribe-stream)
3. **Posílejte navazující zprávy** pomocí [`POST /api/chat/{chatId}/publish`](/cs/api/publish-message)
