Platforms
Bluesky
Bluesky over the overads API: status, connection, limits, media rules and platformSettings keys.
Status: Live. Posts created over the API deliver to this channel today.
Publishes today. No app review is involved.
Connecting
Two ways, both in the app. Sign in with Bluesky: enter the handle, then log in on the account's own PDS and approve overads there (AT Protocol OAuth; the session is refreshed by overads and can be revoked from Bluesky under Settings > Privacy and security > Connected apps). Or an app password: make one at bsky.app under Settings > App passwords and paste it with the handle; it is stored encrypted and can be revoked from Bluesky at any time. GET /connections reports which one an account uses in authMode (oauth or app_password). Sign in with Bluesky is offered only on deployments that have a signing key configured; the app password always works.
Once connected the account appears in GET /connections with platform: "bluesky". Use its id in connectionIds.
Limits
| Characters | 300 graphemes. Bluesky counts user-perceived characters, so an emoji or a combined character counts once. |
| API id | bluesky |
- Up to 4 images, or 1 mp4 video up to 100 MB and 3 minutes.
- A post embeds images or a video, never both; a list with both is refused with
MEDIA_UNSUPPORTED. - Video goes through Bluesky's video service and is processed before the post is created, so a video post can take a minute to land.
- Links, mentions and hashtags in the text are turned into rich-text facets automatically.
Limits are checked when the post is created or edited, so an over-limit post is refused then with a sentence naming the cap, not at the scheduled minute. A video over the channel's size cap is MEDIA_TOO_LARGE; over its duration cap is MEDIA_TOO_LONG.
Settings
Bluesky has no per-platform settings. A platformSettings.bluesky object is refused with PLATFORM_SETTING_UNKNOWN.