> Discover all available Postdom documentation from the machine-readable index: https://postdom.com/llms.txt

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.

[Create a workspace](https://app.postdom.com/signup) [Read publish_video](https://postdom.com/docs/tools/publish-video)

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](https://github.com/bluesky-social/atproto/blob/41a561e80a6c/lexicons/app/bsky/feed/post.json)

 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](https://github.com/bluesky-social/atproto/blob/1f3f67c4b5ba/lexicons/app/bsky/embed/video.json)

 Not published

### video max seconds

**Not published**

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

[Official source](https://github.com/bluesky-social/atproto/blob/c26b463a3612/lexicons/app/bsky/video/startUpload.json)

 Not published

### aspect ratio

**Not published**

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

[Official source](https://github.com/bluesky-social/atproto/blob/c26b463a3612/lexicons/app/bsky/video/startUpload.json)

 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](https://github.com/bluesky-social/atproto/blob/1f3f67c4b5ba/lexicons/app/bsky/embed/video.json)

 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.

| Metric | State | Baseline | Value behavior |
| --- | --- | --- | --- |
| views Views Required view count in a normalized snapshot. | unverified | Not verified | Always null with an explicit reason. |
| likes Likes Required like count in a normalized snapshot. | unverified | Not verified | Always null with an explicit reason. |
| comments Comments Required comment count in a normalized snapshot. | unverified | Not verified | Always null with an explicit reason. |
| shares Shares Required share count in a normalized snapshot. | unverified | Not verified | Always null with an explicit reason. |
| saves Saves Nullable saved or favorited count. | unverified | Not verified | Always null with an explicit reason. |
| watch_time_s Watch time Nullable total watch time in seconds. | unverified | Not verified | Always null with an explicit reason. |
| avg_watch_pct Average watch Nullable average watched percentage. | unverified | Not verified | Always null with an explicit reason. |
| completion_pct Completion Nullable completion percentage. | unverified | Not verified | Always null with an explicit reason. |
| follower_delta Follower delta Nullable follower-change field. | unverified | Not verified | Always null with an explicit reason. |

Separate search intent

## Related Bluesky resources

These pages answer separate workflow, specification, or character-limit questions. They support this product reference without replacing it.

### Bluesky character limit

Search-focused lexicon limits and counting guidance.

[Open resource](https://postdom.com/platforms/bluesky/character-limit)

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.

[Start free](https://app.postdom.com/signup) [Read outcome states](https://postdom.com/docs/tools/get-publish)

 VERIFIED · 23 SEPTEMBER 2026  **Current 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.
