validate_post
Read-onlyIdempotent
Validate and normalize one post without creating it. This is non-destructive: it 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
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Post caption/text. On Instagram, @username creates a caption mention only; it is not a native media tag or collaborator invitation. Ignored when thread_posts is provided. | |
| metadata | No | ||
| platform | No | Platform name when using username. Supported: instagram, facebook, tiktok, twitter, linkedin, youtube, pinterest, threads, google_business, telegram, bluesky, discord, slack, mastodon, devto, hashnode, wordpress, lemmy. Aliases x, gmb, and instagram-standalone are also accepted by the API. | |
| settings | No | Deprecated alias of platform_settings (or instagram_settings for Instagram). Prefer those instead. | |
| username | No | Account username; requires platform. | |
| media_url | No | Media URL. 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. | |
| post_type | No | Optional post type. Omit for auto-detection from media. Supported semantic values include text, image, video, carousel, reel, story, story_series, document, x_thread, threads_thread, photo, and cover_photo. | |
| account_id | No | Social account ID from list_accounts. | |
| media_urls | No | Media URLs. Posterly storage URLs are used as-is; third-party HTTP(S) URLs are copied into posterly storage before the post is saved. | |
| scheduled_at | No | ISO 8601 UTC datetime. Omit to publish immediately. | |
| thread_posts | No | For X or Threads: 2+ entries, one per post in the reply chain. | |
| workspace_id | No | Workspace ID from whoami. | |
| platform_settings | No | Platform-specific composer controls, flattened across all platforms (unrelated fields ignored). Required: YouTube title; Pinterest board_id (cover_image_url also required for video Pins); Lemmy community. Accepted via passthrough but not listed below: Lemmy community/title, Dev.to canonical_url, Hashnode publication_id, Telegram parse_mode/disable_web_page_preview, Google Business post_type (STANDARD/EVENT/OFFER, alias topic_type), TikTok auto_add_music/photo_cover_index/media_type, Facebook post_type (incl. cover_photo), Mastodon language. Call list_platforms with view=schema and account_id for the full field list and examples. | |
| instagram_settings | No | Instagram-specific settings. Distinguish caption @mentions (put @username in caption) from native media tags (user_tags) and co-author invitations (collaborators). Call list_platforms with view=schema and account_id first. |