Skip to Content

LinkedIn Upload API

This section details how to upload text posts, photos, videos, and document carousels to LinkedIn personal profiles and company pages.

Base URL

https://api.multi-upload-tool.com/api/v1

Authentication

All requests require an API Token in the header: x-api-key: YOUR_API_TOKEN


Personal Profiles & Company Pages

LinkedIn personal profiles and company pages are both connected as separate accounts. When you connect a LinkedIn company page, it appears as its own account with its own accountId. You simply post to that account directly — there is no need for a separate targetPageId parameter.


Important: Title vs Description

On LinkedIn, the description field is what appears as the body text of the post. This is the main content your audience sees.

The title field is not published to LinkedIn. It is only used internally within the Multi Upload Tool UI (e.g. in the upload history, pools, and scheduling views) to help you identify your posts. If you want text to appear on LinkedIn, put it in description.

FieldWhere it appears
descriptionPublished as the LinkedIn post body text (commentary)
titleInternal label only (visible in Multi Upload Tool UI, pools, history)

Text Formatting

The API automatically converts Markdown-style formatting to Unicode characters that render as bold and italic on LinkedIn.

SyntaxResultExample
**text**Bold**Hello** renders as bold on LinkedIn
*text*Italic*Hello* renders as italic on LinkedIn
***text***Bold Italic***Hello*** renders as bold italic on LinkedIn

This conversion happens automatically. You simply write your description using standard Markdown bold/italic syntax.

Example

**Big News!** We're launching *something amazing* this week. Check out our ***brand new product*** now.

Notes

  • Accented characters (e, a, etc.) are not converted as there are no Unicode bold/italic equivalents for diacritics.
  • Emojis, punctuation, and special characters pass through unchanged.
  • Bullet points (* item) are not mistakenly converted to italic.
  • Hashtags (#topic) and mentions work normally alongside formatting.

Requirements

LinkedIn Photo Requirements

  • File Format: JPEG, PNG, GIF, WebP
  • Max File Size: 10 MB

LinkedIn Video Requirements

  • File Format: MP4 (recommended), MOV, AVI, MKV
  • Max File Size: 500 MB
  • Duration: 3 seconds to 15 minutes (recommended)
  • File Format: PDF, DOC, DOCX, PPT, PPTX
  • Max File Size: 100 MB

Upload Text Post

Create a text-only post on LinkedIn.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncstringNoDefault "true". If "false", the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected LinkedIn account (personal profile or company page).
descriptionstringYesThe text content of the post. Supports **bold**, *italic*, ***bold italic***.
titlestringNoInternal label (not published to LinkedIn).
visibilitystringNoPUBLIC (default) or CONNECTIONS.

Example Request

curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \ --header 'x-api-key: YOUR_API_KEY' \ --form 'accountId="12345"' \ --form 'description="**Exciting news!** We just launched *something new*."' \ --form 'visibility="PUBLIC"'

Upload Photo

Upload a single photo to LinkedIn.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncstringNoDefault "true". If "false", the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected LinkedIn account (personal profile or company page).
photoFileYesThe image file to upload.
descriptionstringNoThe text content of the post. Supports **bold**, *italic*.
titlestringNoInternal label (not published to LinkedIn).
visibilitystringNoPUBLIC (default) or CONNECTIONS.

Example Request

curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \ --header 'x-api-key: YOUR_API_KEY' \ --form 'accountId="12345"' \ --form 'photo=@"/path/to/image.jpg"' \ --form 'description="Check out our new office! **We are hiring.**"' \ --form 'visibility="PUBLIC"'

Upload Video

Upload a video to LinkedIn.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncstringNoDefault "true". If "false", the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected LinkedIn account (personal profile or company page).
videoFileYesThe video file to upload (max 500 MB).
descriptionstringNoThe text content of the post. Supports **bold**, *italic*.
titlestringNoInternal label (not published to LinkedIn).
visibilitystringNoPUBLIC (default) or CONNECTIONS.

Example Request

curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \ --header 'x-api-key: YOUR_API_KEY' \ --form 'accountId="12345"' \ --form 'video=@"/path/to/video.mp4"' \ --form 'description="Watch our latest product demo"' \ --form 'visibility="PUBLIC"'

Upload a PDF or document to LinkedIn as a carousel post.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncstringNoDefault "true". If "false", the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected LinkedIn account (personal profile or company page).
photoFileYesThe document file (PDF, DOC, DOCX, PPT, PPTX).
descriptionstringYesThe text content displayed above the carousel. Supports **bold**, *italic*.
titlestringNoInternal label (not published to LinkedIn).
media_typestringNoSet to DOCUMENT for carousel uploads. Auto-detected from file extension if omitted.
visibilitystringNoPUBLIC (default) or CONNECTIONS.

Example Request

curl --location 'https://api.multi-upload-tool.com/api/v1/upload' \ --header 'x-api-key: YOUR_API_KEY' \ --form 'accountId="12345"' \ --form 'photo=@"/path/to/slides.pdf"' \ --form 'description="**5 tips** to *boost your productivity* this quarter"' \ --form 'media_type="DOCUMENT"' \ --form 'visibility="PUBLIC"'