ReelspanUpload guidesLinkedIn

Post to LinkedIn automatically

Connect LinkedIn once, then send videos, photos, text posts and PDFs to it from code, a workflow or an AI agent. The same call can post to every other network at the same time.
Sign in with LinkedIn3,000 characters1:116:97 sections

01

Connect LinkedIn

  1. In the dashboard, open Accounts and pick LinkedIn.
  2. Sign in with LinkedIn and allow Reelspan to post as you and for the Company Pages you admin.
  3. The account joins the profile you had open; every post to that profile can now include it.

Posting for clients? Send them a connect link so they connect their own LinkedIn account without a Reelspan login.

02

Get an API key

In the dashboard, open Developers → API keys and create one. Keep it in an environment variable such as REELSPAN_KEY; never in code you share.

03

Post with one request

Send the video as a file, or as a public URL like below. Add more platform[] fields to post the same thing everywhere at once.

curl
curl -X POST https://api.reelspan.com/v1/posts/video \
  -H "Authorization: Bearer $REELSPAN_KEY" \
  -F user=my-brand \
  -F "platform[]=linkedin" \
  -F "video=https://example.com/clip.mp4" \
  -F "title=Your post text" \
  -F "target_linkedin_page_id=…"
JavaScript (Node 18+)
const form = new FormData();
form.append('user', 'my-brand');
form.append('platform[]', 'linkedin');
form.append('video', 'https://example.com/clip.mp4');
form.append('title', 'Your post text');

const res = await fetch('https://api.reelspan.com/v1/posts/video', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.REELSPAN_KEY}` },
  body: form,
});
console.log(await res.json());
Python
import os, requests

res = requests.post(
    "https://api.reelspan.com/v1/posts/video",
    headers={"Authorization": f"Bearer {os.environ['REELSPAN_KEY']}"},
    files=[
        ("user", (None, "my-brand")),
        ("platform[]", (None, "linkedin")),
        ("video", (None, "https://example.com/clip.mp4")),
        ("title", (None, "Your post text")),
    ],
)
print(res.json())

linkedin_title sets the text for LinkedIn only, when it should differ from the other networks’.

04

LinkedIn options

target_linkedin_page_id
Post as a Company Page instead of yourself.
linkedin_visibility
Who sees it.
document_title
The title of a PDF document post.
linkedin_poll_question
A poll, with its options and duration.
  • Post as yourself or as a Company Page you admin.
  • PDFs go out as a swipeable document post.
  • The first two lines show before “see more”: lead with the hook.

Every field, with its limits: the docs.

05

Schedule it and check the result

  • Add scheduled_date (ISO 8601) and timezone to post later, or add_to_queue=true to take the next slot of your posting schedule.
  • The response has LinkedIn’s status and the post’s link. For big files send async_upload=true and check GET /v1/posts/status?request_id=…, or get a signed webhook when it’s live.
  • If LinkedIn refuses a post, the error says why in plain words, and you can retry just that network.

06

Without code

07

Ideas

  • Turn a slide deck PDF into a swipeable document post.
  • Post to your profile and your Company Page from the same call.

More on LinkedIn: what you can post there. Other networks: all upload guides.

Questions?Talk to a person.Contact us