Blogs
Blogs let you publish long-form content to your SMBcrm account. List the blog sites already set up, read and create posts on them, and look up the authors and categories used to organize your posts.
Base URL: https://services.smbcrm.com · Version header: v3 ·
Scopes: blogs/list.readonly (list sites), blogs/posts.readonly (list posts),
blogs/check-slug.readonly (check a URL slug), blogs/post.write (create a post),
blogs/post-update.write (update a post), blogs/author.readonly (list authors),
blogs/category.readonly (list categories). See Scopes.
List blog sites
Section titled “List blog sites”locationId, skip, and limit are required. Add searchTerm to filter by name. Each
site’s _id is the blogId you’ll use everywhere else on this page.
curl "https://services.smbcrm.com/blogs/site/all?locationId=<location_id>&limit=20&skip=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "data": [ { "_id": "<blog_id>", "name": "Company Blog" } ]}List blog posts
Section titled “List blog posts”locationId, blogId, limit, and offset are required. Add searchTerm to search by
title, or status to filter to one of ALL, PUBLISHED, SCHEDULED, ARCHIVED, or
DRAFT. See Pagination.
curl "https://services.smbcrm.com/blogs/posts/all?locationId=<location_id>&blogId=<blog_id>&limit=20&offset=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "blogs": [ { "_id": "<post_id>", "title": "5 Tips for Faster Onboarding", "description": "Getting new customers to their first win faster.", "status": "PUBLISHED", "urlSlug": "5-tips-for-faster-onboarding", "author": "<author_id>", "categories": ["<category_id>"], "tags": ["onboarding"], "archived": false, "publishedAt": "2026-01-15T00:00:00.000Z", "updatedAt": "2026-01-15T00:00:00.000Z" } ]}Create a blog post
Section titled “Create a blog post”title, locationId, blogId, imageUrl, description, rawHTML, status,
imageAltText, categories, author, urlSlug, and publishedAt are required. status
is one of DRAFT, PUBLISHED, SCHEDULED, or ARCHIVED. tags and canonicalLink are
optional.
curl -X POST https://services.smbcrm.com/blogs/posts \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "locationId": "<location_id>", "blogId": "<blog_id>", "title": "5 Tips for Faster Onboarding", "description": "Getting new customers to their first win faster.", "rawHTML": "<p>Getting new customers to their first win faster starts here.</p>", "imageUrl": "https://example.com/images/onboarding.jpg", "imageAltText": "A customer completing onboarding", "status": "DRAFT", "categories": ["<category_id>"], "tags": ["onboarding"], "author": "<author_id>", "urlSlug": "5-tips-for-faster-onboarding", "publishedAt": "2026-01-15T00:00:00.000Z" }'{ "data": { "_id": "<post_id>", "title": "5 Tips for Faster Onboarding", "description": "Getting new customers to their first win faster.", "status": "DRAFT", "urlSlug": "5-tips-for-faster-onboarding", "author": "<author_id>", "categories": ["<category_id>"], "tags": ["onboarding"], "archived": false, "publishedAt": "2026-01-15T00:00:00.000Z", "updatedAt": "2026-01-15T00:00:00.000Z" }}Update a blog post
Section titled “Update a blog post”This replaces the post, so send the full set of fields: title, locationId, blogId,
imageUrl, description, rawHTML, status, imageAltText, categories, author,
urlSlug, wordCount, and publishedAt are all required. tags and canonicalLink are
optional.
curl -X PUT https://services.smbcrm.com/blogs/posts/<post_id> \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "locationId": "<location_id>", "blogId": "<blog_id>", "title": "5 Tips for Faster Onboarding (Updated)", "description": "Getting new customers to their first win faster.", "rawHTML": "<p>Getting new customers to their first win faster starts here.</p>", "imageUrl": "https://example.com/images/onboarding.jpg", "imageAltText": "A customer completing onboarding", "status": "PUBLISHED", "categories": ["<category_id>"], "tags": ["onboarding"], "author": "<author_id>", "urlSlug": "5-tips-for-faster-onboarding", "wordCount": 850, "publishedAt": "2026-01-15T00:00:00.000Z" }'{ "updatedBlogPost": { "_id": "<post_id>", "title": "5 Tips for Faster Onboarding (Updated)", "description": "Getting new customers to their first win faster.", "status": "PUBLISHED", "urlSlug": "5-tips-for-faster-onboarding", "author": "<author_id>", "categories": ["<category_id>"], "tags": ["onboarding"], "archived": false, "publishedAt": "2026-01-15T00:00:00.000Z", "updatedAt": "2026-01-15T00:00:00.000Z" }}Check a post’s URL slug
Section titled “Check a post’s URL slug”locationId and urlSlug are required. Pass postId when you’re checking the slug for a
post you’re editing, so it doesn’t collide with itself.
curl "https://services.smbcrm.com/blogs/posts/url-slug-exists?locationId=<location_id>&urlSlug=5-tips-for-faster-onboarding&postId=<post_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "exists": false }List blog authors
Section titled “List blog authors”locationId, limit, and offset are required.
curl "https://services.smbcrm.com/blogs/authors?locationId=<location_id>&limit=20&offset=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "authors": [ { "_id": "<author_id>", "name": "Jordan Lee", "locationId": "<location_id>", "canonicalLink": "https://example.com/authors/jordan-lee", "updatedAt": "2026-01-15T00:00:00.000Z" } ]}List blog categories
Section titled “List blog categories”locationId, limit, and offset are required.
curl "https://services.smbcrm.com/blogs/categories?locationId=<location_id>&limit=20&offset=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "categories": [ { "_id": "<category_id>", "label": "Product Updates", "locationId": "<location_id>", "urlSlug": "product-updates", "canonicalLink": "https://example.com/categories/product-updates", "updatedAt": "2026-01-15T00:00:00.000Z" } ]}Related
Section titled “Related”- Social Planner: schedule and publish social content alongside your blog posts.
- Locations: look up the
locationIdevery endpoint on this page requires. - Scopes: permissions reference for the
blogs/*scopes.
