POST/v1/blogs/{subdomain}/posts/{id}/publish

Publish a post

Makes a post visible. This is the only effect: no newsletter is sent and no cross-posting is triggered (those are separate, explicit actions). A future `publishedAt` schedules the post. Defaults to today when omitted. Publishing an already-published post is a no-op.

Parameters

Name In Type Description
subdomain*
pathstring
id*
pathstring

Request Body

application/json

publishedAtstring (date)optional

Publication date (ISO 8601). A future date schedules the post. Defaults to today when omitted.

Responses

200Post published
idstringrequired

Unique post identifier

titlestringrequired

Post title

slugstringrequired

URL-safe slug

excerptstringoptional

Short excerpt or teaser text, if provided by the author

contentstringrequired

Full post body in the format described by `contentFormat`

contentFormatstringrequired

Format of the `content` field. Currently always `markdown`.

publishedAtstring (date)optional

Date the post was published (ISO 8601 date). Null if the post is not yet published.

updatedAtstring (date-time)required

Date and time the post was last updated (ISO 8601 datetime)

coverImageUrlstringoptional

URL of the post cover image

urlstringrequired

Canonical public URL of the post

accessModestringrequired

Content access mode: FREE (visible to all readers) or PAID (requires an active paid subscription)

clapsinteger (int64)required

Total number of claps / reactions the post has received

tagsobject[]required

Tags associated with this post

namestringrequired

Human-readable tag name

slugstringrequired

URL-safe slug — use as the `tag` query parameter when filtering posts

authorsobject[]required

Authors credited on this post

namestringrequired

Display name of the author

avatarUrlstringoptional

URL of the author's avatar image

shortBiostringoptional

Short one-line biography suitable for bylines

Code example

POST/v1/blogs/{subdomain}/posts/{id}/publish
curl -X POST \
  -H "Accept: application/json" \
  "http://localhost:8080/v1/blogs/<subdomain>/posts/<id>/publish"
POST/v1/blogs/{subdomain}/posts/{id}/publish
curl -X POST \
  -H "Accept: application/json" \
  "http://localhost:8080/v1/blogs/<subdomain>/posts/<id>/publish"