Console API
Blog posts
7 endpoints.
/api/v1/admin/businesses/{business_id}/blog_postsList blog posts for a business
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
status | query | string | Status bucket filter: all|draft|published|pending|archived default "all" |
search | query | string | null | Search title and excerpt |
cursor | query | string | null | Pagination cursor |
limit | query | integer | Page size default 8 |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_list_BlogPostListItemData__| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | BlogPostListItemData[] | BlogPostListItemData[] fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fields
|
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_postsCreate a blog post
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonBlogPostWriteBody| Field | Type | Description |
|---|---|---|
titlerequired | string | |
slugrequired | string | |
statusrequired | string | |
publish_date | string | null | |
excerpt | string | null | |
content_markdown | string | null | |
content_html | string | null | |
tags | string[] | string[] fields |
photo_ids | string[] | string[] fields |
is_featured | boolean | default false |
seo_title | string | null | |
seo_description | string | null | |
seo_keywords | string[] | string[] fields |
author_team_member_ids | string[] | string[] fields |
workflow_run_id | string | null | |
thread_id | string | null | |
media_status | string | null | |
brief | object | null |
Responses
201Successful Responseapplication/jsonSuccessResponse_BlogPostData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | BlogPostData | BlogPostData fieldsBlogPostData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_posts/{blog_post_id}Get a single blog post
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
blog_post_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_BlogPostData_| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | BlogPostData | BlogPostData fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_posts/{blog_post_id}Update a blog post
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
blog_post_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonBlogPostWriteBodyBlogPostWriteBody, expanded above.
Responses
200Successful Responseapplication/jsonSuccessResponse_BlogPostData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | BlogPostData | BlogPostData fieldsBlogPostData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_posts/{blog_post_id}Delete a blog post
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
blog_post_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
204Successful Response400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_posts/generateGenerate a blog post using AI
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
Idempotency-Key | header | string | null | |
X-Workflow-Bypass | header | string | null | |
authorization | header | string | null |
Request bodyrequired
application/jsonBlogPostGenerateRequest| Field | Type | Description |
|---|---|---|
promptrequired | string | User prompt describing the blog post to generate |
provider | string | null | Optional AI provider override: openai, anthropic, gemini |
new_blog_candidate_id | string (uuid) | null | A new-blog candidate id (blog_suggestions, scope new_post); its brief drives the post |
Responses
200Successful Responseapplication/jsonSuccessResponse_BlogPostGenerateResponse_| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | BlogPostGenerateResponse | BlogPostGenerateResponse fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/blog_posts/generate/streamStream blog generation status events (SSE)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
workflow_run_idrequired | query | string | Workflow run id returned by generate endpoint |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonany400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.