Publish a draft post
Publishes a draft immediately or schedules it for later if `scheduled_at` is provided.
Publishes a draft immediately or schedules it for later if scheduled_at is provided.
Authorization
BearerAuth API key from the PostMantis dashboard.
In: header
Path Parameters
Post identifier.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
date-timeResponse Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/json
curl -X POST "https://postmantis.com/api/posts/74d6f3d9-6b68-4a2d-9d89-c4510a08ff42/publish" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "74d6f3d9-6b68-4a2d-9d89-c4510a08ff42", "body": "Big announcement tomorrow.", "status": "pending", "draft": false, "scheduled_at": "2026-03-30T10:00:00Z", "created_at": "2026-03-29T09:30:00Z", "updated_at": "2026-03-29T09:30:00Z", "canceled_at": null, "media": [ { "id": "f4a457b3-99ad-47d7-beb8-a64d8efdc6ef", "status": "processed", "content_type": null, "url": null, "asset_id": "8f5f3f18-3cf7-4aa8-a0ea-6fd204d4c4f1", "alt": "Launch card", "error_message": null } ], "deliveries": [ { "profile_id": "4339a6bc-9cd3-455e-8f91-df8bc63f12d7", "provider": "x", "profile_name": "Julius", "status": "pending", "scheduled_at": "2026-03-30T10:00:00Z", "published_at": null, "failed_at": null, "provider_post_id": null, "url": null, "error_message": null }, { "profile_id": "8d3ef50f-98d9-4a44-8cf7-0b7fb53ab0a8", "provider": "instagram", "profile_name": "Brand", "status": "pending", "scheduled_at": "2026-03-30T10:00:00Z", "published_at": null, "failed_at": null, "provider_post_id": null, "url": null, "error_message": null } ] }}{ "type": "https://postmantis.com/problems/invalid-request", "title": "Invalid request", "status": 400, "detail": "The request payload failed validation.", "code": "invalid_request"}{ "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/post-not-found", "title": "Post not found", "status": 404, "detail": "Post was not found for the authenticated account.", "code": "post_not_found"}{ "type": "https://postmantis.com/problems/post-not-publishable", "title": "Post cannot be published", "status": 409, "detail": "Only draft posts can be published.", "code": "post_not_publishable"}{ "error": "Too Many Requests"}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.
Cancel a scheduled post POST
Cancels a scheduled post before it settles. Use cancel when you want to stop future delivery while preserving the record and its history. Use delete only for drafts that should be discarded entirely.