API resource
Shopify blog
A connected Shopify store is not a posting target: it has a blog and a catalog. These calls write the blog (a store can hold several blogs, each with its own articles) and are the long form of the Blog endpoints, which pick the site and blog for you. They work on a WordPress site too, where a site has one blog. Blog, article and product ids are the store's own numeric ids. Connect a store with GET /v1/connect/shopify?shop=your-store.myshopify.com, or with an Admin API token (below).
Connect Shopify with an Admin API token
/v1/connect/shopifyWorks on: Shopify
Body
shopstringrequiredThe store address: your-store.myshopify.com, or the bare your-store prefix.
access_tokenstringrequiredThe custom app's Admin API access token (starts with shpat_).
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/connect/shopify" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shop": "your-store.myshopify.com",
"access_token": "shpat_..."
}'{
"connected": true,
"id": "acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H",
"shop": "your-store.myshopify.com",
"name": "Your Store"
}List blogs
/v1/accounts/{accountId}/blogsWorks on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
Query parameters
limitintegerPage size (1-50).
cursorstringOpaque cursor from a previous response. Omit for the first page.
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"blogs": [
{
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string"
}
],
"nextCursor": "string"
}Create a blog
/v1/accounts/{accountId}/blogsWorks on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
Body
titlestringrequiredhandlestringURL slug. Generated from the title when omitted.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string"
}'{
"platform": "shopify",
"blog": {
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string"
}
}Delete a blog
/v1/accounts/{accountId}/blogs/{blogId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
blogIdstringrequiredPlatform-native numeric blog id. Non-numeric values return 400.
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Get a blog
/v1/accounts/{accountId}/blogs/{blogId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"blog": {
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string"
}
}Update a blog
/v1/accounts/{accountId}/blogs/{blogId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
blogIdstringrequiredPlatform-native numeric blog id. Non-numeric values return 400.
Body
titlestringhandlestringURL slug. Changing it changes the blog URL on the store.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string"
}'{
"platform": "shopify",
"blog": {
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string"
}
}List blog articles
/v1/accounts/{accountId}/blogs/{blogId}/articlesWorks on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
Query parameters
limitintegerPage size (1-50).
cursorstringOpaque cursor from a previous response. Omit for the first page.
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419/articles" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"articles": [
{
"id": "string",
"blogId": "121793282419",
"platform": "shopify",
"title": "string",
"bodyHtml": "string",
"handle": "string",
"tags": [
"string"
],
"author": "string",
"excerpt": "string",
"image": {
"url": "string",
"altText": "string"
},
"isPublished": true,
"publishedAt": "2026-10-10T00:00:00.000Z",
"status": "publish",
"publishDate": "2026-10-10T00:00:00.000Z",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z"
}
],
"nextCursor": "string"
}Create a blog article
/v1/accounts/{accountId}/blogs/{blogId}/articlesWorks on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
Body
titlestringrequiredbodyHtmlstringArticle body as HTML.
handlestringURL slug. Generated from the title when omitted.
tagsstring[]Tag names. WordPress resolves existing names case-insensitively and creates missing tags.
authorstringShopify author display name, or numeric WordPress user id serialized as a string. Assigning another WordPress user may require elevated capability.
excerptstringShort summary shown in blog listings.
imageobjectFeatured image from a public URL. WordPress downloads it into the media library; JPEG, PNG, GIF and WebP are accepted up to 10 MB.
seoobjectShopify only. Search-engine overrides mapped to global title_tag and description_tag metafields. WordPress rejects this field.
isPublishedbooleanSet false for a draft or true to publish. On WordPress false takes priority over a future publishDate; omission with no date defaults to draft.
publishDatestringISO 8601 datetime with offset (or Z). A future date schedules publication natively on the platform.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419/articles" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string"
}'{
"platform": "shopify",
"article": {
"id": "string",
"blogId": "121793282419",
"platform": "shopify",
"title": "string",
"bodyHtml": "string",
"handle": "string",
"tags": [
"string"
],
"author": "string",
"excerpt": "string",
"image": {
"url": "string",
"altText": "string"
},
"isPublished": true,
"publishedAt": "2026-10-10T00:00:00.000Z",
"status": "publish",
"publishDate": "2026-10-10T00:00:00.000Z",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z"
}
}Delete a blog article
/v1/accounts/{accountId}/blogs/{blogId}/articles/{articleId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
articleIdstringrequiredPlatform-native numeric article id. Non-numeric values return 400.
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419/articles/589234567890" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Get a blog article
/v1/accounts/{accountId}/blogs/{blogId}/articles/{articleId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
articleIdstringrequiredPlatform-native numeric article id. Non-numeric values return 400.
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419/articles/589234567890" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"article": {
"id": "string",
"blogId": "121793282419",
"platform": "shopify",
"title": "string",
"bodyHtml": "string",
"handle": "string",
"tags": [
"string"
],
"author": "string",
"excerpt": "string",
"image": {
"url": "string",
"altText": "string"
},
"isPublished": true,
"publishedAt": "2026-10-10T00:00:00.000Z",
"status": "publish",
"publishDate": "2026-10-10T00:00:00.000Z",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z"
}
}Update a blog article
/v1/accounts/{accountId}/blogs/{blogId}/articles/{articleId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify or WordPress account id.
blogIdstringrequiredPlatform-native numeric blog/site id returned by the list operation.
articleIdstringrequiredPlatform-native numeric article id. Non-numeric values return 400.
Body
titlestringbodyHtmlstringArticle body as HTML.
handlestringURL slug of the article.
tagsstring[]Replaces the full tag-name list. WordPress resolves existing names case-insensitively and creates missing tags.
authorstringShopify author display name, or numeric WordPress user id serialized as a string. Assigning another WordPress user may require elevated capability.
excerptstringShort summary shown in blog listings.
imageobjectFeatured image from a public URL. WordPress downloads it into the media library; JPEG, PNG, GIF and WebP are accepted up to 10 MB. Omit to preserve it; null removal is not supported.
seoobjectShopify only. Search-engine overrides mapped to global title_tag and description_tag metafields. WordPress rejects this field.
isPublishedbooleanSet false to move to draft or true to publish. On WordPress false takes priority over a future publishDate; omission preserves status unless publishDate is sent.
publishDatestringISO 8601 datetime with offset (or Z). A future date schedules publication natively on the platform.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/blogs/121793282419/articles/589234567890" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string"
}'{
"platform": "shopify",
"article": {
"id": "string",
"blogId": "121793282419",
"platform": "shopify",
"title": "string",
"bodyHtml": "string",
"handle": "string",
"tags": [
"string"
],
"author": "string",
"excerpt": "string",
"image": {
"url": "string",
"altText": "string"
},
"isPublished": true,
"publishedAt": "2026-10-10T00:00:00.000Z",
"status": "publish",
"publishDate": "2026-10-10T00:00:00.000Z",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z"
}
}List products
/v1/accounts/{accountId}/productsWorks on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
Query parameters
limitintegerPage size (1-50).
cursorstringOpaque cursor from a previous response. Omit for the first page.
statusstringOnly products in this status. One of: active, draft, archived.
querystringPlatform product search syntax, passed through verbatim (Shopify: title, vendor, product_type, tag, sku, handle, created_at, updated_at, ...).
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/products" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"products": [
{
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string",
"descriptionHtml": "string",
"vendor": "string",
"productType": "string",
"tags": [
"string"
],
"status": "active",
"featuredImage": {
"url": "string",
"altText": "string"
},
"images": [
{}
],
"options": [
{}
],
"variants": [
{}
],
"seo": {
"title": "string",
"description": "string"
},
"totalInventory": 0,
"onlineStoreUrl": "string",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z",
"publishedAt": "2026-10-10T00:00:00.000Z"
}
],
"nextCursor": "string"
}Get a product
/v1/accounts/{accountId}/products/{productId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
productIdstringrequiredPlatform-native numeric product id. Non-numeric values return 400.
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/products/8214569812345" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"platform": "shopify",
"product": {
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string",
"descriptionHtml": "string",
"vendor": "string",
"productType": "string",
"tags": [
"string"
],
"status": "active",
"featuredImage": {
"url": "string",
"altText": "string"
},
"images": [
{
"url": "string",
"altText": "string"
}
],
"options": [
{
"name": "string",
"values": []
}
],
"variants": [
{
"id": "string",
"title": "string",
"sku": "string",
"barcode": "string",
"price": "string",
"compareAtPrice": "string",
"inventoryQuantity": 0,
"availableForSale": true,
"selectedOptions": []
}
],
"seo": {
"title": "string",
"description": "string"
},
"totalInventory": 0,
"onlineStoreUrl": "string",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z",
"publishedAt": "2026-10-10T00:00:00.000Z"
}
}Update a product
/v1/accounts/{accountId}/products/{productId}Works on: Shopify, WordPress
Path parameters
accountIdstringrequiredConnected Shopify account id.
productIdstringrequiredPlatform-native numeric product id. Non-numeric values return 400.
Body
titlestringdescriptionHtmlstringProduct description as HTML.
handlestringURL slug of the product.
vendorstringproductTypestringtagsstring[]Replaces the full tag list.
statusstringarchived hides the product everywhere; draft keeps it editable but unpublished.
seoobjectSearch-engine title and description overrides.
variantsobject[]Price changes per variant. Only the listed variants change.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sh4Vp9Kz2Ny7Tx3Lm1Rc6Wb5Js8Df0Ga4Ue7Ki2Oq3H/products/8214569812345" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "string"
}'{
"platform": "shopify",
"product": {
"id": "string",
"platform": "shopify",
"title": "string",
"handle": "string",
"descriptionHtml": "string",
"vendor": "string",
"productType": "string",
"tags": [
"string"
],
"status": "active",
"featuredImage": {
"url": "string",
"altText": "string"
},
"images": [
{
"url": "string",
"altText": "string"
}
],
"options": [
{
"name": "string",
"values": []
}
],
"variants": [
{
"id": "string",
"title": "string",
"sku": "string",
"barcode": "string",
"price": "string",
"compareAtPrice": "string",
"inventoryQuantity": 0,
"availableForSale": true,
"selectedOptions": []
}
],
"seo": {
"title": "string",
"description": "string"
},
"totalInventory": 0,
"onlineStoreUrl": "string",
"createdAt": "2026-10-10T00:00:00.000Z",
"updatedAt": "2026-10-10T00:00:00.000Z",
"publishedAt": "2026-10-10T00:00:00.000Z"
}
}