Update a post
Updates a draft post, or reschedules a scheduled post when the request only changes `post.scheduledAt` and every delivery is still pending. PATCH must change at least one field, and `post.draft` cannot be changed through this endpoint.
Updates a draft post, or reschedules a scheduled post when the request only changes post.scheduledAt and every delivery is still pending. PATCH must change at least one field, and post.draft cannot be changed through this endpoint.
Authorization
BearerAuth API key from the PostMantis dashboard.
In: header
Path Parameters
Post identifier.
uuidTypeScript Definitions
Use the request body type in TypeScript.
1 <= itemsitems <= 20Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/json
application/problem+json
curl -X PATCH "https://loading/api/posts/74d6f3d9-6b68-4a2d-9d89-c4510a08ff42" \ -H "Content-Type: application/json" \ -d '{ "post": { "body": "Revised launch copy." }, "profiles": [ "4339a6bc-9cd3-455e-8f91-df8bc63f12d7", "8d3ef50f-98d9-4a44-8cf7-0b7fb53ab0a8" ] }'{ "data": { "id": "1d2aafec-bf13-4ea4-b271-6f9ac1e9d069", "body": "Revised launch copy.", "status": "draft", "draft": true, "scheduledAt": null, "createdAt": "2026-03-29T09:30:00Z", "updatedAt": "2026-03-29T09:40:00Z", "canceledAt": null, "media": [], "deliveries": [ { "profileId": "4339a6bc-9cd3-455e-8f91-df8bc63f12d7", "provider": "x", "profileName": "Julius", "status": "pending", "scheduledAt": null, "publishedAt": null, "failedAt": null, "providerPostId": null, "url": null, "errorMessage": null } ] }}{ "type": "https://postmantis.com/problems/invalid-request", "title": "Invalid request", "status": 400, "detail": "The request payload failed validation.", "code": "invalidRequest"}{ "type": "https://postmantis.com/problems/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Missing or invalid API key.", "code": "unauthorized"}{ "type": "https://postmantis.com/problems/forbidden", "title": "Forbidden", "status": 403, "detail": "The authenticated API key is not allowed to perform this action.", "code": "forbidden"}{ "type": "https://postmantis.com/problems/not-found", "title": "Not found", "status": 404, "detail": "Post was not found for the authenticated account.", "code": "notFound"}{ "type": "https://postmantis.com/problems/conflict", "title": "Conflict", "status": 409, "detail": "Only drafts can be edited through PATCH. Scheduled posts may only be rescheduled by changing post.scheduledAt while every delivery is still pending.", "code": "conflict"}{ "type": "https://postmantis.com/problems/payload-too-large", "title": "Payload too large", "status": 413, "detail": "Remote media exceeds the 256 MB limit.", "code": "payloadTooLarge"}{ "type": "https://postmantis.com/problems/unsupported-media-type", "title": "Unsupported media type", "status": 415, "detail": "Unsupported content type. Use application/json or multipart/form-data.", "code": "unsupportedMediaType"}{ "type": "https://postmantis.com/problems/conflict", "title": "Conflict", "status": 409, "detail": "Referenced upload must be completed before it can be attached to a post.", "code": "conflict"}{ "error": "Too Many Requests"}{ "type": "https://postmantis.com/problems/service-unavailable", "title": "Service unavailable", "status": 503, "detail": "Publishing is temporarily unavailable. Try again later.", "code": "serviceUnavailable"}Get a post GET
Returns one post with media and per-delivery details when the full post is visible to the authenticated API key.
Delete a draft post DELETE
Deletes a local draft that has not been published or scheduled. Use this only for drafts you want to discard entirely. Use cancel instead for scheduled posts so the record and history remain inspectable.