Skip to main content
POST
/
blogs
Create a blog post
curl --request POST \
  --url https://api.salesive.com/api/v1/blogs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Summer Sale Tips",
  "description": "How to make the most of our summer promotions.",
  "content": "<p>Full HTML content...</p>",
  "image": "https://cdn.salesive.com/blog/summer.jpg",
  "tags": [
    "sales",
    "summer"
  ],
  "published": true
}
'
{
  "status": 201,
  "success": true,
  "message": "Blog created successfully",
  "data": {
    "_id": "66c2a1b2c3d4e5f6a7b8c9d0",
    "title": "Summer Sale Tips",
    "slug": "summer-sale-tips",
    "image": "https://cdn.salesive.com/blog/summer.jpg",
    "description": "How to make the most of our summer promotions.",
    "content": "<p>Full HTML content...</p>",
    "tags": [
      "sales",
      "summer"
    ],
    "shop": "66a0d1c2b3a4958677564738",
    "author": {
      "_id": "66a0e1b2c3d4e5f6a7b8c9d0",
      "name": "Jane Merchant",
      "email": "jane@example.com",
      "avatar": "https://cdn.salesive.com/avatars/jane.png"
    },
    "published": true,
    "publishedAt": "2026-06-28T12:00:00.000Z",
    "views": 0,
    "createdAt": "2026-06-28T12:00:00.000Z",
    "updatedAt": "2026-06-28T12:00:00.000Z"
  }
}
Creates a blog post; a unique slug is generated from the title and publishedAt is set when the post is created as published. The owning store and author are set server-side — never send a shop id.

Authorizations

Authorization
string
header
required

Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.

Body

application/json

Fields accepted when creating a blog post.

title
string
required

Post title (max 200 characters). Used to generate the slug.

Maximum string length: 200
content
string
required

Post body (HTML or rich text).

description
string
default:""

Short summary/excerpt (max 500 characters). Defaults to empty string.

Maximum string length: 500
image
string
default:""

Cover image URL. Defaults to empty string.

tags
string[]

Array of tag strings. Defaults to empty array.

published
boolean
default:false

Whether the post is published. Defaults to false (draft).

Response

The created blog post.

Standard Salesive response envelope. The operation-specific payload is carried in data.

status
integer
required

HTTP status code, echoed in the body.

success
boolean
required

Whether the request succeeded.

message
string
required

Human-readable result message.

data
object

A store-scoped blog post with its author populated.