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.

linkedin-upload.ts
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

Request — cURL
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'
Response — 200 OK
{
  "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

1

Create your account

Sign up for Upload-Post and grab your API key from the dashboard.

2

Connect LinkedIn

Authorize your LinkedIn profile and any company pages once — we manage the OAuth and Marketing API access.

3

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 Account

Prefer an AI agent? Use the LinkedIn Claude Code skill or the LinkedIn MCP server.