Unpublish Post
POST
/api/v1/dashboard/content/posts/{post_id}/unpublishOverview
Reverts a published post back to draft status. The post will no longer be visible via the public content API. The published_at timestamp is cleared.
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> |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
post_id | string (UUID) | Yes | The unique identifier of the post to unpublish |
Request Body
No request body is required.
Response
Returns the full PostResponse object with status set to draft.
Example Request
- cURL
- Python
- JavaScript
curl -X POST "https://spideriq.ai/api/v1/dashboard/content/posts/a1b2c3d4-e5f6-7890-abcd-ef1234567890/unpublish" \
-H "Authorization: Bearer $CLIENT_TOKEN"
import requests
post_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
resp = requests.post(
f"https://spideriq.ai/api/v1/dashboard/content/posts/{post_id}/unpublish",
headers={"Authorization": f"Bearer {CLIENT_TOKEN}"},
)
post = resp.json()
print(f"Status: {post['status']}") # "draft"
const postId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
const resp = await fetch(
`https://spideriq.ai/api/v1/dashboard/content/posts/${postId}/unpublish`,
{
method: "POST",
headers: { "Authorization": `Bearer ${CLIENT_TOKEN}` },
}
);
const post = await resp.json();
console.log(`Status: ${post.status}`); // "draft"
Example Response
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"slug": "getting-started-with-spideriq",
"title": "Getting Started with SpiderIQ",
"status": "draft",
"published_at": null,
"updated_at": "2026-04-08T13:00:00Z"
}
Status Codes
| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Post unpublished successfully |
| 401 | Unauthorized | Invalid or missing Bearer token |
| 404 | Not Found | Post not found or belongs to another client |