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

# Send Message

> Sends a message to an existing replica. Supports targeting a specific chat, choosing a coding agent and model, attaching images, and enabling plan mode.



## OpenAPI

````yaml /openapi.json post /v1/replica/{id}/messages
openapi: 3.1.0
info:
  title: Replica API
  version: 2.0.0
  description: >-
    The Replica API allows you to programmatically manage cloud workspaces for
    AI agents. Use this API to manage environments (the org-scoped primitive
    workspaces are created from — including variables, files, skills, MCPs, warm
    hooks, start hooks, and warm pools), create and manage replicas, send
    messages, manage chats, stream events, read connected repositories and
    repository sets, and configure automations.
servers:
  - url: https://api.tryreplicas.com
    description: Production API
security:
  - apiKey: []
tags:
  - name: Environments
    description: >-
      Manage environments — the primitive that workspaces are created from.
      Variables, files, skills, MCPs, warm-hooks, and warm-pools are all scoped
      to an environment. Every organization has a singleton Global environment
      whose values apply to every workspace. Personal environments are scoped to
      the authenticated user and can be standalone or source-backed by a team
      environment.
  - name: Repository
    description: >-
      Read repositories and repository sets connected to your organization.
      Repositories are the underlying GitHub-connection layer; bind them to an
      environment to use them in workspaces.
  - name: Replica
    description: Manage replicas (workspaces) for AI agents
  - name: Terminal
    description: Manage interactive terminal sessions in active workspaces
  - name: Preview
    description: Manage public preview URLs for workspace ports
  - name: Profile
    description: Read and update the authenticated user's profile
  - name: Credentials
    description: >-
      Manage coding-agent credentials for an organization or the authenticated
      user
  - name: Google Search Console
    description: >-
      Read Search Console properties, performance, sitemaps, and URL inspection
      results through a connected Google account
  - name: Slack
    description: Route Slack threads to Replicas workspaces
  - name: Automation
    description: >-
      Create and manage automations that trigger replicas on a schedule or in
      response to events
  - name: Downloads
    description: Download Replicas applications
  - name: Analytics
    description: >-
      Read aggregated activity and usage metrics for your organization: compute
      minutes, workspaces created by source, and pull request throughput over a
      time range.
  - name: Presence
    description: >-
      Read and report ephemeral member presence: who is online, where they are
      (environment or workspace), and whether they are typing. Presence is
      backed by short-lived keys rather than the database and broadcast to other
      members over the events stream.
paths:
  /v1/replica/{id}/messages:
    post:
      tags:
        - Replica
      summary: Send Message
      description: >-
        Sends a message to an existing replica. Supports targeting a specific
        chat, choosing a coding agent and model, attaching images, and enabling
        plan mode.
      operationId: sendReplicaMessage
      parameters:
        - name: id
          in: path
          description: The unique identifier of the replica
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendReplicaMessageRequest'
      responses:
        '200':
          description: Message accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendReplicaMessageResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    SendReplicaMessageRequest:
      type: object
      description: Request body for sending a message to a replica
      properties:
        message:
          type: string
          description: Message to send to the coding agent
        coding_agent:
          type: string
          description: Coding agent to use
          enum:
            - claude
            - codex
            - cursor
            - opencode
            - pi
        chat_id:
          type: string
          description: Target a specific chat session
        model:
          type: string
          description: >-
            Model to use for this message. Pi and Opencode accept z-ai/glm-5.2,
            minimax/minimax-m3, xiaomi/mimo-v2.5-pro, and moonshotai/kimi-k2.6
            through OpenRouter.
        images:
          type: array
          items:
            $ref: '#/components/schemas/ImageContent'
          description: Images to attach to the message
        plan_mode:
          type: boolean
          description: >-
            Whether to run in plan mode. Leading `/plan` in the message is also
            detected and stripped.
        goal_mode:
          type: boolean
          description: >-
            Whether to set the message as the active Codex goal. Leading `/goal`
            in the message is also detected and stripped.
        fast_mode:
          type: boolean
          description: >-
            Whether to run in fast mode. Leading `/fast` in the message is also
            detected and stripped.
        thinking_level:
          type: string
          description: >-
            Thinking/reasoning level. Controls how much effort the agent puts
            into reasoning. `ultra` is Codex-only; `ultracode` is Claude
            Code-only. Falls back to provider default when omitted (Claude
            default: high, Codex default: medium, Cursor default: medium,
            Opencode default: medium, Pi default: model default).
          enum:
            - low
            - medium
            - high
            - xhigh
            - max
            - ultra
            - ultracode
        senderUserId:
          type: string
          description: >-
            Identifier of the user sending this message. When the request is
            authenticated via dashboard auth, the server overrides this with the
            authenticated user's id so team workspaces can attribute messages to
            the actual sender.
        senderEmail:
          type: string
          description: >-
            Email of the user sending this message. When the request is
            authenticated via dashboard auth, the server overrides this with the
            authenticated user's email.
      required:
        - message
    SendReplicaMessageResponse:
      type: object
      description: Response after sending a message to a replica
      properties:
        status:
          type: string
          description: Status of the message delivery
          enum:
            - sent
            - queued
            - waking
        message_id:
          type:
            - string
            - 'null'
          description: Unique identifier for the sent message
        position:
          type:
            - integer
            - 'null'
          description: Queue position if status is 'queued'
        chat_id:
          type:
            - string
            - 'null'
          description: ID of the chat the message was sent to
      required:
        - status
        - message_id
        - position
        - chat_id
    ImageContent:
      type: object
      description: An image attachment for messages
      properties:
        type:
          type: string
          const: image
          description: Content type, always 'image'
        source:
          type: object
          description: Image source data
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  const: base64
                media_type:
                  type: string
                  enum:
                    - image/png
                    - image/jpeg
                    - image/gif
                    - image/webp
                  description: MIME type of the image
                data:
                  type: string
                  description: Base64-encoded image data
              required:
                - type
                - media_type
                - data
            - type: object
              properties:
                type:
                  type: string
                  const: url
                url:
                  type: string
                  format: uri
                  description: URL to the image
              required:
                - type
                - url
      required:
        - type
        - source
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        details:
          type:
            - string
            - 'null'
          description: Additional error details
      required:
        - error
  responses:
    BadRequest:
      description: Bad request - Missing or invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: >-
        Conflict - Resource already exists or operation conflicts with current
        state
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadGateway:
      description: >-
        Bad gateway - The workspace is unreachable or returned an invalid
        response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServiceUnavailable:
      description: >-
        Service unavailable - The service is temporarily overloaded or under
        maintenance
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Obtain your API key from the Replicas dashboard
        under Organization → Settings → API Keys.

````