Create a key in Settings & API keys, then send it as Authorization: Bearer pts_….
curl -H "Authorization: Bearer $KEY" https://social.puneetthakkar.com/api/accounts
curl -X PUT -H "Authorization: Bearer $KEY" -H "Content-Type: video/mp4" \
--data-binary @reel.mp4 "https://social.puneetthakkar.com/api/media?filename=reel.mp4"
# → { "media": { "id": 12, ... } }curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" https://social.puneetthakkar.com/api/posts -d '{
"media_id": 12,
"account_ids": [1, 2, 3],
"title": "Laptop Pe Download Tez Kaise Kare? 4 Easy Steps",
"caption": "2 GB file, 3 ghante baaki? ...",
"description": "Full YouTube description ...",
"tags": ["plexo", "download speed", "tech clash"],
"youtube_category": "28",
"privacy": "public",
"ai_generated": true,
"scheduled_at": "2026-11-01T13:30:00Z"
}'curl -H "Authorization: Bearer $KEY" https://social.puneetthakkar.com/api/posts
Each post has one target per account with status queued → processing → published (or failed with an error). Failed targets retry up to 3 times automatically.