Reconnect a sender whose LinkedIn session broke. status is reconnected, checkpoint_required or failed. In every case the sender keeps its id, its campaigns and its seat.
For a credentials / infinite-login sender this retries the saved sign-in and runs one attempt now. If its saved provider account no longer exists, a replacement is created from the stored credentials and attached to the same sender. If the person changed their password (or 2FA), pass a new password (and totpSecret) to replace the stored credentials first.
For a cookie sender there is no saved password to retry, so pass a fresh liAt (and ideally the userAgent it came from) to replace the browser session. Without one the call returns 400 not-supported.
A legacy sender with no stored credentials at all can be repaired by passing username + password, which converts it into a credentials / infinite-login sender from then on. The alternative for any sender is a hosted connect link scoped to it (POST /accounts/hosted-link with accountId), which lets the person sign in themselves.
A stored authenticator secret clears a 2FA challenge on its own. Any other challenge comes back as checkpoint_required with the checkpoint to answer on POST /accounts/{id}/checkpoint.
Authorization
bearerAuth An API key created under Settings → API & Webhooks.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Optional. New credentials when the person changed their LinkedIn password or 2FA, or a fresh browser session for a cookie sender. Omit entirely to retry the saved sign-in.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts/string/reconnect" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "string", "label": "string", "fullName": "string", "firstName": "string", "lastName": "string", "headline": "string", "publicIdentifier": "string", "profileUrl": "string", "profilePicture": "string", "connectionMethod": "cookie", "connectedVia": "app", "hostedLinkId": "string", "status": "active", "connectionStatus": "string", "isVerified": true, "isPremium": true, "linkedinPlan": "classic", "error": "string", "limits": {}, "usage": {}, "paused": true, "pausedReason": "user", "pausedAt": "2019-08-24T14:15:22Z", "cooldownUntil": "2019-08-24T14:15:22Z", "cooldownReason": "string", "checkpoint": { "type": "2FA", "input": "code", "requestedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z", "expired": true, "canResend": true, "canTryAnotherWay": true }, "inmailCredits": { "balance": 0, "syncedAt": "2019-08-24T14:15:22Z" }, "ssi": { "score": 0, "brand": 0, "people": 0, "insights": 0, "relationships": 0, "industryTop": 0, "networkTop": 0, "industryAverage": 0, "networkAverage": 0, "industryName": "string", "unavailable": true, "syncedAt": "2019-08-24T14:15:22Z" }, "country": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }, "status": "reconnected", "checkpointType": "string", "checkpoint": { "type": "2FA", "input": "code", "requestedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z", "expired": true, "canResend": true, "canTryAnotherWay": true }, "error": "string"}Pause a sender POST
Pause the sender: campaigns stop acting from it and direct actions are rejected with 409 `code: sender_paused` until it is resumed. Its campaign leads stay assigned; use `POST /campaigns/{id}/senders/{accountId}/rebalance` to move the not-yet-contacted ones onto other senders. Pausing an already-paused sender is a no-op and still returns the account. Emits an `account.paused` webhook.
Re-send the pending sign-in challenge POST
Ask LinkedIn to send the pending challenge again — a fresh emailed or texted code, or a new approval push to the mobile app. 400 with `checkpoint_no_resend` when the pending type has nothing to re-send (a captcha, a phone step), or `checkpoint_expired` when the five-minute window already closed.