PostMantis
API ReferencePosts

Publish a draft post

Publishes a draft immediately or schedules it for later if `scheduled_at` is provided.

POST
/api/posts/{id}/publish

Publishes a draft immediately or schedules it for later if scheduled_at is provided.

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the PostMantis dashboard.

In: header

Path Parameters

id*string

Post identifier.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

scheduled_at?|
Formatdate-time

Response 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"}