Blog posts are the site's articles: a title, a short excerpt for listings and previews, the body in HTML, images, and a category (a blogpost/ collection) for filtering. A post can be limited to signed-in users or to subscribers of a price plan.
Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.
13 endpoints.
Like or unlike a blog post.
Needs the token of a signed-in user.
The ID of the blog post.
Returns the BlogPost object.
curl -X PATCH 'http://cloudoffice-gr.max-media.io/blogpost-likes/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Find a blog post by its address.
Works without a token; with a user token the answer is personal.
The blog post's URL slug, as in its address on the site.
curl -X GET 'http://cloudoffice-gr.max-media.io/blogpost-redirect/{url}?ionic=true'{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Save or unsave a blog post.
Needs the token of a signed-in user.
The ID of the blog post.
Returns the BlogPost object.
curl -X PATCH 'http://cloudoffice-gr.max-media.io/blogpost-saves/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Returns the site's blog posts, newest first unless a sort is given.
Needs a signed-in user whose plan grants access.
true: only blog posts that are published; false: only those that are not.
The order of the results.
Only results in this collection.
How many results to skip - for paging.
Returns a list of BlogPost objects.
curl -X GET 'http://cloudoffice-gr.max-media.io/blogposts?ionic=true&published=...&sortBy=...&collection=...' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}
]Create new blogpost.
Needs the token of a signed-in user.
Name of the blog post, required.
The blog post's on behalf of.
Returns the BlogPost object.
curl -X POST 'http://cloudoffice-gr.max-media.io/blogposts?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "title": "...", "on_behalf_of": "..." }'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Deletes the blog post. This cannot be undone.
Needs the token of a signed-in user.
The blog post's delete ids.
Returns an empty answer on success.
curl -X DELETE 'http://cloudoffice-gr.max-media.io/blogposts-multiple/{delete_ids}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The blog post's patch ids.
Reference to a Collection model with name starting with 'blogpost/', used to categorise the post.
The blog post's grouping.
The blog post's updates.
Returns the BlogPost object.
curl -X PATCH 'http://cloudoffice-gr.max-media.io/blogposts-multiple/{patch_ids}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "collection_id": "...", "grouping": "...", "updates": "..." }'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Update Blogpost by id.
Needs the token of a signed-in user.
The ID of the blog post.
Returns the BlogPost object.
curl -X PATCH 'http://cloudoffice-gr.max-media.io/blogposts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Delete Blogpost record by id.
Needs the token of a signed-in user.
The ID of the blog post.
Returns an empty answer on success.
curl -X DELETE 'http://cloudoffice-gr.max-media.io/blogposts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns one blog post, found by its ID.
Public - no token needed.
The ID of the blog post.
Returns the BlogPost object.
curl -X GET 'http://cloudoffice-gr.max-media.io/blogposts/{id}/media?ionic=true'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Creates a blog post from the fields sent.
Needs the token of a signed-in user.
The ID of the blog post.
curl -X POST 'http://cloudoffice-gr.max-media.io/blogposts/{id}/media?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Deletes the blog post. This cannot be undone.
Needs the token of a signed-in user.
The ID of the blog post.
Returns an empty answer on success.
curl -X DELETE 'http://cloudoffice-gr.max-media.io/blogposts/{id}/media/delete_last?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns one blog post, found by its URL slug.
Pages limited to some users check the token when one is sent.
The blog post's URL slug, as in its address on the site.
Returns the BlogPost object.
curl -X GET 'http://cloudoffice-gr.max-media.io/blogposts/{url}?ionic=true'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}