Publish a social media post right now to one or more connected accounts (X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube, Pinterest) through PostLake. Use when the user wants to post immediately.
Design & media
PostLake media
Try itUpload an image or video to PostLake and attach it to a post. Use when a post needs media, or for platforms that require it (Instagram, TikTok, YouTube, Pinterest).
What it does
Upload an image or video to PostLake and attach it to a post. Use when a post needs media, or for platforms that require it (Instagram, TikTok, YouTube, Pinterest).
The skill document
PostLake — upload media
Upload the file first to get a med_… id, then pass it as media in a publish or
schedule call. Some platforms require media (Instagram, TikTok, YouTube, Pinterest).
Auth
Authorization: Bearer $POSTLAKE_API_KEY
Base URL https://api.postlake.dev.
Upload
POST the raw bytes with the file's Content-Type. Limits: images ≤20MB
(jpeg/png/webp/gif); videos ≤200MB (mp4/mov/webm).
From a local file:
curl -X POST https://api.postlake.dev/v1/media \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @photo.jpg
From a URL (download it first, then upload the bytes):
curl -sL "https://example.com/photo.jpg" -o /tmp/m.jpg
curl -X POST https://api.postlake.dev/v1/media \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: image/jpeg" \
--data-binary @/tmp/m.jpg
Response:
{ "id": "med_47214a…", "url": "https://media.postlake.dev/med_47214a…", "contentType": "image/jpeg", "size": 86487 }
Attach it to a post
Pass the id(s) as media, with optional alt text for accessibility:
curl -X POST https://api.postlake.dev/v1/posts \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"text": "New drop 👟",
"accounts": ["acc_54d8…"],
"media": ["med_47214a…"],
"mediaAlt": ["A pair of orange running shoes"]
}'
Tips
- Set the
Content-Typeto the real file type — it's how PostLake validates the upload. - For video platforms (YouTube/TikTok) upload an mp4 and set a title via
platformOptions.youtube.title. - Reuse a
med_…id across multiple posts; you don't need to re-upload.
Related skills
List the social accounts connected to PostLake (X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube, Pinterest) and their status. Use this first, before publishing, to get the account ids to post to.
Schedule a social media post for a future time through PostLake, and list, reschedule, or cancel scheduled posts. Use when the user wants to post later or plan a calendar.
Create, schedule, and publish social media posts across Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky via the Social0 CLI (preferred) or MCP. Covers account listing, media upload, drafts, instant publish, scheduling, and per-platform publish status.
Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
Publish and schedule social media posts across LinkedIn, Bluesky, Instagram, TikTok, Pinterest, YouTube Shorts and Mastodon, then verify delivery with per-post receipts. Uses the Postlia REST API.