Video posts
Text with one MP4 video, up to 5 GB, which is also LinkedIn's own limit. Read the post back, or open History, for its link on LinkedIn.
LinkedIn posting
Status 200 Uploads publishes to your LinkedIn profile: a text post of up to 3,000 characters, or text with one image or one video, now or at a time you set. Post from the dashboard, the REST API, Python, n8n or an AI app such as Claude. You sign in on LinkedIn itself, and the post goes out through our own LinkedIn app.
Text with one MP4 video, up to 5 GB, which is also LinkedIn's own limit. Read the post back, or open History, for its link on LinkedIn.
Words only, up to 3,000 characters, with no file at all. Use it for an update, an announcement or a short article-style post.
Text with one image. The dashboard checks it against 10 MB; through the API, LinkedIn itself decides. If you send several files, only the first is attached: LinkedIn carousels are not supported.
Each setting by its name in the dashboard, its field in the REST API and its option in the AI connector. Every one here has been used in a real post or a dated live test.
| Setting | Dashboard | REST field | AI connector option | What it does |
|---|---|---|---|---|
| LinkedIn text | Post Text (optional override) | linkedin.text | text | Text for LinkedIn only, up to 3,000 characters, in place of the post text: a longer, more formal version than the one your other networks get, for example. |
When we change or flag something in a LinkedIn post, the answer (and History) names it with one of these codes. Your original file is never changed.
unknown_field: A field we do not read is not used, and the answer says so (with the field name we think you meant, when there is one). The post still goes out.
field_not_used: A field we read but could not use for this post (for example another network's block, or a setting that does not apply to this kind of post) is named in the answer. The post still goes out.
options_outside_post: An option sent next to "post" instead of inside it is not used, and the answer says where it belongs.
media_url_not_kept: A scheduled post that names its media by web address fetches the file when it goes out, and we keep no copy: the answer reminds you the file must still be there then.
posts_close_together: The answer warns when another LinkedIn post of the account is scheduled within 20 seconds: leave at least a minute between them.
caption_over_limit: In a dry run or a scheduled post, a caption longer than LinkedIn allows is flagged. We send it as it is; LinkedIn may refuse it or cut it short.
moved_to_next_day: When the daily limit of the profile is reached while a scheduled post is going out, the networks that did not fit move to the next day as a scheduled post of their own, and the post read back says so.
queued_for_next_day: On a plan with a daily limit, a post over the day's limit is queued for the next day instead of failing (answer 202), and the answer gives the time.
The same LinkedIn post from the dashboard, the REST API, Python, n8n or an AI app.
curl -X POST 'https://status200uploads.com/api/v2/posts' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer rl_your_api_key' \
-H 'Idempotency-Key: hiring-video-linkedin' \
-d '{
"post": {
"accountId": "@yourprofile",
"platform": "linkedin",
"content": {
"text": "We are hiring!",
"mediaID": ["YOUR_VIDEO_ID"]
},
"linkedin": {
"text": "We are hiring two engineers for our Berlin office. In this video the team explains what the work is like."
}
}
}'from status200uploads import Status200
s200 = Status200() # the key comes from STATUS200_API_KEY
post = {"accountId": "@myprofile", "platform": "linkedin", "content": {"text": "Hello from Python"}}
result = s200.publish(post, wait=True)
if result.final: # the post as last read: its status and link
print(result.final.get("status"), result.final.get("permalink"))
else: # scheduled or queued (result.code says which), or it could not be read back
print(result.code){
"post": {
"accountId": "@yourprofile",
"platform": "linkedin",
"content": {
"text": "{{ $json.summary }}",
"mediaID": ["{{ $json.imageId }}"]
}
}
}Turn this paragraph into a LinkedIn post and publish it tomorrow at 8:30 with the chart I uploaded.
The app writes the text, finds the chart with status200_list_media, checks the post with status200_validate_post (which flags text over LinkedIn's limit) and schedules it with status200_schedule_post. The answer gives the scheduled post's id, so you can change or cancel it before it goes out.
The code in the answer, what it means and what to do. Each one is in the API reference.
| HTTP | Code | What it means | What to do |
|---|---|---|---|
| 401 | reconnect_required | LinkedIn no longer accepts the saved sign-in; LinkedIn sign-ins expire after a while. | Reconnect LinkedIn under Connections and send the post again. |
| 500 | platform_error | LinkedIn refused the post, for example as a duplicate of a recent one; LinkedIn's reason is in the message. | Change the text if it is a duplicate. Under an Idempotency-Key the same answer is kept, so a retry never posts twice. |
| 413 | MEDIA_TOO_LARGE | The video is larger than LinkedIn takes. | Use a video of at most 5 GB. |
| 404 | media_not_found | The mediaID is not one of your files: never uploaded, deleted, or removed after 7 days. | Upload the file again and send its new mediaID. |
| 409 | idempotency_in_progress | A request with the same Idempotency-Key is still being sent. | Wait the seconds in Retry-After, then send the same request again to get its answer. |
Yes. Send a POST to https://status200uploads.com/api/v2/posts with platform linkedin and your API key, as in the example on this page. You need no LinkedIn developer app of your own, and the REST API is on every plan, Free included.
No. Posts go to the member profile of the LinkedIn account you sign in with; company pages are not supported.
No. A LinkedIn post has text and at most one file, an image or a video; if you send more, only the first is attached. LinkedIn carousels are not supported, and the answer says so when a carousel field is sent.
Yes. Write it under Post Text in the dashboard's LinkedIn settings, or send linkedin.text in the API, up to 3,000 characters. The other networks of the post keep the shared caption.
LinkedIn does not take the same post twice from one profile. The answer is 500 platform_error with LinkedIn's own reason in the message; change the text before you post it again.
Up to 5 GB, which is also LinkedIn's own limit. Images are checked at 10 MB in the dashboard; through the API, LinkedIn decides.
Yes, up to 365 days ahead from the dashboard, the API (post.scheduledFor) or an AI app, and you can change or cancel a scheduled post until it goes out.
LinkedIn is on every plan, Free included. Everything on this page was checked on 26 October 2026.