curl --request GET \
--url https://store.salesive.com/api/v1/blogs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'x-shop-id: <api-key>'import requests
url = "https://store.salesive.com/api/v1/blogs/{id}"
headers = {
"Authorization": "Bearer <token>",
"x-shop-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'x-shop-id': '<api-key>'}
};
fetch('https://store.salesive.com/api/v1/blogs/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://store.salesive.com/api/v1/blogs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-shop-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://store.salesive.com/api/v1/blogs/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("x-shop-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://store.salesive.com/api/v1/blogs/{id}")
.header("Authorization", "Bearer <token>")
.header("x-shop-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://store.salesive.com/api/v1/blogs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["x-shop-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"slug": "<string>",
"excerpt": "<string>",
"thumbnail": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"content": "<string>",
"author": {
"name": "<string>",
"avatar": "<string>"
}
}Get blog by ID or slug
Retrieve the full content of a specific blog post by its ID or slug.
curl --request GET \
--url https://store.salesive.com/api/v1/blogs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'x-shop-id: <api-key>'import requests
url = "https://store.salesive.com/api/v1/blogs/{id}"
headers = {
"Authorization": "Bearer <token>",
"x-shop-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'x-shop-id': '<api-key>'}
};
fetch('https://store.salesive.com/api/v1/blogs/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://store.salesive.com/api/v1/blogs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-shop-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://store.salesive.com/api/v1/blogs/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("x-shop-id", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://store.salesive.com/api/v1/blogs/{id}")
.header("Authorization", "Bearer <token>")
.header("x-shop-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://store.salesive.com/api/v1/blogs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["x-shop-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"slug": "<string>",
"excerpt": "<string>",
"thumbnail": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"content": "<string>",
"author": {
"name": "<string>",
"avatar": "<string>"
}
}Request
GET /blogs/the-art-of-acquisition
x-shop-id: {{shopId}}
Headers
| Header | Type | Description |
|---|---|---|
x-shop-id | string | Identify the shop context. |
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Blog post ID or slug. |
Successful response
{
"status": 200,
"success": true,
"message": "Blog found",
"data": {
"_id": "6a17abd9c12ba5b55a03afa8",
"title": "The Art of Acquisition",
"image": "https://cdn.dribbble.com/userupload/43590559/file/original.png",
"description": "",
"content": "<p>Full blog post content here...</p>",
"tags": ["art", "new"],
"shop": "68b8f52575da81b332af29f1",
"author": {
"_id": "68b8f4aecafb9a1167c25b8e",
"name": "Jane Smith",
"avatar": "https://cdn.salesive.com/avatars/jane.jpg"
},
"published": true,
"publishedAt": "2026-05-28T02:43:37.081Z",
"views": 3,
"createdAt": "2026-05-28T02:43:37.083Z",
"updatedAt": "2026-06-09T08:49:17.600Z",
"slug": "the-art-of-acquisition",
"__v": 0,
"id": "6a17abd9c12ba5b55a03afa8"
}
}
Error response
{
"status": 404,
"success": false,
"message": "Blog not found",
"data": {}
}
Authorizations
JWT issued by the Salesive Store API for authenticated shoppers.
Optional storefront identifier sent as a header to scope responses to a specific shop. Try It requests remember this value once provided.
Headers
Optional identifier that scopes responses to a specific storefront when the referer cannot be inferred.
Path Parameters
Unique blog post identifier.
Response
Blog detail response.
Unique blog post identifier.
Human-readable title for the blog post.
URL-friendly slug for the blog post.
Short teaser text shown on listing pages.
Featured image URL for the blog post.
Publication timestamp in ISO 8601 format.
Workflow status such as draft, scheduled, or published.
Timestamp of the most recent update.
Full HTML content of the blog post.
Author metadata for the blog post.
Show child attributes
Show child attributes
Was this page helpful?

