LinkedIn API

LinkedIn posting API: profiles, Pages, and social media agents

Blotato's LinkedIn posting API publishes to a personal profile or a company Page from one request, and turns a list of image URLs into a LinkedIn document carousel for you.

LinkedIn gates publishing through its own API behind partner program approval. Here, you connect a LinkedIn account and post.

REST
POST https://backend.blotato.com/v2/posts
Auth
blotato-api-key: YOUR_API_KEY
MCP
https://mcp.blotato.com/mcp

Updated September 2026. API access is included on every paid plan and excluded from the free trial.

What the LinkedIn posting API does in Blotato

POST /v2/posts with targetType linkedin publishes to the personal profile by default. Add target.pageId from the subaccounts endpoint to publish to a company Page instead. Text runs to 3,000 characters. Pass 2 to 10 JPG or PNG URLs and Blotato builds the PDF-based document carousel LinkedIn uses now. Video is MP4, 3 seconds to 30 minutes, up to 500 MB.

Profile or Page from one field

Omit pageId for the personal profile. Set it to a subaccount id for a company Page. Nothing else in the request changes.

Document carousels without the upload dance

LinkedIn's own flow registers an upload, uploads the document, then references its URN in the post. You send image URLs. Maximum 10 images, and no video inside a carousel.

Scheduling into the calendar

scheduledTime queues the post. useNextFreeSlot drops it into the next open slot you have configured for LinkedIn. PATCH /schedules/:id moves it later.

A status you can act on

GET /posts/:postSubmissionId returns published with the public URL, or failed with the error message LinkedIn gave, so an agent can retry or stop.

What you will not get on LinkedIn, said plainly

LinkedIn is the one platform where Blotato returns no analytics. GET /analytics and GET /posts/:id/analytics cover the other eight, and LinkedIn returns no metrics yet. If post-level LinkedIn numbers are why you are here, this is the wrong page, and it is better you know that now than after the integration.

Comments and DMs are Instagram and Facebook only, so the LinkedIn surface is publishing and scheduling. That is still the part LinkedIn makes hardest to get.

POST https://backend.blotato.com/v2/posts
{
  "post": {
    "accountId": "98432",
    "content": {
      "text": "Five things our agent does before 9am. A carousel.",
      "mediaUrls": [
        "https://cdn.example.com/slide-1.png",
        "https://cdn.example.com/slide-2.png",
        "https://cdn.example.com/slide-3.png"
      ],
      "platform": "linkedin"
    },
    "target": {
      "targetType": "linkedin",
      "pageId": "123456789"
    }
  }
}

Response: { "postSubmissionId": "uuid" }, a receipt. Poll GET /posts/:postSubmissionId for published or failed. Every field: help.blotato.com/api/llm. LinkedIn's own reference: the LinkedIn API docs.

The LinkedIn problems that disappear behind one key

  • Partner-program approval is already held. LinkedIn's Marketing Developer Platform and Community Management API both require an application and approval before you can publish. Blotato holds that access, so you connect an account.
  • The carousel format LinkedIn actually uses. The document carousel is a PDF under the hood. Blotato builds it from plain image URLs, the same URLs you would send to Instagram.
  • Profile and every Page get their own daily cap. Blotato's 50-post cap counts per profile and per company Page independently, so a founder account and three Pages do not share one cap.

Publishing to LinkedIn in four steps

  1. Connect LinkedIn. Sign in to Blotato and connect the LinkedIn login. Company Pages you administer show up as subaccounts.
  2. Generate an API key. Generate a key on the API tab under Settings. It ends the free trial and starts paid Starter, because the trial does not include the API.
  3. Decide profile or Page. GET /users/me/accounts/:accountId/subaccounts lists your Pages. Use an id as pageId, or omit it for the profile.
  4. POST and poll. Send the request above and poll GET /posts/:postSubmissionId. published carries the public URL, failed carries LinkedIn's reason.

For an agent rather than a script, the LinkedIn publishing tools are on the MCP server at https://mcp.blotato.com/mcp. Setup per client is on the LinkedIn MCP server page, and the walkthrough of posting to LinkedIn from Claude shows the prompt-to-post flow. A prompt like "Turn these five slides into a LinkedIn document carousel on our company Page and schedule it for Tuesday at 8am." calls the same endpoint this page documents.

See every plan and its limits

LinkedIn posting caps, formats, and price

Blotato limits publishing to 50 posts per 24 hours per profile and per company Page, each counted separately.

LinkedIn limitValue through Blotato
Blotato daily cap50 posts per profile and per company Page per 24 hours
Text3,000 characters
Imagesup to 5 MB, 1.91:1 recommended
VideoMP4, 75 KB to 500 MB, 3 seconds to 30 minutes, up to 60 fps and 30 Mbps
Document carousel2 to 10 JPG or PNG images, no video
Off-spec videoconverted by Blotato only under 120 seconds

LinkedIn's own API has no per-call fee, and partner approval is the real price. That process, and the request shape you would write against LinkedIn's Posts API if you got in, is covered in the LinkedIn API pricing guide.

On LinkedIn, this API covers publishing and scheduling. Analytics is not available for LinkedIn yet. Comments, DMs and DM automation are Instagram and Facebook only. Caps are listed at help.blotato.com/settings/social-accounts.

MCP tools that reach LinkedIn

The tool names an agent calls on the MCP server for this platform, verbatim from the server's tool list. The REST endpoint behind each one is in the API reference.

  • blotato_list_accounts
  • blotato_create_post
  • blotato_get_post_status
  • blotato_list_posts
  • blotato_list_schedules
  • blotato_get_schedule
  • blotato_update_schedule
  • blotato_delete_schedule
  • blotato_create_presigned_upload_url
FAQ

LinkedIn posting API FAQs

01 Can I post to a LinkedIn company Page through the API?
Yes. Fetch the Page id from GET /users/me/accounts/:accountId/subaccounts and set it as target.pageId. Omit pageId and the post goes to the personal profile instead.
02 Does Blotato's LinkedIn API return analytics?
No. LinkedIn returns no metrics yet, so GET /analytics and GET /posts/:id/analytics cover the other eight platforms and not LinkedIn. Publishing and scheduling are the LinkedIn surface.
03 How do I post a carousel to LinkedIn through the API?
Send 2 to 10 JPG or PNG URLs in content.mediaUrls. Blotato converts them into a LinkedIn document carousel, the PDF-based format viewers swipe through. Video is not supported inside a carousel.
04 Do I need LinkedIn Marketing Developer Platform approval to use this?
No. Blotato holds the LinkedIn integration and its approvals. You connect a LinkedIn account through a normal login and publish with the same POST /v2/posts call used for the other eight platforms.

Same key, eight more platforms

LinkedIn is one targetType on the same endpoint. The social media API page has the comparison table of every platform's required fields and caps.