Upload Videos🎥, Photos📸 & Text🖊️ to TikTok, Instagram, YouTube, X, LinkedIn, Facebook, Threads, Pinterest, Reddit & Bluesky via Upload-Post API
Upload content to social media platforms via Upload-Post API. Use when posting videos, photos, text, or documents to TikTok, Instagram, YouTube, LinkedIn, Facebook, X (Twitter), Threads, Pinterest, Reddit, or Bluesky. Supports scheduling, analytics, FFmpeg processing, and upload history.
Install
Documentation
Upload-Post API
Post content to multiple social media platforms with a single API call.
Documentation
- -Full API docs: https://docs.upload-post.com
- -LLM-friendly: https://docs.upload-post.com/llm.txt
Setup
1. Create account at [upload-post.com](https://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
| Endpoint | Method | Description |
|----------|--------|-------------|
| /upload_videos | POST | Upload videos |
| /upload_photos | POST | Upload photos/carousels |
| /upload_text | POST | Text-only posts |
| /upload_document | POST | Upload documents (LinkedIn only) |
| /uploadposts/status?request_id=X | GET | Check async upload status |
| /uploadposts/history | GET | Upload history |
| /uploadposts/schedule | GET | List scheduled posts |
| /uploadposts/schedule/<job_id> | DELETE | Cancel scheduled post |
| /uploadposts/schedule/<job_id> | PATCH | Edit scheduled post |
| /uploadposts/me | GET | Validate API key |
| /analytics/<profile> | GET | Get analytics |
| /uploadposts/facebook/pages | GET | List Facebook pages |
| /uploadposts/linkedin/pages | GET | List LinkedIn pages |
| /uploadposts/pinterest/boards | GET | List Pinterest boards |
| /uploadposts/reddit/detailed-posts | GET | Get Reddit posts with media |
| /ffmpeg | POST | Process 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: Settruefor 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
| Platform | Videos | Photos | Text | Documents |
|----------|--------|--------|------|-----------|
| 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/<job_id>- Cancel - -
PATCH /uploadposts/schedule/<job_id>- 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/<job_id>/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](references/platforms.md) for detailed platform parameters.
Media Requirements
See [references/requirements.md](references/requirements.md) for format specs per platform.
Error Codes
| Code | Meaning |
|------|---------|
| 400 | Bad request / missing params |
| 401 | Invalid API key |
| 404 | Resource not found |
| 429 | Rate limit / quota exceeded |
| 500 | Server 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)
Launch an agent with Upload Videos🎥, Photos📸 & Text🖊️ to TikTok, Instagram, YouTube, X, LinkedIn, Facebook, Threads, Pinterest, Reddit & Bluesky via Upload-Post API on Termo.