---
title: "Send Message Route"
method: POST
path: "/api/v1/nova/sessions/{session_id}/messages"
tags: ["nova"]
---

# Send Message Route

`POST /api/v1/nova/sessions/{session_id}/messages`

## Path parameters

- `session_id` string, uuid, required

## Headers

- `Authorization` string, nullable

## Request body

- NovaMessageSend
  - `text` string, required
  - `context` MessageContext — What the operator is looking at when they type. Bounded on every axis. This is user-supplied text that ends up stored on the message and forwarded into a model prompt, so a page cannot push an unbounded payload through it.
    - `path` string, required
    - `section` string, nullable
    - `entity` MessageContextEntity
      - `type` string, required
      - `id` string, required
      - `name` string, nullable
    - `filters` object, nullable
    - `range` MessageRange — The time window a list page is showing. `from` is a keyword, so the field is `from_` and the wire name stays `from`.
      - `from` string, nullable
      - `to` string, nullable
    - `selection` string[], nullable
    - `lastError` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-11** `3bf37c9d2784` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/xenovia/apis/controlplane/changes/api/v1/nova/sessions/:session_id/messages/post.md)

---

[API](https://skmtc.dev/xenovia/apis/controlplane.md) · [All operations](https://skmtc.dev/xenovia/apis/controlplane/llms.txt) · [OpenAPI document](https://skmtc.dev/xenovia/apis/controlplane/revisions/b20a3bdd6219?raw)
