Last updated: September 2026
Why does my LinkedIn API token expire after 60 days?
Because that is the lifetime LinkedIn gives access tokens issued to self-serve apps, and self-serve apps get no refresh token to renew them with. Refresh tokens are limited to LinkedIn approved partner programs. So on day 60 the token stops working, and the only fix is for the member to sign in again.
This is a LinkedIn rule, not a bug in whatever tool you are using. Below is what a self-serve sign-in gives you, what that means for any scheduler, and how OpenTweet handles the expiry.
What a self-serve sign-in gives you
Self-serve covers the products any developer can add without review, including Share on LinkedIn, the one used for posting to a personal profile.
{
"access_token": "AQV...",
"expires_in": 5184000,
"scope": "w_member_social"
}
// expires_in is in seconds: 5184000 is 60 days.
// There is no refresh_token field to store.What that means for any scheduler
Every tool that posts to your profile through a self-serve app lives with the same clock. It cannot quietly renew your token, so once in every 60-day window you will be asked to sign in again. If you are building your own integration, plan for that from day one:
- Store the expiry with the token, not just the token.
- Check it before each publish, so an expired token is caught before the post is due rather than as a failed call.
- Hold posts whose token has expired instead of dropping them, and tell the member.
- Make signing in again a single click, because the member will do it about six times a year.
LinkedIn has no scheduling API either
Scheduling on LinkedIn always means a queue on the tool side that calls the posting endpoint at the chosen time. That queue is what has to notice an expired token, because LinkedIn does not hold the post for you.How OpenTweet handles day 60
Sign in once
Settings > Accounts > Connect LinkedIn. Sign in with LinkedIn and approve. No developer app, no API key.
Post for 60 days
Scheduled and immediate LinkedIn posts go out on your personal profile as normal.
The sign-in expires
LinkedIn gives OpenTweet no refresh token, so the connection cannot renew itself. Scheduled LinkedIn posts are held, and OpenTweet emails you to reconnect.
Reconnect in one click
Sign in with LinkedIn again from Settings. That starts a fresh 60 days.
OpenTweet uses the self-serve Share on LinkedIn product, so you never register a LinkedIn app, and your LinkedIn posts go to your personal profile feed. Company Pages are not supported, since they need the Community Management API and LinkedIn review. More on that split in posting to LinkedIn without partner approval.
7-day free trial. Cancel anytime.
Frequently asked questions
Why does my LinkedIn API token expire after 60 days?
Because that is the lifetime LinkedIn gives access tokens issued to self-serve apps, such as apps using the Share on LinkedIn product. Those apps get no refresh token, so when the 60 days are up there is nothing to renew the token with, and the member has to sign in again.
Can I get a refresh token from LinkedIn?
Only on an approved partner program. LinkedIn limits refresh tokens to those programs, so an app on the self-serve products, including the Share on LinkedIn product used for posting to a personal profile, gets a 60-day access token and nothing to renew it with.
Is there a way around signing in again every 60 days?
Not on a self-serve app. Without a refresh token there is no background renewal, so the member has to authorize again. That applies to an app you build yourself and to any scheduler built on the self-serve products.
What happens to my scheduled LinkedIn posts in OpenTweet when the sign-in expires?
They are held, and OpenTweet emails you to reconnect. Reconnecting is one click in Settings: the same sign-in with LinkedIn you did the first time, which starts a fresh 60 days.
Do I need my own LinkedIn developer app to use OpenTweet?
No. The OpenTweet LinkedIn app uses the self-serve Share on LinkedIn product, so you only sign in and approve. No developer app, no API key and no partner application. The 60-day clock applies either way, because it is the LinkedIn rule for self-serve apps.
Does the 60-day limit affect my X or Bluesky connection?
No. It is specific to LinkedIn self-serve tokens. Your X and Bluesky connections are separate and do not run on this clock.
Keep exploring
The 60-day clock, the partner question, and posting to LinkedIn from one API.
Do I need partner approval?
Not for your own profile. Company Pages are where LinkedIn review sits.
Posting to LinkedIn from Claude Code
One MCP command, then "linkedin" in the platforms array.
One endpoint for every network
The same POST reaches X, Bluesky and LinkedIn from one platforms array.
The Bluesky auth question
What an App Password grants, and why OAuth avoids the question.
Cross-posting API reference
The platforms parameter, the results array, and the per-network limits.
Cross-posting
One draft, a native post on each network, and a per-network result you can read.
One click every 60 days, nothing else to run
No LinkedIn app, no token store, no queue of your own. LinkedIn is on every plan from $11.99 a month.
7-day free trial. Cancel anytime.