---
title: "Send a LinkedIn InMail to a contact"
method: POST
path: "/v3/contacts/{id}/send-direct-linkedin-inmail"
tags: ["Direct Outreach"]
---

# Send a LinkedIn InMail to a contact

`POST /v3/contacts/{id}/send-direct-linkedin-inmail`

<small>_Requires the `contacts:operate` scope (or a broader one that includes it)._</small>

Sends a direct LinkedIn InMail message to the contact outside of any sequence.
Requires a Sales Navigator account with available InMail credits.

## Path parameters

- `id` integer, required

## Request body

- object
  - `linkedInAccountId` integer, required — ID of the LinkedIn account to send from. Must be greater than 0.
  - `subject` string, required — InMail subject line.
  - `body` string, required — InMail body text.

## Response `200`

InMail sent successfully.

- object — Response returned after a direct LinkedIn action is dispatched.
  - `actionType` 'connect' | 'inMail' | 'message' | 'voice' | 'aiVoice', required — The type of LinkedIn action performed.
  - `linkedInActivityId` integer, required — ID of the LinkedIn activity record created for this action.
  - `sentAtUtc` string, date-time, required — UTC timestamp when the action was dispatched.

## Other responses

- `400` — Validation failure on the route parameter or request body, or a business rule rejection. | `code` | Meaning | |---|---| | `directLinkedIn.salesNavRequired` | Sales Navigator subscription required | | `directLinkedIn.salesNavDisconnected` | Sales Navigator is disconnected | | `directLinkedIn.noInMailCredits` | No InMail credits remaining | | `directLinkedIn.messageTooLong` | Message body exceeds the allowed length | | `directLinkedIn.missingVariables` | Message template contains unresolved variables |
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — LinkedIn direct actions feature is disabled for this account.
- `404` — Contact, LinkedIn profile, or LinkedIn account not found.
- `409` — Conflict — the LinkedIn account state prevents the action. | `code` | Meaning | |---|---| | `directLinkedIn.linkedInAccountInactive` | Specified LinkedIn account is inactive | | `directLinkedIn.invalidCookie` | LinkedIn account session cookie is invalid |
- `429` — Rate limit reached. | `code` | Meaning | |---|---| | `directLinkedIn.dailyLimitReached` | Daily InMail limit reached | | `directLinkedIn.weeklyLimitReached` | Weekly InMail limit reached |

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
