---
title: "Reply into a thread"
method: POST
path: "/conversations/{id}/reply"
tags: ["Inbox"]
---

# Reply into a thread

`POST /conversations/{id}/reply`

## Request

- Base URL: `https://rcs-templates-api-dot-msg2ai-server.ue.r.appspot.com/api/agent`
- URL: `https://rcs-templates-api-dot-msg2ai-server.ue.r.appspot.com/api/agent/conversations/{id}/reply`
- Auth: HTTP bearer

Send free text (optionally with an image) or an approved template into a thread. This reaches a real phone and bills your org. Every gate a human operator hits applies unchanged: an opted-out number is refused, the allowance is enforced, an RCS send always carries its SMS fallback, and WhatsApp free text needs the 24-hour window open (an approved template otherwise). Where the thread has an outbound language set, free text is translated into it first, exactly as the composer does.

## Path parameters

- `id` string, required

## Request body

- object
  - `kind` 'text' | 'template', required
  - `text` string: kind=text: the body. May be empty when mediaUrl carries the message.
  - `mediaUrl` string: kind=text: a public https image URL to attach.
  - `blueprintId` string: kind=template: the org template to send.
  - `variables` object: kind=template: values for the template's {{variables}}.

## Response `200`

Success.

- object

## Other responses

- `400`: Arguments failed validation.
- `401`: Missing or invalid agent key.
- `403`: Key does not hold the conversations:write scope.
- `429`: Rate limited.

---

[API](https://skmtc.dev/rcs-campaigns/apis/rcs-campaigns-agent-gateway.md) · [All operations](https://skmtc.dev/rcs-campaigns/apis/rcs-campaigns-agent-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/rcs-campaigns/apis/rcs-campaigns-agent-gateway/revisions/acdbf292d9d6?raw)
