Last updated: September 2026
Can I use the LinkedIn API without a Company Page?
Partly. Posting to your own personal profile through the API involves no Company Page at all. But LinkedIn requires every developer app to be associated with a LinkedIn Page, even an app that only posts to personal profiles, so you need a Page to register the app. People who do not have one create a basic Page just for that.
Below is where a Page is and is not required, the exact setup for posting to your profile, and how to post through OpenTweet with no app and no Page on your side.
Where a Page is required
The Page requirement sits on the app, not on the post.
This is not a workaround we read about. OpenTweet’s own LinkedIn app is set up exactly this way: associated with a Page, and posting only to the personal profiles of the members who connect it.
Posting to your profile with your own app
Have a LinkedIn Page
Use one you already admin, or create a basic Page. It is only there so the app can be registered.
Create the developer app
Register it in the LinkedIn developer portal and associate it with that Page.
Add two self-serve products
Share on LinkedIn, which grants w_member_social, and Sign In with LinkedIn using OpenID Connect, which tells you who signed in. Neither needs partner review.
Sign in and find your member id
Request the scopes openid profile w_member_social. The sub field from the OpenID userinfo endpoint is your member id, and your author URN is urn:li:person followed by it.
Post to /rest/posts
With that person URN as the author. The Page from step 1 never appears in the request.
# Who signed in: "sub" is your member id
curl https://api.linkedin.com/v2/userinfo \
-H "Authorization: Bearer $LINKEDIN_TOKEN"
# Post to your own profile
curl -i -X POST https://api.linkedin.com/rest/posts \
-H "Authorization: Bearer $LINKEDIN_TOKEN" \
-H "LinkedIn-Version: 202608" \
-H "X-Restli-Protocol-Version: 2.0.0" \
-H "Content-Type: application/json" \
-d '{
"author": "urn:li:person:YOUR_SUB",
"commentary": "Posted to my own profile, no Company Page involved.",
"visibility": "PUBLIC",
"distribution": {
"feedDistribution": "MAIN_FEED",
"targetEntities": [],
"thirdPartyDistributionChannels": []
},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}'The new post URN comes back in the x-restli-id response header. 202608 is a version that works as of September 2026; LinkedIn retires each version after about a year, covered in why the LinkedIn API returns 426 NONEXISTENT_VERSION.
What the Page does not change
Associating a Page gets the app registered. It does not enable Company Page posting, and it does not remove the other limits of the self-serve route:
- 60-day tokens, no refresh token. Every member signs in again every 60 days. See why the token expires after 60 days.
- No scheduling. The posting API publishes when you call it, so scheduled posts need your own queue. See does the LinkedIn API support scheduling.
- Reserved characters. Parentheses, brackets and a dozen others must be escaped in the text or the post can be cut off. See why a post gets cut off at a parenthesis.
Posting as a company is a separate application
If you need posts to appear as a Company Page, that takes the Community Management API and a LinkedIn review, whatever Page your app is associated with.Or skip the app and the Page
With OpenTweet you register nothing with LinkedIn. Go to Settings > Accounts > Connect LinkedIn, sign in with LinkedIn once and approve. OpenTweet runs the developer app, so there is no Page to create, no products to add and no version header to maintain.
curl -X POST https://opentweet.io/api/v1/posts \
-H "Authorization: Bearer ot_your_key" \
-H "Content-Type: application/json" \
-d '{
"text": "Posted to my own profile, no Company Page involved.",
"platforms": ["linkedin"],
"publish_now": true
}'The result comes back per network in results[], and the LinkedIn post_id is the post URN, such as urn:li:share:7300000000000000000. Use scheduled_date instead of publish_now to schedule it, and add "x" or "bluesky" to post the same text there.
OpenTweet posts to your personal profile only; Company Pages are not supported. The sign-in lasts 60 days, then a one-click reconnect. Text is up to 3,000 characters, and a thread goes out as one post.
7-day free trial. Cancel anytime.
Frequently asked questions
Can I use the LinkedIn API without a Company Page?
For the posting itself, yes: posts to your own personal profile do not involve a Company Page. But every LinkedIn developer app has to be associated with a LinkedIn Page, even one that only posts to personal profiles, so you need a Page to register the app. People without one create a basic Page for this.
Why does the LinkedIn developer app ask for a Company Page when I only want to post to my profile?
Associating a LinkedIn Page is a requirement for every developer app, regardless of what the app does. It applies to an app that only uses Share on LinkedIn to post to personal profiles, which is how OpenTweet registered its own app.
Will my API posts appear on the Page I associated with the app?
No. The post author is your member URN, urn:li:person followed by your member id, so the post goes to your personal profile feed. The Page is tied to the app, not to the posts.
Can I post to a Company Page with the self-serve products?
No. Posting as a Company Page needs the Community Management API, and LinkedIn reviews access to it. The self-serve Share on LinkedIn product covers posting to your own personal profile only.
Do I need a LinkedIn Page or developer app to post through OpenTweet?
No. You connect LinkedIn in Settings > Accounts with one LinkedIn sign-in. OpenTweet runs the developer app, so there is no app or Page on your side. Posts go to your personal profile; Company Pages are not supported.
Keep exploring
What the self-serve LinkedIn route gives you, and what it leaves for you to build.
Do I need partner approval?
Not for your own profile. Company Pages are where LinkedIn review sits.
Why the token expires after 60 days
No refresh token on self-serve apps, and what that means for any scheduler.
LinkedIn API 426 NONEXISTENT_VERSION
The LinkedIn-Version header names a retired or unreleased version. How to pick one that works.
Does the LinkedIn API schedule posts?
No scheduled-publish field. What you build instead, or the one-call alternative.
LinkedIn scheduler
Schedule LinkedIn posts from the OpenTweet composer or the API.
Post to your LinkedIn profile. No app, no Page.
One LinkedIn sign-in, then one API call. LinkedIn is on every plan from $11.99 a month.
7-day free trial. Cancel anytime.