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

Destination · publishing reference

# X publishing reference for Postdom

This X publishing reference explains the OAuth connection, empty settings contract, media checks, account-tier caveat, and returned outcome.

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

Human authorization boundary

## X 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`

OAuth

`prerequisite`

No additional Postdom prerequisite is recorded beyond an eligible account.

`current source surface`

post

Configured output

## What Postdom sends to X

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 X-specific settings or audience field.

Postdom sends no X-specific settings. An accepted Postdom request does not establish the account's X upload entitlement.

_CURRENT SOURCE ADAPTER OUTPUT · NOT TOOL INPUT_

```
{
  "platform": "twitter",
  "settings": {}
}
```

Enforced, documented, or unknown

## X 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.

 Documented, not enforced

### post text counting

**280**

Unit: weighted characters · Field: text · Scope: POST /2/tweets

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

Qualification

X counts weighted characters - Latin text 1, CJK and emoji 2, and any URL a flat 23 regardless of its length - so a UTF-16 count both over-rejects captions carrying links and under-counts CJK. Enforcing it would need X's weighting and its URL extractor; until then the limit is reported, not gated.

[Official source](https://docs.x.com/fundamentals/counting-characters)

 Postdom enforced

### video max seconds

**1200**

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

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Not published

### video mime types

**Not published**

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

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Postdom enforced

### resolution min pixels

**width: 32; height: 32**

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

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Recommendation

### resolution recommended

**width: 1280; height: 720**

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

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Recommendation

### aspect ratio recommended

**16:9, 1:1**

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

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Documented, not enforced

### resolution max pixels

**width: 1280; height: 1024**

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

Qualification

Was 1920x1200 from the provider; X's own advanced constraints say "between 32x32 and 1280x1024". Still not gated, and now for a second reason on top of the original one. The original: published as a single bound with no orientation stated, which would reject every standard vertical short, and Postdom's own control fixtures upload 1080x1920 to X. The second: the same X page says a subscribed user "can upload a 1080p video and get 1080p playback", and 1080x1920 does not fit inside 1280x1024. Two first-party statements that contradict each other do not make a limit, so this one is recorded and left unread.

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Documented, not enforced

### aspect ratio

**minimum: 0.3333333333333333; maximum: 3**

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

Qualification

"between 1:3 and 3:1", from X's advanced constraints. Sat in the enforcement snapshot as not_published, which was true of the provider's page - it gives the two recommended ratios and no range - and false of X's. Not gated because the X preflight branch reads resolution and duration, not ratio.

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

 Documented, not enforced

### video min seconds

**0.5**

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

Qualification

mediaUploadPreflightRequestSchema declares duration_seconds as a positive integer, so no request can express half a second. An enforced minimum no request can violate is unenforceable by construction.

[Official source](https://docs.x.com/x-api/media/quickstart/best-practices)

Result boundary

## How to verify the X outcome

X video rules can vary by account tier. This page states Postdom's current contract and recorded evidence boundary, not a successful public-post observation.

### 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

## X 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. | available | 2026-09-02T00:00:00.000Z | Numeric when a snapshot exists. Zero remains zero. |
| likes Likes Required like count in a normalized snapshot. | available | 2026-09-02T00:00:00.000Z | Numeric when a snapshot exists. Zero remains zero. |
| comments Comments Required comment count in a normalized snapshot. | available | 2026-09-02T00:00:00.000Z | Numeric when a snapshot exists. Zero remains zero. |
| shares Shares Required share count in a normalized snapshot. | available | 2026-09-02T00:00:00.000Z | Numeric when a snapshot exists. Zero remains zero. |
| 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. | estimable | 2026-09-02T00:00:00.000Z | Currently normalized to null; derivation is not promised. |

Separate search intent

## Related X resources

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

### X character limit

Search-focused character-count guidance, separate from this product contract.

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

Verification scope

## X 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.
