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": null,
"property2": null
}
}
}{
"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": null,
"property2": null
}
}
}{
"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
}
}
}Remove account from post DELETE
Removes one account from an existing post so it will no longer be published there. Other accounts in the same post are not changed.
List accounts GET
List connected social accounts for the authenticated API key owner. You can filter by workspace and by one or more platforms.