Skip to main content

Update Post

PATCH/api/v1/dashboard/content/posts/{post_id}

Overview

Updates an existing blog post. Only the fields included in the request body are updated; all other fields remain unchanged. Works on posts in any status (draft, published, archived, etc.).

Authentication

info

Bearer authentication required - Pass your credentials as Authorization: Bearer <client_id>:<api_key>:<api_secret>.

Headers

HeaderTypeRequiredDescription
AuthorizationstringYesBearer <client_id>:<api_key>:<api_secret>
Content-TypestringYesapplication/json

Path Parameters

ParameterTypeRequiredDescription
post_idstring (UUID)YesThe unique identifier of the post

Request Body

All fields are optional. Only include the fields you want to update.

ParameterTypeDescription
slugstringURL-friendly slug (must be unique per client)
titlestringPost title
bodyobjectPost content as Tiptap JSON
excerptstringShort excerpt / summary
cover_image_urlstringURL of the cover image
author_namestringAuthor display name
author_idstring (UUID)Explicit author ID
tagsstring[]Array of tag names (replaces existing tags)
tag_idsstring[]Array of existing tag UUIDs
category_idsstring[]Array of existing category UUIDs
is_featuredbooleanWhether the post is featured
featured_image_altstringAlt text for the cover image
tldr_summarystringOptional TL;DR summary
related_post_idsstring[]Array of related post UUIDs
seo_titlestringCustom SEO title
seo_descriptionstringCustom SEO meta description

Response

Returns the full updated PostResponse object (same shape as Create Post).

Example Request

curl -X PATCH "https://spideriq.ai/api/v1/dashboard/content/posts/a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "Authorization: Bearer $CLIENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Getting Started with SpiderIQ (Updated)",
"excerpt": "An updated beginner guide to SpiderIQ APIs.",
"tags": ["getting-started", "tutorial", "updated"],
"is_featured": false
}'

Example Response

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"slug": "getting-started-with-spideriq",
"title": "Getting Started with SpiderIQ (Updated)",
"body": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "SpiderIQ makes web scraping easy." }]
}
]
},
"excerpt": "An updated beginner guide to SpiderIQ APIs.",
"status": "draft",
"author": {
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"full_name": "Martin Shein",
"slug": "martin-shein",
"avatar_url": "https://cdn.spideriq.ai/authors/martin.webp",
"bio": "Founder of SpiderIQ."
},
"tags": ["getting-started", "tutorial", "updated"],
"categories": [],
"is_featured": false,
"updated_at": "2026-04-08T11:30:00Z"
}

Status Codes

Status CodeMeaningDescription
200OKPost updated successfully
400Bad RequestInvalid field values
401UnauthorizedInvalid or missing Bearer token
404Not FoundPost not found or belongs to another client
409ConflictSlug already in use by another post