Change Post Status
POST
/api/v1/dashboard/content/posts/{post_id}/statusOverview
Sets a post to any valid lifecycle status. This is the general-purpose status endpoint. For simple publish/unpublish actions, you can also use the dedicated Publish and Unpublish endpoints.
Post Lifecycle
draft --> pending_review --> published --> archived
^ | |
| v |
+----------------------------------+--------------+
(can revert to draft at any time)
Authentication
info
Bearer authentication required - Pass your credentials as Authorization: Bearer <client_id>:<api_key>:<api_secret>.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer <client_id>:<api_key>:<api_secret> |
Content-Type | string | Yes | application/json |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
post_id | string (UUID) | Yes | The unique identifier of the post |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | Yes | One of: draft, pending_review, published, archived |
Response
Returns the full PostResponse object with the updated status.
Example Request
- cURL
- Python
- JavaScript
curl -X POST "https://spideriq.ai/api/v1/dashboard/content/posts/a1b2c3d4-e5f6-7890-abcd-ef1234567890/status" \
-H "Authorization: Bearer $CLIENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "status": "pending_review" }'
import requests
post_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
resp = requests.post(
f"https://spideriq.ai/api/v1/dashboard/content/posts/{post_id}/status",
headers={"Authorization": f"Bearer {CLIENT_TOKEN}"},
json={"status": "pending_review"},
)
post = resp.json()
print(f"New status: {post['status']}")
const postId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
const resp = await fetch(
`https://spideriq.ai/api/v1/dashboard/content/posts/${postId}/status`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${CLIENT_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ status: "pending_review" }),
}
);
const post = await resp.json();
console.log(`New status: ${post.status}`);
Example Response
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"slug": "getting-started-with-spideriq",
"title": "Getting Started with SpiderIQ",
"status": "pending_review",
"published_at": null,
"updated_at": "2026-04-08T14:00:00Z"
}
Status Codes
| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Status updated successfully |
| 400 | Bad Request | Invalid status value |
| 401 | Unauthorized | Invalid or missing Bearer token |
| 404 | Not Found | Post not found or belongs to another client |