# Message

A **message** is one turn in a Chat. User turns carry text; assistant turns carry an
Answer.

## Shape

```json
{
  "object": "message",
  "id": "msg_k7hcnivfll",
  "role": "assistant",
  "answer": {
    "text": "The encoder and decoder each use six identical layers [1].",
    "citations": [
      {
        "index": 1,
        "quote": "The encoder is composed of a stack of N = 6 identical layers.",
        "source": {
          "type": "document",
          "id": "doc_8ba2f01c47"
        },
        "locations": [
          {
            "page": 7,
            "bbox": {
              "x": 0.252,
              "y": 0.426,
              "width": 0.495,
              "height": 0.041
            }
          }
        ]
      }
    ]
  },
  "created_at": "2026-08-11T09:31:07Z"
}
```

`role` is `user` | `assistant`.

## Streaming

With `stream: true`, the same content arrives as SSE events: `message.delta`, `citation.added`,
`message.completed`, `error`. The final assembled object is identical to the non-streamed response.

## Related

chats · chat · answer · streaming-deep-review
