Design & media

Upload-Post

Try it

Post videos, photos, text, and documents to 10 social platforms through a single REST API call.

What it does

Post content to multiple social media platforms with one API call. Supports uploading videos, photo carousels, text-only posts, and LinkedIn document posts (PDF/PPT/DOC up to 100MB). Includes scheduled posting, history retrieval, upload status checks, and analytics for followers, impressions, reach, profile views and time-series data. Also provides an FFmpeg media-processing endpoint, plus utilities for listing Facebook pages, LinkedIn pages, Pinterest boards, and Reddit posts with media.

When to use it

  • Publishing the same short video to TikTok, Instagram, and YouTube in one request
  • Scheduling a cross-platform campaign with mixed photo+video carousels
  • Uploading a PDF or slide deck as a native LinkedIn carousel document post
  • Pulling followers, impressions, and reach across platforms from a single analytics endpoint

The skill document

Upload-Post API

Post content to multiple social media platforms with a single API call.

Documentation

Setup

  1. Create account at upload-post.com
  2. Connect your social media accounts
  3. Create a Profile (e.g., "mybrand") - this links your connected accounts
  4. Generate an API Key from dashboard
  5. Use the profile name as user parameter in API calls

Authentication

Authorization: Apikey YOUR_API_KEY

Base URL: https://api.upload-post.com/api

The user parameter in all endpoints refers to your profile name (not username), which determines which connected social accounts receive the content.

Endpoints Reference

EndpointMethodDescription
/upload_videosPOSTUpload videos
/upload_photosPOSTUpload photos/carousels
/upload_textPOSTText-only posts
/upload_documentPOSTUpload documents (LinkedIn only)
/uploadposts/status?request_id=XGETCheck async upload status
/uploadposts/historyGETUpload history
/uploadposts/scheduleGETList scheduled posts
/uploadposts/schedule/DELETECancel scheduled post
/uploadposts/schedule/PATCHEdit scheduled post
/uploadposts/meGETValidate API key
/analytics/GETGet analytics
/uploadposts/facebook/pagesGETList Facebook pages
/uploadposts/linkedin/pagesGETList LinkedIn pages
/uploadposts/pinterest/boardsGETList Pinterest boards
/uploadposts/reddit/detailed-postsGETGet Reddit posts with media
/ffmpegPOSTProcess media with FFmpeg

Upload Videos

curl -X POST "https://api.upload-post.com/api/upload_videos" \
  -H "Authorization: Apikey YOUR_KEY" \
  -F "user=profile_name" \
  -F "platform[]=instagram" \
  -F "platform[]=tiktok" \
  -F "video=@video.mp4" \
  -F "title=My caption"

Key parameters:

  • user: Profile username (required)
  • platform[]: Target platforms (required)
  • video: Video file or URL (required)
  • title: Caption/title (required)
  • description: Extended description
  • scheduled_date: ISO-8601 date for scheduling
  • timezone: IANA timezone (e.g., "Europe/Madrid")
  • async_upload: Set true for background processing
  • first_comment: Auto-post first comment

Upload Photos

curl -X POST "https://api.upload-post.com/api/upload_photos" \
  -H "Authorization: Apikey YOUR_KEY" \
  -F "user=profile_name" \
  -F "platform[]=instagram" \
  -F "photos[]=@photo1.jpg" \
  -F "photos[]=@photo2.jpg" \
  -F "title=My caption"

Instagram & Threads support mixed carousels (photos + videos in same post).

Upload Text

curl -X POST "https://api.upload-post.com/api/upload_text" \
  -H "Authorization: Apikey YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user": "profile_name",
    "platform": ["x", "threads", "bluesky"],
    "title": "My text post"
  }'

Supported: X, LinkedIn, Facebook, Threads, Reddit, Bluesky.

Upload Document (LinkedIn only)

Upload PDFs, PPTs, DOCs as native LinkedIn document posts (carousel viewer).

curl -X POST "https://api.upload-post.com/api/upload_document" \
  -H "Authorization: Apikey YOUR_KEY" \
  -F "user=profile_name" \
  -F 'platform[]=linkedin' \
  -F "document=@presentation.pdf" \
  -F "title=Document Title" \
  -F "description=Post text above document"

Parameters:

  • document: PDF, PPT, PPTX, DOC, DOCX (max 100MB, 300 pages)
  • title: Document title (required)
  • description: Post commentary
  • visibility: PUBLIC, CONNECTIONS, LOGGED_IN, CONTAINER
  • target_linkedin_page_id: Post to company page

Supported Platforms

PlatformVideosPhotosTextDocuments
TikTok--
Instagram--
YouTube---
LinkedIn
Facebook-
X (Twitter)-
Threads-
Pinterest--
Reddit--
Bluesky-

Upload History

curl "https://api.upload-post.com/api/uploadposts/history?page=1&limit=20" \
  -H "Authorization: Apikey YOUR_KEY"

Parameters:

  • page: Page number (default: 1)
  • limit: 10, 20, 50, or 100 (default: 10)

Returns: upload timestamp, platform, success status, post URLs, errors.

Scheduling

Add scheduled_date parameter (ISO-8601):

{
  "scheduled_date": "2026-02-01T10:00:00Z",
  "timezone": "Europe/Madrid"
}

Response includes job_id. Manage with:

  • GET /uploadposts/schedule - List all scheduled
  • DELETE /uploadposts/schedule/ - Cancel
  • PATCH /uploadposts/schedule/ - Edit (date, title, caption)

Check Upload Status

For async uploads or scheduled posts:

curl "https://api.upload-post.com/api/uploadposts/status?request_id=XXX" \
  -H "Authorization: Apikey YOUR_KEY"

Or use job_id for scheduled posts.

Analytics

curl "https://api.upload-post.com/api/analytics/profile_name?platforms=instagram,tiktok" \
  -H "Authorization: Apikey YOUR_KEY"

Supported: Instagram, TikTok, LinkedIn, Facebook, X, YouTube, Threads, Pinterest, Reddit, Bluesky.

Returns: followers, impressions, reach, profile views, time-series data.

Get Pages/Boards

# Facebook Pages
curl "https://api.upload-post.com/api/uploadposts/facebook/pages" \
  -H "Authorization: Apikey YOUR_KEY"

# LinkedIn Pages  
curl "https://api.upload-post.com/api/uploadposts/linkedin/pages" \
  -H "Authorization: Apikey YOUR_KEY"

# Pinterest Boards
curl "https://api.upload-post.com/api/uploadposts/pinterest/boards" \
  -H "Authorization: Apikey YOUR_KEY"

Reddit Detailed Posts

Get posts with full media info (images, galleries, videos):

curl "https://api.upload-post.com/api/uploadposts/reddit/detailed-posts?profile_username=myprofile" \
  -H "Authorization: Apikey YOUR_KEY"

Returns up to 2000 posts with media URLs, dimensions, thumbnails.

FFmpeg Editor

Process media with custom FFmpeg commands:

curl -X POST "https://api.upload-post.com/api/ffmpeg" \
  -H "Authorization: Apikey YOUR_KEY" \
  -F "file=@input.mp4" \
  -F "full_command=ffmpeg -y -i {input} -c:v libx264 -crf 23 {output}" \
  -F "output_extension=mp4"
  • Use {input} and {output} placeholders
  • Poll job status until FINISHED
  • Download result from /ffmpeg/job//download
  • Supports multiple inputs: {input0}, {input1}, etc.

Quotas: Free 30min/mo, Basic 300min, Pro 1000min, Advanced 3000min, Business 10000min.

Platform-Specific Parameters

See references/platforms.md for detailed platform parameters.

Media Requirements

See references/requirements.md for format specs per platform.

Error Codes

CodeMeaning
400Bad request / missing params
401Invalid API key
404Resource not found
429Rate limit / quota exceeded
500Server error

Notes

  • Videos auto-switch to async if >59s processing time
  • X long text creates threads unless x_long_text_as_post=true
  • Facebook requires Page ID (personal profiles not supported by Meta)
  • Instagram/Threads support mixed carousels (photos + videos)

Questions people ask

Which platforms are supported?
TikTok, Instagram, YouTube, LinkedIn, Facebook, X, Threads, Pinterest, Reddit, and Bluesky. Media-type support varies per platform — see the compatibility table in the docs (e.g., YouTube is video-only, Reddit supports photos and text but not video uploads).
How does authentication work?
Send your API key as `Authorization: Apikey YOUR_KEY` on calls to the base URL `https://api.upload-post.com/api`. The required `user` parameter is the profile name you created in the Upload-Post dashboard, which determines which connected accounts receive the post.
Can I schedule posts in advance?
Yes. Add `scheduled_date` (ISO-8601) and `timezone` (IANA, e.g. `Europe/Madrid`) to any upload call. Manage queued jobs via `GET /uploadposts/schedule`, `DELETE /uploadposts/schedule/{job_id}` to cancel, and `PATCH /uploadposts/schedule/{job_id}` to edit the date or caption.

Related skills

Schedule, draft, or publish social posts across 9 platforms via the AdaptlyPost API, with explicit confirmation before every post.

97 installs3 stars

Publish, schedule, and manage posts across Twitter/X, Facebook, Instagram, LinkedIn, TikTok, and YouTube from one API.

36 installs

Publish and schedule social media posts across LinkedIn, Bluesky, Instagram, TikTok, Pinterest, YouTube Shorts and Mastodon, then verify delivery with per-post receipts. Uses the Postlia REST API.

1 installs

Create, schedule, and publish social posts across nine platforms from your terminal.

25 installs

Generate, schedule, and publish posts across 15 platforms — X, LinkedIn, Instagram, Threads, Facebook, YouTube, TikTok, Pinterest, Bluesky, Mastodon, Discord, Telegram, Tumblr, Google Business, and Slack — in your voice using AI. Manage preferences and track billing.

33 installs

Create, schedule, and manage social media posts across Instagram, Facebook, X/Twitter, LinkedIn, and TikTok via the Social by InstantDM API and hosted MCP se...

2 installs