Direct actions
POST
/accounts/{id}/inmails

Send a LinkedIn InMail from this sender account to a non-connection. InMail requires a premium LinkedIn plan on the sender (free senders cannot send any). Sales Navigator and Recruiter senders InMail open profiles free up to a monthly allowance (about 800/month, plan-dependent); every other send, including classic Premium, draws the sender's InMail credit balance (visible as inmailCredits on the account). Counts against the sender's daily InMail cap. Fails with 409 code: sender_paused when the sender is paused, 409 code: inmail_not_available when the sender has no premium InMail access, and 429 code: inmail_credits_exhausted (details.scope: inmail_credits) when the sender is out of InMail credits.

Authorization

bearerAuth
AuthorizationBearer <token>

An API key created under Settings → API & Webhooks.

In: header

Path Parameters

id*string

Header Parameters

Idempotency-Key?string

Unique key per action (e.g. a UUID). Reusing it replays the first response instead of sending again, so a retry can't double-send. Recommended on all writes.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/accounts/string/inmails" \  -H "Content-Type: application/json" \  -d '{    "profileUrl": "string",    "text": "string"  }'
{  "data": {    "id": "string",    "accountId": "string",    "type": "invitation",    "status": "pending",    "profileUrl": "string",    "publicIdentifier": "string",    "postUrl": "string",    "leadId": "string",    "note": "string",    "error": "string",    "sentAt": "2019-08-24T14:15:22Z",    "acceptedAt": "2019-08-24T14:15:22Z",    "withdrawnAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z"  }}