---
title: "Send message"
method: POST
path: "/session/{sessionID}/message"
---

# Send message

`POST /session/{sessionID}/message`

Create and send a new message to a session, streaming the AI response.

## Path parameters

- `sessionID` string, required

## Query parameters

- `directory` string

## Request body

- object
  - `messageID` string
  - `model` object
    - `providerID` string, required
    - `modelID` string, required
  - `agent` string
  - `noReply` boolean
  - `tools` object — @deprecated tools and permissions have been merged, you can set permissions on the session itself now
  - `format` union
    - OutputFormatText
      - `type` 'text', required
    - OutputFormatJsonSchema
      - `type` 'json_schema', required
      - `schema` JSONSchema, required
      - `retryCount` integer
  - `system` string
  - `variant` string
  - `excludeHistory` boolean
  - `parts` union[], required
    - union
      - TextPartInput
        - `id` string
        - `type` 'text', required
        - `text` string, required
        - `synthetic` boolean
        - `ignored` boolean
        - `time` object
          - `start` number, required
          - `end` number
        - `metadata` object
      - FilePartInput
        - `id` string
        - `type` 'file', required
        - `mime` string, required
        - `filename` string
        - `url` string, required
        - `source` union
          - FileSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'file', required
            - `path` string, required
          - SymbolSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'symbol', required
            - `path` string, required
            - `range` Range, required
              - …
            - `name` string, required
            - `kind` integer, required
          - ResourceSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'resource', required
            - `clientName` string, required
            - `uri` string, required
      - AgentPartInput
        - `id` string
        - `type` 'agent', required
        - `name` string, required
        - `source` object
          - `value` string, required
          - `start` integer, required
          - `end` integer, required
      - SubtaskPartInput
        - `id` string
        - `type` 'subtask', required
        - `prompt` string, required
        - `description` string, required
        - `agent` string, required
        - `model` object
          - `providerID` string, required
          - `modelID` string, required
        - `command` string

## Response `200`

Created message

- object
  - `info` AssistantMessage, required
    - `id` string, required
    - `sessionID` string, required
    - `role` 'assistant', required
    - `time` object, required
      - `created` number, required
      - `completed` number
    - `error` union
      - ProviderAuthError
        - `name` 'ProviderAuthError', required
        - `data` object, required
          - `providerID` string, required
          - `message` string, required
      - UnknownError
        - `name` 'UnknownError', required
        - `data` object, required
          - `message` string, required
      - MessageOutputLengthError
        - `name` 'MessageOutputLengthError', required
        - `data` object, required
      - MessageAbortedError
        - `name` 'MessageAbortedError', required
        - `data` object, required
          - `message` string, required
      - StructuredOutputError
        - `name` 'StructuredOutputError', required
        - `data` object, required
          - `message` string, required
          - `retries` number, required
      - ContextOverflowError
        - `name` 'ContextOverflowError', required
        - `data` object, required
          - `message` string, required
          - `responseBody` string
      - APIError
        - `name` 'APIError', required
        - `data` object, required
          - `message` string, required
          - `statusCode` number
          - `isRetryable` boolean, required
          - `responseHeaders` object
          - `responseBody` string
          - `metadata` object
    - `parentID` string, required
    - `modelID` string, required
    - `providerID` string, required
    - `mode` string, required
    - `agent` string, required
    - `path` object, required
      - `cwd` string, required
      - `root` string, required
    - `summary` boolean
    - `cost` number, required
    - `tokens` object, required
      - `total` number
      - `input` number, required
      - `output` number, required
      - `reasoning` number, required
      - `cache` object, required
        - `read` number, required
        - `write` number, required
    - `structured` unknown
    - `variant` string
    - `finish` string
    - `stepCapped` boolean
    - `stuckNudged` boolean
    - `stuckAborted` boolean
  - `parts` Part[], required
    - union
      - TextPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'text', required
        - `text` string, required
        - `synthetic` boolean
        - `ignored` boolean
        - `time` object
          - `start` number, required
          - `end` number
        - `metadata` object
      - SubtaskPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'subtask', required
        - `prompt` string, required
        - `description` string, required
        - `agent` string, required
        - `model` object
          - `providerID` string, required
          - `modelID` string, required
        - `command` string
      - ReasoningPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'reasoning', required
        - `text` string, required
        - `metadata` object
        - `time` object, required
          - `start` number, required
          - `end` number
      - FilePart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'file', required
        - `mime` string, required
        - `filename` string
        - `url` string, required
        - `source` union
          - FileSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'file', required
            - `path` string, required
          - SymbolSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'symbol', required
            - `path` string, required
            - `range` Range, required
              - …
            - `name` string, required
            - `kind` integer, required
          - ResourceSource
            - `text` FilePartSourceText, required
              - …
            - `type` 'resource', required
            - `clientName` string, required
            - `uri` string, required
      - ToolPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'tool', required
        - `callID` string, required
        - `tool` string, required
        - `state` union, required
          - ToolStatePending
            - `status` 'pending', required
            - `input` object, required
            - `raw` string, required
          - ToolStateRunning
            - `status` 'running', required
            - `input` object, required
            - `title` string
            - `metadata` object
            - `time` object, required
              - …
          - ToolStateCompleted
            - `status` 'completed', required
            - `input` object, required
            - `output` string, required
            - `title` string, required
            - `metadata` object, required
            - `time` object, required
              - …
            - `attachments` FilePart[]
              - …
          - ToolStateError
            - `status` 'error', required
            - `input` object, required
            - `error` string, required
            - `metadata` object
            - `time` object, required
              - …
        - `metadata` object
      - StepStartPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'step-start', required
        - `snapshot` string
      - StepFinishPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'step-finish', required
        - `reason` string, required
        - `snapshot` string
        - `cost` number, required
        - `tokens` object, required
          - `total` number
          - `input` number, required
          - `output` number, required
          - `reasoning` number, required
          - `cache` object, required
            - `read` number, required
            - `write` number, required
      - SnapshotPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'snapshot', required
        - `snapshot` string, required
      - PatchPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'patch', required
        - `hash` string, required
        - `files` string[], required
      - AgentPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'agent', required
        - `name` string, required
        - `source` object
          - `value` string, required
          - `start` integer, required
          - `end` integer, required
      - RetryPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'retry', required
        - `attempt` number, required
        - `error` APIError, required
          - `name` 'APIError', required
          - `data` object, required
            - `message` string, required
            - `statusCode` number
            - `isRetryable` boolean, required
            - `responseHeaders` object
            - `responseBody` string
            - `metadata` object
        - `time` object, required
          - `created` number, required
      - CompactionPart
        - `id` string, required
        - `sessionID` string, required
        - `messageID` string, required
        - `type` 'compaction', required
        - `auto` boolean, required

## Other responses

- `400` — Bad request
- `404` — Not found

---

[API](https://skmtc.net/cyberstrikeus/apis/cyberstrike.md) · [All operations](https://skmtc.net/cyberstrikeus/apis/cyberstrike/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cyberstrikeus/cyberstrike/versions/4e11f1aed2fd/schema)
