validate_post
Validate and normalize a post before publishing without creating it or consuming quotas. Use it to catch media issues and preview the final result before confirmation.
Instructions
Validate and normalize one post without creating it. This does not create records, copy remote media, consume post-item/storage quota, reserve X quota, emit webhooks, or enqueue publication. Third-party media may return remote_media_not_materialized because live create performs storage copy and final byte validation. Use this before showing the final preview and asking for confirmation to call create_post.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | The post caption/text content. On Instagram, @username is a caption mention, not a native tag or collaborator invite. Optional on Instagram Stories (first slide only in a series). Ignored when `thread_posts` is provided. | |
| platform | No | Platform name (required with username). Supported: instagram, facebook, tiktok, twitter, linkedin, youtube, pinterest, threads, google_business, telegram, bluesky, discord, slack, mastodon, devto, hashnode, wordpress, lemmy. Aliases such as x, gmb, and instagram-standalone are accepted. | |
| username | No | Account username (alternative to account_id) | |
| media_url | No | Media URL to attach. Posterly storage URLs are used as-is; third-party HTTP(S) URLs are copied into posterly storage before the post is saved. Short-lived signed URLs must still be live when this tool runs. For threads, attaches to the lead post only. | |
| post_type | No | Optional post type: text, image, video, carousel, reel, story, story_series, document, photo, cover_photo, x_thread, or threads_thread. Omit it for auto-detection from media. For TikTok photo posts, use photo/image/carousel or omit it; for Facebook cover photos, use cover_photo or platform_settings.post_type. | |
| account_id | No | Social account ID (from list_accounts) | |
| media_urls | No | Multiple media URLs for carousel or multi-image posts. Posterly storage URLs are used as-is; third-party HTTP(S) URLs are copied into posterly storage before the post is saved. For TikTok, 2 or more images auto-create a photo slideshow (up to 35 images) and every image is posted. | |
| scheduled_at | No | ISO 8601 datetime for scheduling (e.g. 2026-03-05T09:00:00Z). Omit for immediate publish. | |
| thread_posts | No | For X or Threads only: array of 2+ strings, one per post in the thread. The first entry leads, the rest reply in order. When set, the platform must be twitter or threads. | |
| workspace_id | No | Workspace ID to assign the post to (from whoami). If omitted, uses the account's workspace or the caller's default workspace. | |
| platform_settings | No | Platform-specific settings for the selected account. Use this for non-Instagram settings and prefer it over raw metadata. | |
| instagram_settings | No | Instagram-specific settings. If “tag” is ambiguous, distinguish caption @mentions (put @username in caption), native media tags (user_tags), and co-author invitations (collaborators). Native media tags work with eligible direct or Meta-linked accounts; collaborators require an eligible Meta-linked account. Call list_platforms with view=schema and account_id first. |