视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
upload-post【文档与办公】Publish and schedule content to 15 social platforms through one Upload-Post API call: TikTok, Instagram, YouTube, LinkedIn, Facebook, X, Threads, Pinterest, Bluesky, Reddit, Discord, Telegram, Mastodon, WordPress, and Google Business Profile. Use when the user wants to post or schedule a video, photo carousel, text, or document across several platfor…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Publish one piece of content to many social platforms in a single API call.
Accounts are connected once through OAuth in the Upload-Post dashboard, so there is no per-platform developer app, review process, or token refresh to maintain. A single API key covers every platform.
Authorization: Apikey $UPLOAD_POST_API_KEYmybrand) — this groups the connected accounts and is what the
user parameter refers to. It is not a social handle.UPLOAD_POST_API_KEY in the environmentBase URL: https://api.upload-post.com/api
Auth uses the Apikey scheme, not Bearer. Sending Bearer returns a misleading
401 Invalid or expired token even when the key is valid.
curl -X POST "https://api.upload-post.com/api/upload" \
-H "Authorization: Apikey $UPLOAD_POST_API_KEY" \
-F "user=mybrand" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "platform[]=youtube" \
-F "video=@clip.mp4" \
-F "title=How to build better habits" \
-F "async_upload=true"
platform[] is repeated once per target. title is required for YouTube and Reddit and
optional everywhere else.
curl -X POST "https://api.upload-post.com/api/upload_photos" \
-H "Authorization: Apikey $UPLOAD_POST_API_KEY" \
-F "user=mybrand" \
-F "platform[]=instagram" \
-F "photos[]=@slide1.jpg" \
-F "photos[]=@slide2.jpg" \
-F "title=Five lessons from year one"
Add scheduled_date (ISO-8601) and optionally timezone (IANA):
-F "scheduled_date=2026-12-31T18:00:00Z" -F "timezone=Europe/Madrid"
title is the fallback. Override per platform with <platform>_title:
-F "title=New video out now" \
-F "tiktok_title=new vid 🔥 #fyp" \
-F "linkedin_title=A short breakdown of what we learned shipping this."
Long uploads run in the background and return a request_id:
curl "https://api.upload-post.com/api/uploadposts/status?request_id=REQ_ID" \
-H "Authorization: Apikey $UPLOAD_POST_API_KEY"
| Endpoint | Method | Description |
|---|---|---|
/upload | POST | Videos |
/upload_photos | POST | Photos and carousels |
/upload_text | POST | Text-only posts |
/upload_document | POST | Documents (LinkedIn) |
/uploadposts/status?request_id=X | GET | Async upload status |
/uploadposts/history | GET | Upload history |
/uploadposts/schedule | GET | List scheduled posts |
/uploadposts/schedule/<job_id> | PATCH / DELETE | Edit or cancel a scheduled post |
/uploadposts/me | GET | Validate the API key |
/analytics/<profile> | GET | Analytics |
/uploadposts/facebook/pages | GET | List Facebook pages |
/uploadposts/linkedin/pages | GET | List LinkedIn pages |
/uploadposts/pinterest/boards | GET | List Pinterest boards |
User: "Post this clip to TikTok, Reels and Shorts with the caption 'Day 1 of building in public'"
Output:
Publishing clip.mp4 to tiktok, instagram, youtube...
request_id: req_8f21c04a
Status: completed
tiktok ✅ https://tiktok.com/@mybrand/video/7412...
instagram ✅ https://instagram.com/reel/C8xY2...
youtube ✅ https://youtu.be/dQw4w9Wg...
401 Invalid or expired token with a key you know is good — you sent Bearer. Use
Authorization: Apikey <key>.retry_request_id rather than re-uploading
everything.reached_active_user_cap on TikTok — TikTok's daily cap for the app was hit. The
upload falls back to the TikTok inbox as a draft; the video is waiting in the app, not live./uploadposts/status with the request_id.Idempotency-Key header when retrying a request that may have already been
accepted — it returns the existing job instead of double-posting.post_mode=MEDIA_UPLOAD puts the video in the app's drafts instead of
publishing directly, which tends to get better organic reach.first_comment to drop a link or hashtags into the first comment automatically.https://docs.upload-post.com/llm.txt.