---
title: "Publish an existing draft/scheduled post immediately"
method: POST
path: "/posts/{id}/publish"
tags: ["Posts"]
---

# Publish an existing draft/scheduled post immediately

`POST /posts/{id}/publish`

## Request

- Base URL: `https://api.posteahora.com/functions/v1/api`
- URL: `https://api.posteahora.com/functions/v1/api/posts/{id}/publish`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/posteahora/apis/posteahora-public-api/docs/posts/:id/publish/post.ts> (a function with typed inputs; its response is checked against the schema)

Enters the async pipeline. Poll GET /posts/{id} for platform_results.

## Response `200`

Queued

- CreatePostResult
  - `postIds` string[]
  - `status` 'draft' | 'scheduled' | 'queued'
  - `dispatchDeferred` boolean: When true, rows are stored but the worker wasn't reached synchronously; the cron sweep will publish them.

## Other responses

- `400`: Invalid request
- `404`: Resource not found (or not in the key's workspace)

---

[API](https://skmtc.dev/posteahora/apis/posteahora-public-api.md) - [All operations](https://skmtc.dev/posteahora/apis/posteahora-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/posteahora/apis/posteahora-public-api/revisions/552a8eb6c30f?raw)
