Destination · configured adapter
TikTok
The configured adapter uses private review defaults and preserves unavailable retention fields instead of fabricating values.
Configured output
Adapter behavior
Postdom builds these settings after publish_video validation. The configured tool schema does not accept a settings object.
privacy_level- SELF_ONLY
Keeps the configured publish private for review.
allow_comment- false
Disables comments in the configured adapter.
allow_duet- false
Disables duet in the configured adapter.
allow_stitch- false
Disables stitch in the configured adapter.
content_preview_confirmed- true
Records the required preview confirmation.
express_consent_given- true
Records the required express consent.
video_made_with_ai- true
Marks the video as AI-made.
These settings are added after tool validation. They are not publish_video inputs.
{
"platform": "tiktok",
"settings": {
"privacy_level": "SELF_ONLY",
"allow_comment": false,
"allow_duet": false,
"allow_stitch": false,
"content_preview_confirmed": true,
"express_consent_given": true,
"video_made_with_ai": true
}
}Enforcement layers
Media limits
Shared media rules apply before destination guidance. Recorded duration, format, and aspect guidance is not current runtime validation.
captionThe configured tool accepts up to 4,000 characters.
media probeHTTP 200 or 206 is required. A present incompatible content type is rejected.
production media storageSource-host and 500 MB checks apply when the configured resolver is active.
captionThe MCP boundary accepts an empty caption.
media sourceA media handle must reach stored through get_media before publication.
video_urlRuntime media checks apply after schema validation.
media_handleCross-workspace, missing, pending, and failed handles are rejected without revealing another workspace's object.
media hostWithout the production media resolver, localhost and private or special literal IPs are rejected.
production media source URLEnforced when production media storage is active, before internal delivery-host resolution.
media responsePostdom performs a byte-range reachability read before review.
Content-TypeA 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.
media sizeChecked 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.
per-destination deliveryChecked 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.
video durationRecorded metadata; current request and media validation do not enforce duration.
media formatRecorded metadata; a generic video/* response can currently pass reachability.
video durationRecorded guidance, not current runtime validation.
Nine modeled fields
Metric availability
The matrix describes the modeled baseline. It does not prove that this destination currently returns a non-null value.
viewsViewsRequired view count in a normalized snapshot.
21 August 2026
Numeric when a snapshot exists. Zero remains zero.
likesLikesRequired like count in a normalized snapshot.
21 August 2026
Numeric when a snapshot exists. Zero remains zero.
commentsCommentsRequired comment count in a normalized snapshot.
21 August 2026
Numeric when a snapshot exists. Zero remains zero.
sharesSharesRequired share count in a normalized snapshot.
21 August 2026
Numeric when a snapshot exists. Zero remains zero.
savesSavesNullable saved or favorited count.
Not verified
Always null with an explicit reason.
watch_time_sWatch timeNullable total watch time in seconds.
21 August 2026
Always null with an explicit reason.
avg_watch_pctAverage watchNullable average watched percentage.
21 August 2026
Always null with an explicit reason.
completion_pctCompletionNullable completion percentage.
21 August 2026
Always null with an explicit reason.
follower_deltaFollower deltaNullable follower-change field.
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.