---
title: "Send a message on behalf of the contact"
method: POST
path: "/contacts/{contactId}/messages"
tags: ["Conversations"]
---

# Send a message on behalf of the contact

`POST /contacts/{contactId}/messages`

Ingests a message as if the contact had sent it themselves. Used by partners whose end-users type messages into a partner-hosted widget — the partner's backend forwards each message to Tidio via this endpoint.

The message is attributed to the contact (not to an operator or bot), persisted into the conversation, routed to the assigned operator's panel like any other inbound message, and triggers any matching bot/AI-agent rules.

Processing is asynchronous: the response is `202 Accepted`. Retrieve the persisted message via `GET /contacts/{contactId}/messages` if you need the canonical record.

## Path parameters

- `contactId` string, uuid, required — ID of the contact

## Response `202`

Message accepted for asynchronous processing.

## Other responses

- `404` — Contact not found.
- `422` — Invalid request body.

---

[API](https://skmtc.dev/tidio/apis/tidio-openapi.md) · [All operations](https://skmtc.dev/tidio/apis/tidio-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tidio/tidio-openapi/revisions/60b2d5edc91f/schema)
