Validate post
Authorization
Request Body
platform_posts[]
Response Body
200
401
422
500
Status Code Boundary
POST /v1/posts/validate separates request-shape errors from publishability checks. A request that follows the API contract returns 200; read data.valid, data.errors, and data.warnings to decide whether the content can be published.
UniPost returns 422 when the JSON request is outside the API contract, including mixed legacy and new publishing shapes. For example, platform_posts[].platform_options.instagram is invalid because the recommended platform_posts[] shape expects flat destination options.
Platform Options Shape
Use one request shape at a time. The legacy account_ids shape accepts top-level platform-scoped options such as platform_options.instagram.mediaType. The recommended platform_posts[] shape is already scoped to one destination, so each platform_posts[].platform_options object must be flat, such as {"mediaType":"story"}.
For Instagram Stories in the recommended shape, send {"mediaType":"story"} directly under platform_posts[].platform_options. Do not send {"instagram":{"mediaType":"story"}} there; that nested object is only valid in the legacy top-level platform_options shape. See Publish Instagram Stories for examples.