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

# answer_request

> Post a message in a request's thread, as the caller — the natural second half of create_request, and the way an admin answers a contested commission.

Post a message in a request's thread, as the caller.

The natural second half of
[`create_request`](/mcp_documentation/tools/create_request), and the way an
admin answers a rep who contested their commission. Only an open request
accepts a message: a closed one is refused, saying so. A request you can't
access is reported as not found. Attachments are not supported here.

Available only where the Qobra write tools beta is enabled. Every write is
recorded in the audit trail as the `Qobra MCP` agent.

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="request_id" type="string" required>
    Id of the request to answer — the id list\_requests returns, the one
    create\_request just returned, or the one in a statement's
    `linked_requests`.
  </ParamField>

  <ParamField body="content" type="string" required>
    The message to post, as plain text. It is written in the caller's name
    and notifies every member of the request.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="request" type="object">
    The request the message was added to, as it now stands. See
    [`list_requests`](/mcp_documentation/tools/list_requests) for the full
    field breakdown.
  </ResponseField>

  <ResponseField name="message" type="object">
    The message as it now reads in the thread.

    <Expandable title="object properties">
      <ResponseField name="author" type="object">
        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="email" type="string" />

          <ResponseField name="name" type="string" />
        </Expandable>
      </ResponseField>

      <ResponseField name="content" type="string">
        The message as written, with every @-mention rendered as `@<name>`
        instead of the raw user id the web app stores.
      </ResponseField>

      <ResponseField name="mentions" type="object[]">
        The users @-mentioned in `content`, in order of first appearance;
        empty when the message mentions nobody.

        <Expandable title="object properties">
          <ResponseField name="id" type="string" />

          <ResponseField name="email" type="string" />

          <ResponseField name="name" type="string" />
        </Expandable>
      </ResponseField>

      <ResponseField name="created_at" type="string" />

      <ResponseField name="last_modified_at" type="string" />
    </Expandable>
  </ResponseField>
</Accordion>
