> ## 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.

# Publish message

> Odeslání nové zprávy do chatu

Odešle novou zprávu do existujícího chatu a pokračuje v konverzaci.

## Požadavek

```
POST /api/chat/{chatId}/publish
```

### Hlavičky

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

### Parametry cesty

| Parametr | Typ    | Popis    |
| -------- | ------ | -------- |
| `chatId` | string | ID chatu |

### Parametry těla požadavku

| Pole                       | Typ                                                              | Povinné   | Výchozí hodnota | Popis                                                                     |
| -------------------------- | ---------------------------------------------------------------- | --------- | --------------- | ------------------------------------------------------------------------- |
| `content`                  | string                                                           | Podmíněně | -               | Zpráva / prompt uživatele. Povinné, pokud `resume` není `true`            |
| `stream`                   | boolean                                                          | Ne        | `true`          | Pokud `false`, vrátí JSON místo streamu                                   |
| `agentMode`                | `"auto"` \| `"fast"` \| `"smart"`                                | Ne        | `"auto"`        | Poměr mezi rychlostí a kvalitou AI agenta                                 |
| `executionMode`            | `"auto"` \| `"planning"` \| `"build"`                            | Ne        | `"auto"`        | 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                                    |
| `resume`                   | boolean                                                          | Ne        | `false`         | Pokud `true`, obnoví zastavenou konverzaci bez přidání nového obsahu      |
| `experimental_attachments` | array                                                            | Ne        | `[]`            | Přílohy souborů (formát viz [Create Chat](/cs/api/create-chat))           |

<Note>
  Pokud je `resume` nastaveno na `true`, nelze současně posílat `content` ani `experimental_attachments`. Slouží k obnovení dříve zastavené konverzace.
</Note>

### Příklad požadavku

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://www.macaly.com/api/chat/abc123def456/publish" \
    -H "Authorization: Bearer macaly_abc123..." \
    -H "Content-Type: application/json" \
    -d '{
      "content": "Add a dark mode toggle to the header",
      "stream": false
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://www.macaly.com/api/chat/${chatId}/publish`,
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer macaly_abc123...',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        content: 'Add a dark mode toggle to the header',
        stream: false,
      }),
    }
  );

  const data = await response.json();
  ```

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

  response = requests.post(
      f'https://www.macaly.com/api/chat/{chat_id}/publish',
      headers={
          'Authorization': 'Bearer macaly_abc123...',
          'Content-Type': 'application/json',
      },
      json={
          'content': 'Add a dark mode toggle to the header',
          'stream': False,
      },
  )

  data = response.json()
  ```
</CodeGroup>

## Odpověď

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

```json theme={null}
{
  "chatId": "abc123def456",
  "streamId": "stream_xyz789",
  "assistantMessageId": "msg_123"
}
```

Následně můžete sledovat průběh pomocí endpointu [Get Status](/cs/api/get-status).

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

```
2:[{"chatId":"abc123def456"}]
0:"Analyzing your request..."
...
```

## Stavové kódy

| Kód | Popis                                       |
| --- | ------------------------------------------- |
| 200 | Úspěch – zpráva odeslána                    |
| 400 | Neplatný požadavek                          |
| 401 | Neplatný nebo chybějící API klíč            |
| 402 | Nedostatek kreditů                          |
| 403 | Chat nepatří tomuto týmu                    |
| 404 | Chat nenalezen                              |
| 429 | Překročen limit požadavků                   |
| 500 | Chyba serveru                               |
| 503 | Server je zaneprázdněn, zkuste to za chvíli |

## Postup

Typický postup bez použití streamování:

1. **Odešlete zprávu** s `stream: false`
2. **Sledujte průběh** pomocí [`GET /api/chat/{chatId}/status`](/cs/api/get-status), dokud není stav `completed`
3. **Opakujte** pro další zprávy
