How to Create Blog Posts with the Zepio Developer API
Written by Saurabh
Updated 2 weeks ago
Updated 2 weeks ago
Creating API Key
The Blog API allows you to create blog posts in your Zepio store using a secure API key.
Create API Key
- Login to your Zepio Admin Dashboard.
- Go to: Settings > Developer API
- Create a new API key and select this ability: Create blog posts
Use this API key when making requests to the Blog API.
Base URL
https://yourwebsite.com/api/developer/v1
Replace yourwebsite.com with your store domain.
Authentication
Send your API key as a Bearer Token in the request header.
Authorization: Bearer YOUR_API_KEY
Accept: application/json
Content-Type: application/json
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /blog/create |
Create a new blog post |
Create Blog Post
Creates a new blog post in your store.
POST /api/developer/v1/blog/create
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Blog post title. Maximum 200 characters |
content |
string | Yes | Full blog content. HTML content is supported |
slug |
string | No | Custom URL slug. If not provided, it will be generated from the title |
excerpt |
string | No | Short summary of the blog post. Maximum 500 characters |
author_name |
string | No | Author name. Maximum 200 characters |
meta_title |
string | No | SEO meta title. Maximum 200 characters |
meta_description |
string | No | SEO meta description. Maximum 250 characters |
featured_image_url |
string | No | Public URL of the featured image. Maximum 500 characters |
is_active |
boolean | No | Whether the blog post should be active or not. Default: false |
category_id |
integer | No | Blog category ID. Must be an existing category ID |
published_at |
datetime | No | Blog publish date and time |
Example Request
curl -X POST "https://yourwebsite.com/api/developer/v1/blog/create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"title": "How to Start an Online Grocery Store",
"slug": "how-to-start-an-online-grocery-store",
"excerpt": "Learn how to launch and grow your online grocery store.",
"content": "<h2>Introduction</h2><p>Starting an online grocery store is a great way to sell groceries online and manage local deliveries.</p>",
"author_name": "Admin",
"meta_title": "How to Start an Online Grocery Store",
"meta_description": "Learn how to start an online grocery store with products, payments, delivery and marketing.",
"featured_image_url": "https://example.com/images/grocery-store.jpg",
"is_active": true,
"category_id": 1,
"published_at": "2026-06-08 10:00:00"
}'
Minimal Example Request
{
"title": "My First Blog Post",
"content": "<p>This is my first blog post.</p>"
}
Example Response
{
"success": true,
"message": "Blog post created successfully.",
"data": {
"id": 15,
"title": "How to Start an Online Grocery Store",
"slug": "how-to-start-an-online-grocery-store",
"excerpt": "Learn how to launch and grow your online grocery store.",
"content": "<h2>Introduction</h2><p>Starting an online grocery store is a great way to sell groceries online and manage local deliveries.</p>",
"meta_title": "How to Start an Online Grocery Store",
"meta_description": "Learn how to start an online grocery store with products, payments, delivery and marketing.",
"featured_image_url": "https://example.com/images/grocery-store.jpg",
"category_id": 1,
"author_name": "Admin",
"is_active": true,
"published_at": "2026-06-08T10:00:00.000000Z",
"created_at": "2026-06-08T10:05:00.000000Z",
"updated_at": "2026-06-08T10:05:00.000000Z",
"category": {
"id": 1,
"name": "Business"
}
}
}
Response Fields
| Field | Description |
|---|---|
id |
Blog post ID |
title |
Blog post title |
slug |
Blog post URL slug |
excerpt |
Short summary of the blog post |
content |
Full blog content |
meta_title |
SEO meta title |
meta_description |
SEO meta description |
featured_image_url |
Featured image URL |
category_id |
Assigned blog category ID |
author_name |
Blog author name |
is_active |
Shows whether the blog post is active |
published_at |
Blog publish date and time |
created_at |
Date and time when the blog post was created |
updated_at |
Date and time when the blog post was last updated |
category |
Blog category details. Available when a category is assigned |
Notes
- The API key must have
Create blog postsability. -
titleandcontentare required. - If
slugis not provided, it will be automatically generated from the title. - The slug must be unique.
- If
is_activeis not provided, the blog post will be created as inactive. -
category_idmust be an existing blog category ID. -
contentcan contain HTML formatting such as headings, paragraphs, lists, links and images. -
featured_image_urlmust be a publicly accessible image URL.