Skip to main content

Bluesky Upload Guide

Post text updates, images and videos to Bluesky (powered by the AT Protocol) using the IndReelForge API.

Supported Content Types​

TypeEndpointNotes
Text postPOST /api/upload_textUp to 300 characters
VideoPOST /api/uploadMP4, up to 1 minute
ImagePOST /api/upload_photosUp to 4 images

Video Requirements​

RequirementValue
FormatMP4 (H.264)
Max duration60 seconds
Max file size50 MB
Recommended resolution1080p or 720p

Post a Text Update​

curl -X POST https://api.indreelforge.com/api/upload_text \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-account' \
-F 'title=Decentralised social is the future. Here'\''s why I moved to Bluesky...' \
-F 'platform[]=bluesky'

Post Across Bluesky + X + Threads​

curl -X POST https://api.indreelforge.com/api/upload_text \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=New post is live — let us know what you think!' \
-F 'platform[]=bluesky' \
-F 'platform[]=x' \
-F 'platform[]=threads'

Bluesky-Specific Fields​

FieldDescription
titlePost text (max 300 chars)
bluesky_langsUp to 3 BCP-47 language codes, e.g. en, pt-BR. Send as a comma-separated string (en,fr), a JSON array, or repeated bluesky_langs[] fields (optional)
bluesky_alt_textAlt text for the image(s) or video, max 2,000 characters. Defaults to the post title (optional)

Bluesky supports rich text detection automatically — URLs, handles (@user.bsky.social) and hashtags in the title field are automatically linkified.

Connect Bluesky​

  1. Dashboard → Profiles → select your profile
  2. Click Connect next to Bluesky
  3. Enter your Bluesky handle (e.g. yourname.bsky.social) and an App Password (not your main password)
    • Create an App Password at: bsky.app → Settings → App Passwords
  4. Return — status shows Connected
App Passwords

Never use your main Bluesky password. Create a dedicated App Password in your Bluesky settings — it can be revoked independently without changing your main credentials.

Troubleshooting​

ErrorCauseFix
invalid_credentialsWrong handle or app passwordRe-enter credentials in profile settings
text_too_longOver 300 grapheme clustersShorten the post
video_too_longOver 60 secondsTrim the video to under 1 minute
rate_limitToo many postsBluesky has per-hour rate limits