v1.0.0

Upload Videos🎥, Photos📸 & Text🖊️ to TikTok, Instagram, YouTube, X, LinkedIn, Facebook, Threads, Pinterest, Reddit & Bluesky via Upload-Post API

Víctor Cavero Víctor Cavero ← All skills

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.

Downloads
2.5k
Stars
11
Versions
1
Updated
2026-02-23

Install

npx clawhub@latest install upload-post

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: 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

| 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.