---
title: "mail.agent.reply · OpenVibe.Services"
canonical: "https://openvibe.services/docs/capabilities/mail.agent.reply"
updated: null
---

# mail.agent.reply · OpenVibe.Services

HTML: [mail.agent.reply · OpenVibe.Services](https://openvibe.services/docs/capabilities/mail.agent.reply)

# `mail.agent.reply`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

Not grantable to apps (active, first-party).

Send a reply FROM an agent's own address, as that agent acting for the person whose mailbox receives its mail. POST /internal/mail/agents/:agent\_id/reply takes mail.agent-reply-request@1 and answers mail.agent-reply-result@1. The reply is plain text, comes from <agent>.<user>@openvibe.email and from nothing else, and carries In-Reply-To and References so it stays in the thread; the recipient is the sender of the message being answered, or the same address named in \`to\`, and never a stranger the message did not come from. The recipient is therefore never new: this is an answer, not a first letter. The token must name the person (on\_behalf\_of) and the agent must be one of their inboxes. Loopback only; granted to OpenVibe.Actor alone, which sends the reply the person approved.

- Owner: mail (token audience `openvibe.mail`)
- Version: 1.0
- Status: active
- Visibility: first-party
- Resource constraints: owner
- Quota class: internal-write
- Permissions: mail:messages:send
- Input: [mail.agent-reply-request@1](/docs/contracts/mail.agent-reply-request)
- Output: mail.agent-reply-result@1
- Events: —
- Implemented by: - `POST /internal/mail/agents/:agent_id/reply`

[These routes in the API explorer](/docs/api/mail#cap-mail.agent.reply)
