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

# Send a LinkedIn connection request to a contact

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

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

Sends a direct LinkedIn connection request to the contact outside of any sequence.
The contact must have a LinkedIn profile URL set. The caller must own an active LinkedIn account (`linkedInAccountId`).

## Path parameters

- `id` integer, required

## Request body

- object
  - `linkedInAccountId` integer, required — ID of the LinkedIn account to send from. Must be greater than 0.
  - `message` string, nullable — Optional personalized note to include with the connection request.

## Response `200`

Connection request 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.invitesNotesLimit` | Connection note character limit exceeded | | `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 or connection status prevents the action. | `code` | Meaning | |---|---| | `directLinkedIn.linkedInAccountInactive` | Specified LinkedIn account is inactive | | `directLinkedIn.invalidCookie` | LinkedIn account session cookie is invalid | | `directLinkedIn.alreadyConnected` | Already connected with this contact on LinkedIn | | `directLinkedIn.notConnected` | Not connected to this contact on LinkedIn |
- `429` — Rate limit reached. | `code` | Meaning | |---|---| | `directLinkedIn.dailyLimitReached` | Daily connection request limit reached | | `directLinkedIn.weeklyLimitReached` | Weekly connection request 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)
