---
title: "Send Test Message"
method: POST
path: "/api/connections/{connection_id}/test"
tags: ["connections"]
---

# Send Test Message

`POST /api/connections/{connection_id}/test`

## Request

- Base URL: `https://api.heymetra.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.heymetra.com/api/connections/{connection_id}/test`
- Auth: none declared

Send a real message to a connected channel, and report what came back.

A connection can look healthy and still reach nothing — a bot whose chat
was never linked, a Slack channel the app was removed from. Finding that out
when it matters is the worst way to find out, so this pushes a real call and
surfaces the provider's own answer.

Gated, since ZEISO-248. It had no role check at all: a VIEWER could make
HeyMetra post a real message into the customer's Slack channel, Telegram
chat or mailbox — the one thing ``slack_send_message`` refuses them at
``core/policy.py`` step 6, reachable by another door. Measured 2026-09-15
by handing this endpoint a provider double that raises when touched, from a
viewer's context; the double was touched.

## Path parameters

- `connection_id` string, uuid, required

## Headers

- `authorization` string, nullable
- `x-workspace-id` string, nullable

## Response `200`

Successful Response

- ChannelTestOut: The result of sending a real message to a connected channel.
  - `status` 'sent', required
  - `detail` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/heymetra/apis/heymetra-api.md) · [All operations](https://skmtc.dev/heymetra/apis/heymetra-api/llms.txt) · [OpenAPI document](https://skmtc.dev/heymetra/apis/heymetra-api/revisions/877b0f87d6d0?raw)
