upload-post
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.
What this skill does
# 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` | 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 ```bash 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 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 ```bash 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 ```bash 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). ```bash 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 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 ```bash 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): ```json { "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: ```bash 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 ```bash 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 ```bash # 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): ```bash 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: ```bash 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](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)
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".