Browse docs

Destination · configured adapter

Instagram Reels

The configured adapter creates Reels with AI disclosure. It does not supply an Instagram visibility field.

Configured output

Adapter behavior

Postdom builds these settings after publish_video validation. The configured tool schema does not accept a settings object.

contentType
reel

Selects the Reel content type.

isAiGenerated
true

Marks the Reel as AI-generated.

These settings are added after tool validation. The adapter supplies no Instagram visibility field.

CONFIGURED ADAPTER OUTPUT · NOT TOOL INPUT
{
  "platform": "instagram",
  "settings": {
    "contentType": "reel",
    "isAiGenerated": true
  }
}

Enforcement layers

Media limits

Shared media rules apply before destination guidance. Recorded duration, format, and aspect guidance is not current runtime validation.

caption

The configured tool accepts up to 4,000 characters.

media probe

HTTP 200 or 206 is required. A present incompatible content type is rejected.

production media storage

Source-host and 500 MB checks apply when the configured resolver is active.

SurfaceFieldLimitEnforcement
publish_videocaption
At most 4,000 characters

The MCP boundary accepts an empty caption.

Schema enforced
publish_videomedia source
Exactly one of video_url or media_handle

A media handle must reach stored through get_media before publication.

Schema enforced
publish_videovideo_url
Syntactically valid URL when supplied

Runtime media checks apply after schema validation.

Schema enforced
publish_videomedia_handle
Valid workspace-scoped pd_media_ handle when supplied

Cross-workspace, missing, pending, and failed handles are rejected without revealing another workspace's object.

Runtime enforced
publish_videomedia host
HTTPS host; no credentials or port

Without the production media resolver, localhost and private or special literal IPs are rejected.

Runtime enforced
publish_videoproduction media source URL
Configured source host; no query or fragment

Enforced when production media storage is active, before internal delivery-host resolution.

Conditional runtime
publish_videomedia response
HTTP 200 or 206

Postdom performs a byte-range reachability read before review.

Runtime enforced
publish_videoContent-Type
video/* or application/octet-stream

A present incompatible type is rejected. For a media_handle the declared type is checked against each destination, so a QuickTime handle is refused by a destination accepting only video/mp4. For a media_url a missing type, or application/octet-stream, is unknown and passes: nothing declared it, so no destination rule can be tested against it.

Runtime enforced
publish_videomedia size
At most 500 MB

Checked whenever the size is known, whether or not production media storage is active. A media_handle always has one, because it was declared and signed for at upload. A media_url whose origin returns no length is published unchecked against this cap.

Runtime enforced
publish_videoper-destination delivery
The size and format limits recorded for each targeted destination

Checked against the destinations a post targets, not the platforms declared at upload. A recorded limit may come from the platform or from the route Postdom delivers through, so a refusal names the destination that cannot receive the video without claiming whose limit stopped it. The whole post is refused; publish the rest in a separate request.

Runtime enforced
Instagram Reelscaption
2,200 characters

Preflight marks attention above this value; the request schema does not reject it.

Warning only
globalvideo duration
At most 10 minutes

Recorded metadata; current request and media validation do not enforce duration.

Unvalidated guidance
globalmedia format
MP4 or QuickTime

Recorded metadata; a generic video/* response can currently pass reachability.

Unvalidated guidance
Instagram Reelsvideo duration
At most 90 seconds

Recorded guidance, not current runtime validation.

Unvalidated guidance

Nine modeled fields

Metric availability

The matrix describes the modeled baseline. It does not prove that this destination currently returns a non-null value.

MetricStateBaselineValue behavior
viewsViews

Required view count in a normalized snapshot.

available

21 August 2026

Numeric when a snapshot exists. Zero remains zero.

likesLikes

Required like count in a normalized snapshot.

available

21 August 2026

Numeric when a snapshot exists. Zero remains zero.

commentsComments

Required comment count in a normalized snapshot.

available

21 August 2026

Numeric when a snapshot exists. Zero remains zero.

sharesShares

Required share count in a normalized snapshot.

available

21 August 2026

Numeric when a snapshot exists. Zero remains zero.

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.

available

21 August 2026

Numeric when evidence exists; otherwise null without a guaranteed reason.

avg_watch_pctAverage watch

Nullable average watched percentage.

estimable

21 August 2026

May be derived from suitable evidence; no value is guaranteed.

completion_pctCompletion

Nullable completion percentage.

estimable

21 August 2026

May be derived from suitable evidence; no value is guaranteed.

follower_deltaFollower delta

Nullable follower-change field.

estimable

21 August 2026

Currently normalized to null; derivation is not promised.

Verification scope

Evidence boundary

Modeled, then observed

Baseline classifications were recorded on 21 August 2026. Real test accounts and publish paths were checked on 22 August 2026; fresh per-platform analytics remained pending.

Never and unverified fields include explicit reasons. Other null values may have a null reason.

VERIFIED · 26 AUGUST 2026Configured adapter · Platform metadata · Modeled metric baseline

Private test identifiers are intentionally excluded from public documentation.