Platform API

Bluesky API guide for posting and scheduling

Bluesky gives developers a direct route to publishing. This guide explains the records, credentials, limits, and checks behind a scheduled post, including what Hey Tasky supports today.

Live now. Native account strategy. Agent-first scheduling.

Best for

Who this page is for.

Founders publishing to Bluesky
Teams scheduling short-form posts
Developers comparing direct API and scheduler workflows
Capabilities

What Hey Tasky is built to handle.

Bluesky app password connection

Connect with a Bluesky handle and a separate, revocable app password.

Scheduled native publishing

Keep the due time in the Hey Tasky calendar, then publish the post through the native adapter.

Bluesky threads

Split longer drafts into replies and publish them as one connected thread.

Up to four images with alt text

Upload as many as four images and preserve the alt text attached to each asset.

Visible publish failures

Keep a failed delivery visible so it can be inspected and retried instead of quietly disappearing.

Practical guide

How the Bluesky API publishes a post

A Bluesky post is a signed repository record, not a message sent to a single global posting endpoint. The official SDK handles much of that plumbing, but the record shape and account session still matter.

1. Create an authenticated session

A publishing client signs in to the account hosting service with a handle and an app password, or uses OAuth. Hey Tasky currently uses the app-password route because it gives the connection its own revocable credential.

  • Use an app password, not the main account password.
  • The session identifies the account DID and the service that hosts its repository.
  • If the session expires, the publisher refreshes it before writing the post.

2. Build an app.bsky.feed.post record

The low-level write is com.atproto.repo.createRecord. The collection is app.bsky.feed.post, and a basic record includes the post text and its creation time.

Links, mentions, and hashtags use facets with byte positions. Images are uploaded as blobs first, then referenced by the post record with alt text.

3. Store the schedule outside Bluesky

Bluesky accepts the post when it is published. It does not hold a future post for you. A scheduler stores the draft and due time, then creates the record when that time arrives.

Hey Tasky keeps that schedule in its calendar, publishes through the native adapter, records the returned Bluesky post URL, and shows a failure if the write does not complete.

4. Choose direct API or Hey Tasky

Use the direct API when you are building your own product and want complete control over sessions, records, queues, retries, and observability.

Use Hey Tasky when you want a reviewable calendar, per-channel copy, threads, image handling, and scheduled publishing without maintaining that infrastructure yourself.

Limits

Check these before scheduling.

Confirm your connected accounts and the workflow you want to use.

Video publishing is not supported yet
View-count analytics are not available in Hey Tasky
An app password must be created in Bluesky before connecting
FAQ

Questions people ask before choosing a scheduler.

Is Bluesky publishing live in Hey Tasky?

Yes. You can connect a Bluesky account with your handle and an app password, then schedule posts in Hey Tasky.

Does Hey Tasky need my main Bluesky password?

No. Create a separate app password in Bluesky and use that when connecting. You can revoke the app password without changing your main account password.

Can Hey Tasky publish Bluesky threads and images?

Yes. Hey Tasky supports thread publishing and up to four images in a Bluesky post, including alt text. Video is not supported yet.

Does Hey Tasky use a third-party social media aggregator?

No. Hey Tasky connects to Bluesky through its native API and its own publishing adapter.