Posts

Create a draft post

Creates a post in draft status. Nothing is published or scheduled by this call. Use POST /posts/{postId}/schedule or POST /schedule afterwards. Upload media first via POST /storage/presign and pass the returned resolvedKey values in mediaUrls; referencing a key here also claims it so the orphan-upload sweeper will not delete it. Only the returned id comes back; read the post with GET /posts/{postId}.

post/posts

Request

  • Base URL: https://www.juzpost.com/api/cli/v1
  • URL: https://www.juzpost.com/api/cli/v1/posts
  • Auth: HTTP bearer

Request body

contentstring

The post body or caption, up to 2200 characters. Defaults to an empty string. Per-platform limits are enforced later, at schedule time.

mediaUrlsstring[]

Storage keys of already-uploaded media, using the resolvedKey values returned by POST /storage/presign. Listing a key here claims it so it will not be swept away as an orphan. These are storage keys, not public URLs.

titlestring

Title stored in the post's metadata. Note that scheduling re-validates titles against a 100-character limit, so keep it under that if the post will be scheduled.

descriptionstring

Long-form description stored in the post's metadata, used by platforms that have a description field separate from the caption.

hashtagsstring[]

Hashtags stored in the post's metadata. Do not include the leading #.

type'text' | 'image' | 'video' | 'story' | 'blog'

What kind of content the post carries. Anything other than text and blog must have at least one media key before it can be scheduled. blog is a WordPress blog post: title is required and description is the body, HTML sent as written (plain text works, blank lines become paragraphs). The first image is the featured image and any others are added under the body. Images only.

coverR2Keystring

Storage key of a cover image already uploaded via POST /storage/presign. Referencing it here also claims it against the orphan sweeper.

Response

Draft created.

idstring uuid required

The post id.

Changes

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