---
title: "Send LinkedIn InMail"
method: POST
path: "/v1/linkedin/sendInMail"
tags: ["linkedin"]
---

# Send LinkedIn InMail

`POST /v1/linkedin/sendInMail`

## Request

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

Transport: call this endpoint with HTTP POST and a JSON request body. Send a LinkedIn InMail to a non-connection using a Premium or Sales Navigator account. This is a separate, explicit action from linkedin_send_message and may consume InMail credits. REQUIRES confirmations.requestAction first for public REST calls. 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
  - `recipientId` string: LinkedIn provider ID for the recipient. Classic/Premium usually uses ACo...; Sales Navigator uses ACw...; staging can convert a classic ACo... ID for Sales Navigator accounts.
  - `identifier` string: LinkedIn public identifier, profile URL, Sales Navigator lead URL, or provider ID. Staging resolves it to the product-specific provider ID before approval.
  - `message` string, required: InMail message body
  - `subject` string: Optional InMail subject when supported by the selected LinkedIn API mode
  - `linkedin_api` 'classic' | 'sales_navigator' | 'recruiter': LinkedIn API mode for InMail. Defaults from the active LinkedIn account tier: premium -> classic, sales_navigator -> sales_navigator.
  - `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)
