/v1/blogs/{subdomain}/postsCreates a new post as a draft. The post is never published by this call; use the publish endpoint to make it visible.
The slug is optional: when omitted it is generated from the title.
onConflict decides what happens when that slug is already taken on the blog:
DEDUPLICATE (default): the slug is suffixed (-2, -3…) and a new post is
created. Replaying the request creates another post, so keep the returned id
as your reference.UPDATE: the slug identifies the post. The existing one is updated in place and
200 is returned instead of 201, which makes this call safe to replay. Fields
absent from the payload are left unchanged, as with a partial update. The
publication state is never changed here.The post author is the blog owner.
subdomainpathstringrequiredonConflictquerystringoptionalDEDUPLICATE (default) or UPDATEDEDUPLICATEOne ofDEDUPLICATEUPDATEapplication/json
titlestringrequiredcontentstringrequiredslugstringoptionalexcerptstringoptionalcoverImageUrlstringoptionaltagsstring[]optionalaccessModestringoptionalonConflict=UPDATE only)idstringrequiredtitlestringrequiredslugstringrequiredexcerptstringoptionalcontentstringrequiredcontentFormatcontentFormatstringrequiredcontent field. Currently always markdown.publishedAtstring (date)optionalupdatedAtstring (date-time)requiredcoverImageUrlstringoptionalurlstringrequiredaccessModestringrequiredclapsinteger (int64)requiredtagsobject[]requirednamestringrequiredslugstringrequiredtag query parameter when filtering postsauthorsobject[]requirednamestringrequiredavatarUrlstringoptionalshortBiostringoptional/v1/blogs/{subdomain}/postscurl -X POST \
-H "Accept: application/json" \
"https://api.writizzy.com/v1/blogs/<subdomain>/posts"