Automated summary
This skill publishes videos, photos, text and documents to roughly a dozen social networks (TikTok, Instagram, YouTube, LinkedIn, X, etc.) through a single Upload-Post API call.
Strengths
- One API call can distribute the same content to several platforms at once
- Supports scheduled posts, upload history and analytics through dedicated endpoints
- Specialised endpoints per media type, including mixed Instagram/Threads carousels and native LinkedIn document posts
- FFmpeg media processing and asynchronous upload tracking via request_id
Limitations
- Entirely dependent on a third-party Upload-Post account and a paid API key
- The document section is truncated in SKILL.md, leaving some parameters under-documented
- Several capabilities are platform-restricted (documents only on LinkedIn, text limited to X, LinkedIn, Facebook, Threads, Reddit and Bluesky)
Use it when you need to publish or schedule the same content across multiple social networks without integrating each platform's API separately.
Avoid it if you don't have an active Upload-Post account or need fine-grained native control specific to a single platform.
Security analysis
SafeThe skill is pure API documentation: it lists endpoints, parameters, and curl examples against a single documented host (api.upload-post.com). There is no obfuscation, no curl|sh, no destructive filesystem command, no attempt to read or exfiltrate unrelated secrets, and no safety-disabling instructions. The only sensitive element is the user's own API key, which is passed to the vendor it belongs to. Powerful network calls are used for their legitimate purpose, so this rates safe.
- •Requires pasting a personal Upload-Post API key into requests; key handling guidance is minimal (no note on env vars / secret storage)
- •Examples send local media files to a third-party SaaS endpoint (api.upload-post.com) — expected for the stated purpose, but implies trust in that vendor with content and credentials
Examples
Upload video.mp4 to Instagram and TikTok with the caption 'New tutorial is live!' using my upload-post profile 'mybrand'.Schedule a text post for tomorrow 9am Europe/Madrid on X, Threads and Bluesky saying 'Big announcement coming this week 👀'.Upload presentation.pdf as a LinkedIn document post titled 'Q3 Roadmap' with the description 'Here is our plan for the next quarter.'name: upload-post description: "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."
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 "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 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[]=@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 commentaryvisibility: PUBLIC, CONNECTIONS, LOGGED_IN, CONTAINERtarget_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 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 "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 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)
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/upload-content-to-social-media-via-upload-post-api-mrwakgks/download' --output '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md.part' && mv '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md.part' '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: 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
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && test -s '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/upload-post' && cp -R '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks' '.claude/skills/upload-post'Cursor
test -f '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && test -s '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/upload-post' && cp -R '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks' '.cursor/skills/upload-post'Codex
test -f '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && test -s '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/upload-post' && cp -R '.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks' '.agents/skills/upload-post'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks'openskills read 'upload-content-to-social-media-via-upload-post-api-mrwakgks'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/upload-content-to-social-media-via-upload-post-api-mrwakgks/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Writing Fragments
Content
Mine raw writing fragments through a relentless interview, without imposing structure. Capture ideas, quotes, and leading words for later use.
UI Copywriting & Auditing
Content
Write or audit user-facing UI copy including buttons, errors, empty states, and tooltips across the monorepo, following the design system source of truth.
Music MIDI Extraction
Content
Extracts the MIDI or score from an existing music production via the CogMusic MCP tool and confirms availability.