Update post
Update a draft or scheduled post. You can change the content, the scheduled date, or both. Published and publishing posts cannot be updated.
Update a draft or scheduled post. You can change the content, the scheduled date, or both. Published and publishing posts cannot be updated.
Authorization
ApiKeyAuth PublishQ API key sent as Authorization: Bearer pq_live_....
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://publishq.com/api/v1/posts/1b5c779b-d7de-4e4e-bf55-95b9317b6d93" \ -H "Content-Type: application/json" \ -d '{ "content": "Updated copy with a stronger hook and cleaner CTA 🚀", "scheduledAt": "2026-04-15T14:00:00Z", "mediaIds": [ "d4c3b2a1-0987-6543-21fe-dcba09876543" ], "thumbnailTimestamp": 5500 }'{
"id": "1b5c779b-d7de-4e4e-bf55-95b9317b6d93",
"content": "Updated copy with a stronger hook and cleaner CTA 🚀",
"status": "SCHEDULED",
"mediaIds": [
"d4c3b2a1-0987-6543-21fe-dcba09876543"
],
"thumbnailTimestamp": 5500,
"scheduledAt": "2026-04-15T14:00:00Z",
"createdAt": "2026-03-30T10:00:00Z",
"accounts": [
{
"accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"platform": "TWITTER",
"accountName": "@publishq",
"status": "SCHEDULED"
},
{
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"platform": "LINKEDIN",
"accountName": "PublishQ",
"status": "SCHEDULED"
}
]
}{
"error": {
"title": "Forbidden",
"status": 403,
"code": "insufficient_scope",
"message": "The API key does not have the required scope: posts:write",
"instance": "/api/v1/posts",
"details": {
"property1": {},
"property2": {}
}
}
}{
"error": {
"title": "Unauthorized",
"status": 401,
"code": "missing_auth",
"message": "Missing Authorization header",
"instance": "/api/v1/posts"
}
}{
"error": {
"title": "Payment Required",
"status": 402,
"code": "posting_limits_exceeded",
"message": "Posting limits exceeded",
"instance": "/api/v1/posts",
"details": {
"limitErrors": [
"Monthly scheduled post limit reached"
],
"upgradeRequired": true
}
}
}{
"error": {
"title": "Forbidden",
"status": 403,
"code": "insufficient_scope",
"message": "Missing required scope: posts:write",
"instance": "/api/v1/posts/1b5c779b-d7de-4e4e-bf55-95b9317b6d93"
}
}{
"error": {
"title": "Not Found",
"status": 404,
"code": "post_not_found",
"message": "Post not found",
"instance": "/api/v1/posts"
}
}{
"error": {
"title": "Forbidden",
"status": 403,
"code": "insufficient_scope",
"message": "The API key does not have the required scope: posts:write",
"instance": "/api/v1/posts",
"details": {
"property1": {},
"property2": {}
}
}
}{
"error": {
"title": "Too Many Requests",
"status": 429,
"code": "rate_limit_exceeded",
"message": "Too Many Requests",
"instance": "/api/v1/posts/1b5c779b-d7de-4e4e-bf55-95b9317b6d93",
"details": {
"retryAfter": 60
}
}
}