Create a draft post.
Create a draft post.
https://app.softsolz.uk/api/v1/services/blogs/postsRecent Requests
Kept only in this browserHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
titlestringrequiredPost title.
body_htmlstringrequiredPost body as HTML; sanitized server-side. To place an image you sent with POST /files, use <img src="file:<file_id>" alt="...">.
subtitlestringOptional subtitle.
excerptstringOptional excerpt; auto-generated from the body when omitted.
slugstringOptional URL slug; defaults to a slugified title.
cover_image_urlstringCover image URL.
cover_image_altstringCover image alt text.
og_image_urlstringOpen Graph image URL.
cover_image_file_idstringUse an image sent with POST /files or POST /files/upload-links as the cover.
og_image_file_idstringUse an image sent with POST /files or POST /files/upload-links as the share image.
seo_titlestringSEO title override.
seo_descriptionstringSEO description override.
categorystringCategory label.
tagsarray of stringsTags.
authorstringDisplay author/byline name.
author_image_urlstringByline avatar image URL (person photo or company logo). Falls back to the blog-wide default byline.
cta_labelstringOptional call-to-action label.
cta_urlstringOptional call-to-action URL.
featuredbooleanFeature this post.
no_indexbooleanExclude from search engines.
comments_enabledbooleanAllow readers to post comments on this post.
Response
Response Body
idstringPost id (numeric string).tenant_idstringOwning tenant id.slugstringURL-safe post slug.titlestringPost title.subtitlestring | nullOptional subtitle.excerptstring | nullShort excerpt.body_htmlstringPost body as sanitized HTML.body_formatstringBody format.cover_image_urlstring | nullCover image URL.cover_image_altstring | nullCover image alt text.og_image_urlstring | nullOpen Graph image URL.seo_titlestring | nullSEO title override.seo_descriptionstring | nullSEO description override.categorystring | nullCategory label.tagsarray of stringsTags.authorstring | nullDisplay author/byline name.author_image_urlstring | nullByline avatar image URL.reading_time_minutesintegerEstimated reading time.statusstringPost status.featuredbooleanWhether the post is featured.no_indexbooleanExcluded from search engines.comments_enabledbooleanWhether comments are open on this post.show_tocbooleanWhether a table of contents is shown on this post.show_sharebooleanWhether reader share buttons are shown.show_datebooleanWhether the publish date is shown.show_reading_timebooleanWhether the reading time is shown.cta_labelstring | nullOptional call-to-action label.cta_urlstring | nullOptional call-to-action URL.view_countstringTotal view count (numeric string).published_atstring | nullWhen the post was published; null until then.scheduled_forstring | nullWhen the post is scheduled to publish; null unless scheduled.created_byinteger | nullUser id that created the post.created_atstringCreation timestamp.updated_atstringLast update timestamp.Request
curl --request POST \ --url https://app.softsolz.uk/api/v1/services/blogs/posts \ --header 'Authorization: Bearer sk_live_your_key' \ --header 'Content-Type: application/json' \ --data '{ "title": "Launch announcement", "body_html": "<p>Hello world</p>", "subtitle": "A short subtitle", "slug": "launch-announcement", "category": "Product", "tags": [ "news" ], "author": "The SoftSolz team", "featured": false, "no_index": false, "comments_enabled": false}'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 201
{ "data": { "id": "42", "tenant_id": "your-tenant-id", "slug": "your-slug", "title": "your-title", "subtitle": "your-subtitle", "excerpt": "your-excerpt", "body_html": "your-body-html", "body_format": "html", "cover_image_url": "https://example.com", "cover_image_alt": "your-cover-image-alt", "og_image_url": "https://example.com", "seo_title": "your-seo-title", "seo_description": "your-seo-description", "category": "your-category", "tags": [ "your-tags" ], "author": "your-author", "author_image_url": "https://example.com", "reading_time_minutes": 1, "status": "draft", "featured": true, "no_index": true, "comments_enabled": true, "show_toc": true, "show_share": true, "show_date": true, "show_reading_time": true, "cta_label": "your-cta-label", "cta_url": "https://example.com", "view_count": "128", "published_at": "2026-01-01T09:00:00.000Z", "scheduled_for": "2026-01-01T09:00:00.000Z", "created_by": 1, "created_at": "2026-01-01T09:00:00.000Z", "updated_at": "2026-01-01T09:00:00.000Z" }}