Browse docs

Destination · publishing reference

Bluesky publishing reference for Postdom

This Bluesky publishing reference explains app-password connection, public-post behavior, transport limits, empty settings, and the outcome Postdom can verify.

Human authorization boundary

Bluesky publishing reference connection requirements

A human completes the destination connection. The agent receives the resulting account ID—not the social credential—and supplies that exact account ID to publish_video.

connection

App password

prerequisite

No additional Postdom prerequisite is recorded beyond an eligible account.

current source surface

post

Configured output

What Postdom sends to Bluesky

The public tool accepts product-level publishing fields. Postdom builds destination settings after validation; callers cannot smuggle an undocumented settings object through publish_video.

settings
omitted

Postdom sends no Bluesky visibility or reply-gating setting.

Bluesky connects with an app password. Postdom sends no visibility field and does not write separate threadgate or postgate records.

CURRENT SOURCE ADAPTER OUTPUT · NOT TOOL INPUT
{
  "platform": "bluesky",
  "settings": {}
}

Enforced, documented, or unknown

Bluesky publishing limits

Every row comes from the current @postdom/core registry. “Postdom enforced” means the source contract checks the fact. A recommendation, documented-but-unenforced fact, or unpublished value must not be presented as a passed validation.

Postdom enforced

caption max chars

4000

Postdom contract · verified 2026-08-21T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

media max bytes

524,288,000 bytes

Postdom contract · verified 2026-08-21T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

video max seconds

600

Postdom contract · verified 2026-08-21T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

video mime types

video/mp4, video/quicktime

Postdom contract · verified 2026-08-21T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

image mime types

image/jpeg, image/png, image/gif, image/webp

Postdom contract · verified 2026-08-21T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

feed post lexicon text

300

Unit: graphemes · Field: text · Scope: app.bsky.feed.post

Platform evidence · verified 2026-09-02T00:00:00.000Z

Qualification

Bluesky counts graphemes. Postdom's UTF-16 length is conservative here: a passing UTF-16 count cannot exceed the grapheme ceiling, although it can reject text Bluesky would accept.

Official source
Postdom enforced

video max bytes

50,000,000 bytes

Transport evidence · verified 2026-09-02T00:00:00.000Z

Evidence reference retained in the core registry.

Postdom enforced

video mime types

video/mp4

Platform evidence · verified 2026-09-02T00:00:00.000Z

Official source
Not published

video max seconds

Not published

Platform evidence · verified 2026-09-02T00:00:00.000Z

Official source
Not published

aspect ratio

Not published

Platform evidence · verified 2026-09-02T00:00:00.000Z

Official source
Documented, not enforced

platform video max bytes

300,000,000 bytes

Platform evidence · verified 2026-09-02T00:00:00.000Z

Qualification

Bluesky's own ceiling, from the lexicon's `maxSize: 300000000`. It is not the one that binds: Postdom stores bytes and hands a media URL to the provider, so the provider is the transport and its 50 MB figure is the ceiling a request meets. Recorded so the platform fact is not lost and so the enforced 50 MB is legible as a transport limit rather than a claim about Bluesky. Raise the enforced value only on evidence the provider carries more, never on evidence Bluesky accepts more.

Official source
Documented, not enforced

image max bytes

2,000,000 bytes

Transport evidence · verified 2026-09-02T00:00:00.000Z

Qualification

Postdom publishes video, so no request can carry a Bluesky image and a gate would be unreachable. Recorded because it is the evidence for the video decision above: the lexicon says "May be up to 2 MB, formerly limited to 1 MB" while the provider recompresses images to stay under ~1 MB. That is a superseded platform figure the provider still enforces, which is why its video figure could not be dismissed as merely stale. Deleting this row removes the only support for treating the 50 MB delivery ceiling as a real transport limit rather than a stale copy.

Evidence reference retained in the core registry.

Result boundary

How to verify the Bluesky outcome

This page does not claim an observed Postdom Bluesky connection, public publication, or analytics response. It separates the transport ceiling from Bluesky's wider platform ceiling.

Never collapse a workflow state into success

Store the Postdom post ID, read the exact destination state with get_publish, and preserve a missing public URL, approval state, terminal refusal, or provider error exactly as returned.

Nine modeled fields

Bluesky metric availability

The matrix records evidence states, not guaranteed live values. Unverified and never remain null with a reason; zero remains a measured zero.

MetricStateBaselineValue behavior
viewsViews

Required view count in a normalized snapshot.

unverified

Not verified

Always null with an explicit reason.

likesLikes

Required like count in a normalized snapshot.

unverified

Not verified

Always null with an explicit reason.

commentsComments

Required comment count in a normalized snapshot.

unverified

Not verified

Always null with an explicit reason.

sharesShares

Required share count in a normalized snapshot.

unverified

Not verified

Always null with an explicit reason.

savesSaves

Nullable saved or favorited count.

unverified

Not verified

Always null with an explicit reason.

watch_time_sWatch time

Nullable total watch time in seconds.

unverified

Not verified

Always null with an explicit reason.

avg_watch_pctAverage watch

Nullable average watched percentage.

unverified

Not verified

Always null with an explicit reason.

completion_pctCompletion

Nullable completion percentage.

unverified

Not verified

Always null with an explicit reason.

follower_deltaFollower delta

Nullable follower-change field.

unverified

Not verified

Always null with an explicit reason.

Verification scope

Bluesky evidence boundary

Contract evidence is not an observed publication

These pages describe source-backed product contracts. They do not represent an authenticated end-to-end publication or analytics test.

Inspect the connected tool schema before acting. Current source may be ahead of the separately published @postdom/mcp helper.

Use the contract

Publish with explicit authority and outcomes

Create a workspace, connect an eligible account, and let the agent use only the fields exposed by the connected schema.

VERIFIED · 23 SEPTEMBER 2026Current source adapter · Core evidence registries · Modeled metric availability

Private identifiers and unverified publication claims are excluded. External links are limited to first-party platform sources.