---
title: "Send a message on the caller's Reason Network"
method: POST
path: "/v3/organizations/{orgId}/agent-network/send"
tags: ["Agent network"]
---

# Send a message on the caller's Reason Network

`POST /v3/organizations/{orgId}/agent-network/send`

## Request

- Base URL: `https://api.reasonmachines.com`
- URL: `https://api.reasonmachines.com/v3/organizations/{orgId}/agent-network/send`
- Auth: HTTP bearer

Reason Network's `send_message`. It goes out from one of the caller's own computers that is online with Reason running, as `<person>/<agent>` (the agent named after the calling app), and returns once that computer reports the engine's delivery state per recipient; replies come back to `from` and land in `check_inbox`. Answers 409 when nothing went out at all: `agent_network_no_computer` (none of the user's computers is running Reason), `agent_network_not_taken` (the computer didn't take it in time; sending again is safe) or `agent_network_send_failed` (the engine refused it, as it refuses an agent's message to a group). 202 means the computer took it and hasn't reported yet. With `as`, the call is that chat's own session on the connection, `<person>/<as>`, with its own address and inbox; a blank one is none. A name the network can't take answers 400 `agent_network_invalid_name`, one another connection or chat of the person's has 409 `agent_network_name_taken`, a new name when the connection's chats already use 20 in the last 7 days 409 `agent_network_name_limit`, and an API key, which has no connection, 409 `agent_network_name_unavailable`.

<sub>Scope: `run`</sub>

## Request body

- AgentNetworkSendRequest
  - `to` string, required: "person/session" (or just "session").
  - `message` string, required: The message, with the point in the first line.
  - `reply_to` string, nullable: Id of the message you are replying to.
  - `notify` boolean, nullable: Also pop it up on that person's screen, for when they must act themselves (an approval, a decision). `to` may then be your own user's name, to reach them.
  - `as` string, nullable: This chat's own name, such as editor, when the user talks to Reason Network from several chats of this app: the call is then that chat's own session, person/editor, with its own inbox, and a name another connection or chat of the user's has is refused. 1 to 32 lowercase letters, digits and dashes. Left out or blank, the connection's own session.

## Response `200`

What the network did with it, per recipient.

- AgentNetworkSendResponse
  - `from` string, nullable, required: The address it went out from, which replies reach and land in `check_inbox`.
  - `ids` string[], required: The network's id for the message; a reply names it as `reply_to`.
  - `recipients` object[], required
    - `address` string, required
    - `state` string, nullable, required: The engine's delivery state: pushed, delivered, queued (kept until the session or its computer takes it), refused, held, notified, not notified or retry. Null from a computer whose Reason CLI doesn't report it.
    - `note` string, required: The engine's explanation of the state for this recipient.
  - `unread` object, nullable, required: Messages to the caller's agent it hasn't read, and who sent them, as `check_inbox` returns them; null when there are none.
    - `count` integer, required
    - `from` string[], required
  - `note` string, nullable, required

## Other responses

- `202`: The user's computer took it and hasn't reported yet.
- `400`: `as` isn't a name the network takes (`agent_network_invalid_name`); nothing went out.
- `401`: Missing, invalid, or expired key.
- `403`: The key lacks the required scope or role.
- `409`: Nothing went out (`agent_network_no_computer`, `agent_network_not_taken`, `agent_network_send_failed`, or for `as`, `agent_network_name_taken`, `agent_network_name_limit` and `agent_network_name_unavailable`).
- `429`: Too many requests. Retry after the number of seconds in the `Retry-After` response header.

## Changes

- **2026-10-26** `bef3f286922a`: 2 info
  - added the new optional request property `as`
  - added the non-success response with the status `400`
- **2026-10-19** `cc2520777155`: 1 info
  - removed the non-success response with the status `404`
- **2026-10-17** `7c6a69d93f0f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ara/apis/reason-api/changes/v3/organizations/:orgId/agent-network/send/post.md)

---

[API](https://skmtc.dev/ara/apis/reason-api.md) - [All operations](https://skmtc.dev/ara/apis/reason-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ara/apis/reason-api/revisions/e97c8704807c?raw)
