About
This skill enables posting content to multiple social media platforms (like TikTok, Instagram, YouTube) via a unified API. Use it when you need to programmatically upload videos, photos, or text across services, including scheduling and analytics. It handles authentication and media processing, simplifying multi-platform social media integration.
Quick Install
Claude Code
Recommendednpx skills add Upload-Post/upload-post-skill -a claude-code/plugin add https://github.com/Upload-Post/upload-post-skillgit clone https://github.com/Upload-Post/upload-post-skill.git ~/.claude/skills/upload-postCopy and paste this command in Claude Code to install this skill
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
- Create account at upload-post.com
- Connect your social media accounts
- Create a Profile (e.g., "mybrand") - this links your connected accounts
- Generate an API Key from dashboard
- Use the profile name as
userparameter 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 | 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" \
-H "Authorization: Apikey YOUR_KEY" \
-F "user=profile_name" \
-F "platform[]=instagram" \
-F "platform[]=tiktok" \
-F "[email protected]" \
-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 descriptionscheduled_date: ISO-8601 date for schedulingtimezone: IANA timezone (e.g., "Europe/Madrid")async_upload: Settruefor background processingfirst_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[][email protected]" \
-F "photos[][email protected]" \
-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 "[email protected]" \
-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 commentaryvisibility: PUBLIC, CONNECTIONS, LOGGED_IN, CONTAINERtarget_linkedin_page_id: Post to company page
Supported Platforms
| Platform | Videos | Photos | Text | Documents |
|---|---|---|---|---|
| TikTok | ✓ | ✓ | - | - |
| ✓ | ✓ | - | - | |
| YouTube | ✓ | - | - | - |
| ✓ | ✓ | ✓ | ✓ | |
| ✓ | ✓ | ✓ | - | |
| X (Twitter) | ✓ | ✓ | ✓ | - |
| Threads | ✓ | ✓ | ✓ | - |
| ✓ | ✓ | - | - | |
| - | ✓ | ✓ | - | |
| 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 scheduledDELETE /uploadposts/schedule/<job_id>- CancelPATCH /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 "[email protected]" \
-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 for detailed platform parameters.
Media Requirements
See 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)
GitHub Repository
Frequently asked questions
What is the upload-post skill?
upload-post is a Claude Skill by Upload-Post. Skills package instructions and resources that Claude loads on demand, so Claude can perform upload-post-related tasks without extra prompting.
How do I install upload-post?
Use the install commands on this page: add upload-post to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does upload-post belong to?
upload-post is in the Documentation category, tagged word, api and data.
Is upload-post free to use?
Yes. upload-post is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Related Skills
This skill fetches current Railway documentation to answer questions about features, functionality, or specific docs URLs. It ensures developers receive accurate, up-to-date information directly from Railway's official sources. Use it when users ask how Railway works or reference Railway documentation.
This Claude Skill provides expert guidance for writing Python code in n8n's Code nodes, specifically for using Python's standard library and working with n8n's special syntax like `_input`, `_json`, and `_node`. It helps developers understand Python's limitations within n8n and recommends using JavaScript for most workflows while offering Python solutions for specific data transformation needs.
The Archon skill provides RAG-powered semantic search and project management through a REST API. Use it for querying documentation, managing hierarchical projects/tasks, and performing knowledge retrieval with document upload capabilities. Always prioritize Archon first when searching external documentation before using other sources.
This Claude Skill provides expert guidance for writing JavaScript code in n8n's Code nodes. It covers essential n8n-specific syntax like `$input`/`$json` variables, HTTP helpers, and DateTime handling, while troubleshooting common errors. Use it when developing n8n workflows that require custom JavaScript processing in Code nodes.
