{"skill":{"slug":"upload-post","displayName":"Upload Videos🎥, Photos📸 & Text🖊️ to TikTok, Instagram, YouTube, X, LinkedIn, Facebook, Threads, Pinterest, Reddit & Bluesky via Upload-Post API","summary":"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.","description":"---\nname: upload-post\ndescription: \"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.\"\n---\n\n# Upload-Post API\n\nPost content to multiple social media platforms with a single API call.\n\n## Documentation\n\n- Full API docs: https://docs.upload-post.com\n- LLM-friendly: https://docs.upload-post.com/llm.txt\n\n## Setup\n\n1. Create account at [upload-post.com](https://upload-post.com)\n2. Connect your social media accounts\n3. Create a **Profile** (e.g., \"mybrand\") - this links your connected accounts\n4. Generate an **API Key** from dashboard\n5. Use the profile name as `user` parameter in API calls\n\n## Authentication\n\n```\nAuthorization: Apikey YOUR_API_KEY\n```\n\nBase URL: `https://api.upload-post.com/api`\n\nThe `user` parameter in all endpoints refers to your **profile name** (not username), which determines which connected social accounts receive the content.\n\n## Endpoints Reference\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/upload_videos` | POST | Upload videos |\n| `/upload_photos` | POST | Upload photos/carousels |\n| `/upload_text` | POST | Text-only posts |\n| `/upload_document` | POST | Upload documents (LinkedIn only) |\n| `/uploadposts/status?request_id=X` | GET | Check async upload status |\n| `/uploadposts/history` | GET | Upload history |\n| `/uploadposts/schedule` | GET | List scheduled posts |\n| `/uploadposts/schedule/<job_id>` | DELETE | Cancel scheduled post |\n| `/uploadposts/schedule/<job_id>` | PATCH | Edit scheduled post |\n| `/uploadposts/me` | GET | Validate API key |\n| `/analytics/<profile>` | GET | Get analytics |\n| `/uploadposts/facebook/pages` | GET | List Facebook pages |\n| `/uploadposts/linkedin/pages` | GET | List LinkedIn pages |\n| `/uploadposts/pinterest/boards` | GET | List Pinterest boards |\n| `/uploadposts/reddit/detailed-posts` | GET | Get Reddit posts with media |\n| `/ffmpeg` | POST | Process media with FFmpeg |\n\n## Upload Videos\n\n```bash\ncurl -X POST \"https://api.upload-post.com/api/upload_videos\" \\\n  -H \"Authorization: Apikey YOUR_KEY\" \\\n  -F \"user=profile_name\" \\\n  -F \"platform[]=instagram\" \\\n  -F \"platform[]=tiktok\" \\\n  -F \"video=@video.mp4\" \\\n  -F \"title=My caption\"\n```\n\nKey parameters:\n- `user`: Profile username (required)\n- `platform[]`: Target platforms (required)\n- `video`: Video file or URL (required)\n- `title`: Caption/title (required)\n- `description`: Extended description\n- `scheduled_date`: ISO-8601 date for scheduling\n- `timezone`: IANA timezone (e.g., \"Europe/Madrid\")\n- `async_upload`: Set `true` for background processing\n- `first_comment`: Auto-post first comment\n\n## Upload Photos\n\n```bash\ncurl -X POST \"https://api.upload-post.com/api/upload_photos\" \\\n  -H \"Authorization: Apikey YOUR_KEY\" \\\n  -F \"user=profile_name\" \\\n  -F \"platform[]=instagram\" \\\n  -F \"photos[]=@photo1.jpg\" \\\n  -F \"photos[]=@photo2.jpg\" \\\n  -F \"title=My caption\"\n```\n\nInstagram & Threads support mixed carousels (photos + videos in same post).\n\n## Upload Text\n\n```bash\ncurl -X POST \"https://api.upload-post.com/api/upload_text\" \\\n  -H \"Authorization: Apikey YOUR_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"user\": \"profile_name\",\n    \"platform\": [\"x\", \"threads\", \"bluesky\"],\n    \"title\": \"My text post\"\n  }'\n```\n\nSupported: X, LinkedIn, Facebook, Threads, Reddit, Bluesky.\n\n## Upload Document (LinkedIn only)\n\nUpload PDFs, PPTs, DOCs as native LinkedIn document posts (carousel viewer).\n\n```bash\ncurl -X POST \"https://api.upload-post.com/api/upload_document\" \\\n  -H \"Authorization: Apikey YOUR_KEY\" \\\n  -F \"user=profile_name\" \\\n  -F 'platform[]=linkedin' \\\n  -F \"document=@presentation.pdf\" \\\n  -F \"title=Document Title\" \\\n  -F \"description=Post text above document\"\n```\n\nParameters:\n- `document`: PDF, PPT, PPTX, DOC, DOCX (max 100MB, 300 pages)\n- `title`: Document title (required)\n- `description`: Post commentary\n- `visibility`: PUBLIC, CONNECTIONS, LOGGED_IN, CONTAINER\n- `target_linkedin_page_id`: Post to company page\n\n## Supported Platforms\n\n| Platform | Videos | Photos | Text | Documents |\n|----------|--------|--------|------|-----------|\n| TikTok | ✓ | ✓ | - | - |\n| Instagram | ✓ | ✓ | - | - |\n| YouTube | ✓ | - | - | - |\n| LinkedIn | ✓ | ✓ | ✓ | ✓ |\n| Facebook | ✓ | ✓ | ✓ | - |\n| X (Twitter) | ✓ | ✓ | ✓ | - |\n| Threads | ✓ | ✓ | ✓ | - |\n| Pinterest | ✓ | ✓ | - | - |\n| Reddit | - | ✓ | ✓ | - |\n| Bluesky | ✓ | ✓ | ✓ | - |\n\n## Upload History\n\n```bash\ncurl \"https://api.upload-post.com/api/uploadposts/history?page=1&limit=20\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n```\n\nParameters:\n- `page`: Page number (default: 1)\n- `limit`: 10, 20, 50, or 100 (default: 10)\n\nReturns: upload timestamp, platform, success status, post URLs, errors.\n\n## Scheduling\n\nAdd `scheduled_date` parameter (ISO-8601):\n\n```json\n{\n  \"scheduled_date\": \"2026-02-01T10:00:00Z\",\n  \"timezone\": \"Europe/Madrid\"\n}\n```\n\nResponse includes `job_id`. Manage with:\n- `GET /uploadposts/schedule` - List all scheduled\n- `DELETE /uploadposts/schedule/<job_id>` - Cancel\n- `PATCH /uploadposts/schedule/<job_id>` - Edit (date, title, caption)\n\n## Check Upload Status\n\nFor async uploads or scheduled posts:\n\n```bash\ncurl \"https://api.upload-post.com/api/uploadposts/status?request_id=XXX\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n```\n\nOr use `job_id` for scheduled posts.\n\n## Analytics\n\n```bash\ncurl \"https://api.upload-post.com/api/analytics/profile_name?platforms=instagram,tiktok\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n```\n\nSupported: Instagram, TikTok, LinkedIn, Facebook, X, YouTube, Threads, Pinterest, Reddit, Bluesky.\n\nReturns: followers, impressions, reach, profile views, time-series data.\n\n## Get Pages/Boards\n\n```bash\n# Facebook Pages\ncurl \"https://api.upload-post.com/api/uploadposts/facebook/pages\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n\n# LinkedIn Pages  \ncurl \"https://api.upload-post.com/api/uploadposts/linkedin/pages\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n\n# Pinterest Boards\ncurl \"https://api.upload-post.com/api/uploadposts/pinterest/boards\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n```\n\n## Reddit Detailed Posts\n\nGet posts with full media info (images, galleries, videos):\n\n```bash\ncurl \"https://api.upload-post.com/api/uploadposts/reddit/detailed-posts?profile_username=myprofile\" \\\n  -H \"Authorization: Apikey YOUR_KEY\"\n```\n\nReturns up to 2000 posts with media URLs, dimensions, thumbnails.\n\n## FFmpeg Editor\n\nProcess media with custom FFmpeg commands:\n\n```bash\ncurl -X POST \"https://api.upload-post.com/api/ffmpeg\" \\\n  -H \"Authorization: Apikey YOUR_KEY\" \\\n  -F \"file=@input.mp4\" \\\n  -F \"full_command=ffmpeg -y -i {input} -c:v libx264 -crf 23 {output}\" \\\n  -F \"output_extension=mp4\"\n```\n\n- Use `{input}` and `{output}` placeholders\n- Poll job status until `FINISHED`\n- Download result from `/ffmpeg/job/<job_id>/download`\n- Supports multiple inputs: `{input0}`, `{input1}`, etc.\n\nQuotas: Free 30min/mo, Basic 300min, Pro 1000min, Advanced 3000min, Business 10000min.\n\n## Platform-Specific Parameters\n\nSee [references/platforms.md](references/platforms.md) for detailed platform parameters.\n\n## Media Requirements\n\nSee [references/requirements.md](references/requirements.md) for format specs per platform.\n\n## Error Codes\n\n| Code | Meaning |\n|------|---------|\n| 400 | Bad request / missing params |\n| 401 | Invalid API key |\n| 404 | Resource not found |\n| 429 | Rate limit / quota exceeded |\n| 500 | Server error |\n\n## Notes\n\n- Videos auto-switch to async if >59s processing time\n- X long text creates threads unless `x_long_text_as_post=true`\n- Facebook requires Page ID (personal profiles not supported by Meta)\n- Instagram/Threads support mixed carousels (photos + videos)\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":9855,"installsAllTime":43,"installsCurrent":43,"stars":49,"versions":1},"createdAt":1769372769050,"updatedAt":1778485852489},"latestVersion":{"version":"1.0.0","createdAt":1769372769050,"changelog":"Initial release: Post to TikTok, Instagram, YouTube, LinkedIn, Facebook, X (Twitter), Threads, Pinterest, Reddit & Bluesky with a single API call. Upload videos, photos, text & documents. Schedule posts for later, track upload history, get analytics across platforms, manage Facebook/LinkedIn pages & Pinterest boards. Includes FFmpeg media processing for video conversion and editing. Full platform-specific parameters for privacy settings, collaborators, tags, visibility and more.","license":null},"metadata":null,"owner":{"handle":"victorcavero14","userId":"s1798fjs761mjqrzp9pq7z44qh884s46","displayName":"Víctor Cavero","image":"https://avatars.githubusercontent.com/u/33009505?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779916193154}}