Skip to content
reelspanDocs

Networks

Post to LinkedIn

Publish LinkedIn posts through the API, as text, video, up to 20 images or a document carousel (PDF, PowerPoint, Word), with visibility and reshare settings.

GETapi.reelspan.com/v1/linkedin/pagesTry it →

Reelspan posts to LinkedIn with LinkedIn's Posts, Videos, Images and Documents APIs, as the member who connected the account. You send the post once; Reelspan uploads the media, waits for LinkedIn to process it, and creates the post.

What you can post

Post How Notes
Text post POST /v1/posts/text Up to 3,000 characters
Video post POST /v1/posts/video
Image post POST /v1/posts/photos One image, or up to 20 in a multi-image post
Document POST /v1/posts/document A PDF, PowerPoint or Word file shown as a swipeable carousel

Reelspan handles for you:

  • LinkedIn's text format. LinkedIn treats characters such as ( ) [ ] { } < > @ * _ ~ | as markup; Reelspan escapes them so your text shows as written, and turns #hashtags into real LinkedIn hashtags.
  • Multipart video upload in the parts LinkedIn asks for, then a wait while LinkedIn processes the video (up to 15 minutes) or document (up to 10 minutes).
  • Images in parallel, kept in the order you sent them.

Connect the account

LinkedIn connects with a LinkedIn sign-in: in the dashboard go to Accounts → LinkedIn, or send a white-label connect link. Posts go to the personal profile of the member who signed in.

LinkedIn sign-ins last 60 days and LinkedIn gives no way to renew them, so the account has to be reconnected every 60 days. Reelspan marks it as needing a reconnect when it expires.

Company pages

Posting as a LinkedIn company page needs LinkedIn's Community Management API, which Reelspan doesn't have access to yet. Until it does, GET /v1/linkedin/pages returns an empty list and posts go to the member's profile.

curl "https://api.reelspan.com/v1/linkedin/pages?profile=my-brand" \
  -H "Authorization: Bearer $REELSPAN_API_KEY"
{ "success": true, "pages": [] }

Example

A PDF posted as a document carousel, visible to connections only:

curl -X POST https://api.reelspan.com/v1/posts/document \
  -H "Authorization: Bearer $REELSPAN_API_KEY" \
  -F "user=my-brand" \
  -F "platform[]=linkedin" \
  -F "title=2026 hiring guide" \
  -F "description=We put everything we learned about hiring engineers into 12 slides. #hiring #engineering" \
  -F "visibility=CONNECTIONS" \
  -F "[email protected]"

Fields

Field Type Values What it does
linkedin_title string up to 3,000 characters The post text when there is no description. Falls back to title. On a video post it is also the video's title (first 400 characters).
linkedin_description string up to 3,000 characters The post text; takes the place of linkedin_title when both are sent. Falls back to description.
visibility string PUBLIC (default), CONNECTIONS, LOGGED_IN Who can see the post. linkedin_visibility works too.
linkedin_disable_reshare boolean default false Stops others from resharing the post.
document_title string up to 400 characters Documents: the document's title. Falls back to title, then the file name.
linkedin_alt_text string or list up to 4,086 characters each Image alt text: one for every image, or one per image in order. Falls back to alt_text.
target_linkedin_page_id string an organization id Posts as a company page. Not usable until company pages are available (see above).
linkedin_first_comment string up to 1,250 characters A comment posted under the new post. Falls back to first_comment.

On a document post, title names the document and the post text comes from description (or linkedin_description). The first two lines of the text show before "see more", so lead with the hook.

Limits

  • Post text: 3,000 characters.
  • Images: up to 20 per post; more are left out.
  • Documents: PDF, PPTX, PPT, DOCX or DOC, up to 100 MB.
  • Video size: your plan's upload limit (see Plans and limits).
  • Shapes: 1:1 and 16:9 work best.

Good to know

  • Result extras: video_urn, image_urns, or document_urn with content_type, file_size and filename.
  • First comment: posted under the new post as the member.
  • Analytics: the member's follower count, when your Reelspan workspace has LinkedIn statistics turned on (an account connected before that has to be reconnected). There are no per-post numbers.

Errors

error_code What happened What to do
reauth_required The 60-day sign-in expired or was revoked Reconnect LinkedIn.
linkedin_upload_failed LinkedIn refused an uploaded part of the video, image or document Reelspan retries server errors; otherwise post again.
linkedin_processing_failed LinkedIn couldn't process the video or document Check the file and post again.
linkedin_processing_timeout LinkedIn took more than 15 minutes (10 for documents) Reelspan retries it.
linkedin_version_sunset LinkedIn stopped accepting the API version Reelspan uses Contact Reelspan support.
linkedin_error LinkedIn refused the post Read error for LinkedIn's message.
media_required A video or photo post arrived without media Send the media, or post with POST /v1/posts/text.

Parameters

  • profilestring · query
  • profile_usernamestring · query
  • userstring · query

Responses

200 Result

{}

400 Invalid input

{
  "success": false,
  "message": "string",
  "error": "string",
  "error_code": "string"
}

404 Not found

{
  "success": false,
  "message": "string",
  "error": "string",
  "error_code": "string"
}

Something unclear or missing? Write to [email protected] and we’ll fix the page.