App-password auth
Skip the AT Protocol login dance — pass a handle and app password, we keep the session fresh.
Publish to Bluesky via one API. Postproxy handles the AT Protocol, app-password auth, link cards, and image embeds for you.
One request reaches Bluesky alongside every other network you publish to.
Free plan · No credit card · Live in under 5 minutes
Skip the AT Protocol login dance — pass a handle and app password, we keep the session fresh.
Posts that include a URL get an automatic link card with the OG image and metadata.
Sequential replies via the same threads API used for X and Threads.
Plain-text @handles, #tags, and URLs are linkified server-side with proper facets.
$
View full documentation for all platform-specific features for Bluesky
One curl against a sandbox account is the easy part. Production Bluesky publishing means session refresh, blob uploads under the 1 MB cap, AT Protocol facets for mentions and links, OG-fetched link cards, and a permanent on-call rotation for "why didn't this one go through this time?"
No need to read up on lexicons, facets, blob uploads, or session refresh — Postproxy translates a standard post body into the right XRPC calls.
Publish the same post body to Bluesky alongside Instagram, LinkedIn, X, and more in a single API call.
Postproxy fetches the OG image and metadata for the URL in your post and uploads it as a Bluesky link card embed.
Automatic retries, clear status, and HMAC-signed webhooks for every Bluesky outcome.
Bluesky runs on the AT Protocol — a federated network where every action is a typed record (a lexicon) written to your data repo. Posting means uploading any media as blobs, then creating an app.bsky.feed.post record with text plus optional embeds. Postproxy handles the session, blob uploads, facet extraction, and record creation — you send a normal post body and we translate it into the right XRPC calls.
Bluesky doesn't auto-linkify plain text — it expects pre-computed facets that mark byte ranges in your post as mentions, tags, or links. Postproxy extracts @handle, #tag, and URL patterns from your post body and resolves handles via the directory, so the same plain-text body you send to X works on Bluesky without extra markup.
When a post contains at least one URL and no media attachments, Postproxy fetches the Open Graph metadata, downloads the OG image (skipping anything past Bluesky's ~1 MB blob limit), and uploads it as an app.bsky.embed.external link card. If your post has any image or video attachments, those win at the embed level and the URL stays a clickable facet link — Bluesky doesn't allow both.
Bluesky's main account password won't work for API posting when 2FA is enabled — and even when it does work, the API will warn you off. Always issue an app password at bsky.app/settings/app-passwords. Postproxy stores the app password, keeps the session token refreshed, and surfaces a clear reconnect prompt if the user ever revokes it.
Common questions about Bluesky integration
Start with our free plan and scale as your needs grow. No credit card required.