---
title: "Send LinkedIn message"
method: POST
path: "/v1/linkedin/sendMessage"
tags: ["linkedin"]
---

# Send LinkedIn message

`POST /v1/linkedin/sendMessage`

## Request

- Base URL: `https://api.zevari.ai`
- URL: `https://api.zevari.ai/v1/linkedin/sendMessage`
- Auth: HTTP bearer

Transport: call this endpoint with HTTP POST and a JSON request body. Send a LinkedIn DM to an existing conversation or first-degree recipient. This does not auto-route to InMail for non-connections. REQUIRES confirmations.requestAction first. Public REST flow: first call confirmations.requestAction with the exact payload you intend to execute. If Autopilot returns approved=true, retry this endpoint immediately with confirmation_id. Otherwise wait for approval_url to be approved in Zevari, then retry with confirmation_id.

## Request body

- object
  - `chatId` string: Chat ID for existing conversation (from get_inbox)
  - `recipientId` string: LinkedIn provider ID for new conversation
  - `lead_id` string: Saved lead ID when sending a quiet-reply follow-up
  - `expected_last_inbound_at` string: Quiet-reply guard only. Set with lead_id for re-engaging a quiet saved lead; do not set for live inbox replies without lead_id.
  - `message` string, required: Message content
  - `confirmation_id` string: REQUIRED. ID from confirmations.requestAction. You MUST call confirmations.requestAction FIRST with the exact payload you intend to send, return the data.approval_url to the user, and wait for them to approve. Only then call this tool with the confirmation_id. Without it, this tool returns an error.
  - `bulk_item_id` string: Set when confirmation_id refers to a bulk_actions parent (from confirmations.requestAction). Identifies the per-item child to consume — e.g. 'itm_03'. Omit for single-action confirmations.

## Response `200`

Successful Zevari API response.

- ZevariResponseEnvelope
  - `ok` boolean, required: False when the underlying tool reports an error or a partial failure.
  - `method` string, required: Public API method name.
  - `data` unknown, required
  - `request_id` string, required: Request correlation ID. Also returned in X-Zevari-Request-Id.

## Other responses

- `400`: Invalid arguments or method execution error.
- `401`: Missing, invalid, expired, revoked, or unauthorized API key.
- `404`: Unknown or non-public Zevari API method.
- `429`: API key rate limit exceeded.
- `500`: Unhandled server error.

---

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