LinkedIn Post API Publish to Profiles & Company Pages Programmatically
The LinkedIn posting API without the Marketing API headache. One REST endpoint to upload videos and images to personal profiles and company pages — with visibility controls, first comment and scheduling.
import { UploadPost } from 'upload-post';
const uploader = new UploadPost('your-api-key');
await uploader.upload('video.mp4', {
title: 'Professional Update',
visibility: 'PUBLIC',
platforms: ['linkedin']
}); LinkedIn Posting API — Everything Included
A complete API to automate your LinkedIn content
LinkedIn Video Upload API
Upload native videos to LinkedIn with one REST call. Send a local file or a public video URL — we handle the upload, processing and publishing.
Image & Document Posts
Publish images alongside professional commentary, or share documents and PDF carousels programmatically through the same endpoint.
Profiles & Company Pages
Post to a personal profile or target a company / organization page with target_linkedin_page_id — both from the same LinkedIn post API.
Visibility Controls
Choose who sees the post: PUBLIC, CONNECTIONS, LOGGED_IN or CONTAINER — set per request via the visibility parameter.
Automatic First Comment
Drop a link or source into the first comment automatically with first_comment (or linkedin_first_comment) right after publishing.
Schedule & Queue
Schedule LinkedIn posts with scheduled_date or drop them into your auto-publishing queue for consistent B2B reach.
Post to LinkedIn via API
One POST request to /api/upload — send a file or a public URL
curl -X POST https://api.upload-post.com/api/upload \
-H 'Authorization: Apikey your-api-key-here' \
-F 'user=my-profile' \
-F 'platform[]=linkedin' \
-F 'video=@/path/to/video.mp4' \
-F 'title=A professional insight on industry trends' \
-F 'description=Here is what we learned shipping our API this quarter.' \
-F 'visibility=PUBLIC' \
-F 'target_linkedin_page_id=107579166' {
"success": true,
"results": {
"linkedin": {
"success": true,
"video_urn": "urn:li:video:C123456789",
"video_was_transcoded": true
}
},
"usage": { "count": 12, "limit": 100 }
}
Prefer a full walkthrough? Follow our
step-by-step LinkedIn API guide.
Long uploads switch to background automatically — poll the
Upload Status
endpoint with your request_id. Full reference in the
Upload Video API docs.
Want a full walkthrough? Read our step-by-step guide to post to LinkedIn via API for profiles and company pages, with code and scheduling.
Pro tip: post to a company page, not just your profile
Add target_linkedin_page_id to the request and the post publishes to your
organization / company page instead of your personal profile. The same LinkedIn post API handles both —
so you can run a brand page and a founder profile from one integration, each with its own
visibility and commentary.
Rule of thumb: use the first comment (first_comment) for links and sources —
LinkedIn tends to suppress reach on posts with outbound links in the main body, so moving the link into the first comment
keeps the post in the feed while still pointing readers where you want.
LinkedIn API Parameters
The most-used fields for the LinkedIn upload endpoint
| Parameter | Type | Required | Description |
|---|---|---|---|
| video | File / URL | Yes | The video file (multipart) or a public video URL to publish to LinkedIn. |
| visibility | String | Yes | Who can see the post: PUBLIC, CONNECTIONS, LOGGED_IN or CONTAINER. Defaults to PUBLIC. |
| linkedin_title / title | String | No | Title for the LinkedIn post. linkedin_title overrides the global title. |
| linkedin_description / description | String | No | Sent as the LinkedIn commentary (post body). If omitted, the title is reused. |
| target_linkedin_page_id | String | No | LinkedIn organization / company page ID to publish to instead of the personal profile. |
| first_comment / linkedin_first_comment | String | No | Automatically post a first comment after publishing — ideal for links or sources. |
| scheduled_date | ISO-8601 | No | Future date/time to schedule the publish (≤ 365 days ahead). |
| add_to_queue | Boolean | No | Drop the post into your next available auto-publishing queue slot. |
See the complete parameter list in the API documentation.
Start Posting to LinkedIn in Minutes
Three steps to integrate the LinkedIn Post API
Create your account
Sign up for Upload-Post and grab your API key from the dashboard.
Connect LinkedIn
Authorize your LinkedIn profile and any company pages once — we manage the OAuth and Marketing API access.
Post programmatically
POST to /api/upload with platform[]=linkedin and your video. Done.
LinkedIn Post API — FAQ
Common questions about posting to LinkedIn programmatically
Is there a LinkedIn post API?
Yes. Upload-Post exposes a LinkedIn posting API through a single REST endpoint (POST /api/upload). You send your video or image with platform[]=linkedin and we publish it to the connected LinkedIn profile or company page. You avoid building your own LinkedIn developer app, OAuth flow and Marketing API integration.
How do I post to LinkedIn via API?
Send a multipart POST request to https://api.upload-post.com/api/upload with your API key in the Authorization header, user (your profile), platform[]=linkedin, the video field (a file or a public URL) and a visibility value. The API returns the result for each platform. A working curl example is shown above. For a full walkthrough see our step-by-step LinkedIn API guide.
Can I post to a LinkedIn company / organization page?
Yes. Pass target_linkedin_page_id with the ID of the organization page and the post is published to that company page instead of your personal profile. This makes the LinkedIn company page API available without writing your own Marketing API integration.
Can I upload video to LinkedIn via API?
Yes. The LinkedIn video upload API accepts a multipart video file or a public video URL in the video field. We handle the LinkedIn upload, processing and publishing so you can post to LinkedIn programmatically with one request.
What visibility options are available?
The visibility parameter accepts PUBLIC (visible to anyone), CONNECTIONS (your network only), LOGGED_IN (any logged-in LinkedIn member) and CONTAINER. It defaults to PUBLIC and is set per request.
Can I schedule LinkedIn posts with the API?
Yes. Add a scheduled_date (ISO-8601, up to 365 days in the future) to schedule the post, or use add_to_queue to drop it into your next available auto-publishing slot. This gives you a LinkedIn API schedule post workflow without a separate scheduler.
Do I need a LinkedIn developer app?
No. Upload-Post operates an approved LinkedIn integration, so you connect your LinkedIn profile and company pages and start posting without submitting your own app for LinkedIn Marketing API review.
How much does the LinkedIn post API cost?
You can create an account, generate an API key and connect LinkedIn for free with no credit card. See the pricing page for current plans and upload limits.
Ready to automate your LinkedIn presence?
Start posting to LinkedIn profiles and company pages programmatically today. No credit card required.
Create Free AccountPrefer an AI agent? Use the LinkedIn Claude Code skill or the LinkedIn MCP server.