A checkpoint is LinkedIn stopping a sign-in halfway through to ask the person a question. The password was right; LinkedIn simply is not satisfied that you are you.
It matters more than it sounds, because a checkpoint is not an error you retry. Retrying a sign-in that raised a checkpoint raises another one, and the account is now in two half-finished states instead of one. The only way past it is to answer the question.
The five kinds
- 2FA — a six-digit code from an authenticator app.
- OTP — a code LinkedIn texts or emails to the account.
- IN_APP_VALIDATION — a tap in the LinkedIn mobile app. There is no code; nothing comes back to the request that raised it.
- CAPTCHA — a puzzle that cannot be solved from an API at all.
- PHONE_REGISTER — LinkedIn wants a phone number on the account before it will continue.
Only the first two have an answer you can post. On MakeHybrid, POST /premium/connect/checkpoint takes the account_id and the code. The other three are answered somewhere else entirely, which is why the connect card offers LinkedIn's own sign-in page as the first route: that page handles all five, and this API handles two.
Where people get it wrong
A checkpoint account already exists. It is created the moment the challenge is raised, before anybody has answered anything, and it is billable and removable from that moment. If a sign-in stalls, the account is in your list — remove it there rather than starting a third one.
A LinkedIn code is good for about five minutes, and asking for a new one retires the old one. If you have two emails open, the newer code is the only one that works.