CMS

Dry-run a CMS post create

Rehearse POST /cms/posts without writing anything. Runs the same structural gates the create path runs — required fields and length caps, scalar shape checks (status enum, HTTPS URLs, ISO 8601 published_at), site ownership plus the CMS-enabled and per-site CMS feature gates, the content-type enum and its plan gate, the robots enum, content_type_config object/size/per-type schema, slug availability, and whether sanitization would alter your HTML. No rows are written and no images are fetched or rehosted. Requires the write:content scope because it rehearses a write and reveals plan and feature-gate state. valid: true means every structural gate would pass; taxonomy (authors, categories, tags, FAQs) and related_post_ids are not checked here, so a create can still reject a malformed taxonomy payload. Site gates and the slug preview only run once the site is confirmed to belong to your organization, so this endpoint cannot probe another organization's slugs or entitlements — an unowned or unknown site_id simply comes back as a site_id error rather than a 404. It also returns a content-rules preflight (rules) using the same evaluation the publish gate applies, so you can see a block coming before writing; rules is advisory and never affects valid, and it is null when site_id or content was not a string, or when the preflight itself failed.

post/cms/posts/validate

Request

  • Base URL: https://next.frase.io/api/v1
  • URL: https://next.frase.io/api/v1/cms/posts/validate
  • Auth: API key in header X-API-KEY

Request body

site_idstring uuid

Must be a valid UUID owned by your organization, or it is reported as a site_id error.

titlestring
contentstring

HTML body. Also used for the sanitization check and the rules preflight.

typestring

Canonical content type. Checked against the content-type taxonomy and your plan's allowed CMS types.

status'draft' | 'published' | 'scheduled'
slugstring

Used as the slug base; falls back to the title when omitted.

robots'index,follow' | 'noindex,follow' | 'noindex,nofollow' | 'index,nofollow'
excerptstring
seo_titlestring
seo_descriptionstring
featured_imagestring uri

Must be HTTPS.

canonical_urlstring uri

Must be HTTPS.

og_imagestring uri

Must be HTTPS.

og_titlestring
published_atstring date-time
content_type_configobject

Per-content-type configuration object. Must be a JSON object (not an array), at most 65536 bytes serialized, and must parse against the schema registered for the resolved type.

Response

Validation ran. Read valid for the verdict — a 200 does not mean the input is acceptable.

Changes

No recorded changes to this operation across all 1 revision of this API.