---
title: "Schedule an existing post"
method: POST
path: "/api/posts/{postId}/schedule"
tags: ["Posts"]
---

# Schedule an existing post

`POST /api/posts/{postId}/schedule`

## Request

- Base URL: `https://api-app.postnext.io`
- URL: `https://api-app.postnext.io/api/posts/{postId}/schedule`
- Auth: API key in header `x-api-key`

## Path parameters

- `postId` string, required

## Request body

- object
  - `scheduledAt` string, date-time, required: Future ISO 8601 datetime.
  - `timezone` string: IANA timezone, used for recurrence only.

## Response `200`

Scheduled

- PostDetailEnvelope
  - `success` boolean
  - `data` object
    - `group` PostGroup
      - `id` string: Post group uuid.
      - `_id` string: Mongo ObjectId.
      - `userId` string
      - `teamId` string
      - `title` string
      - `description` string
      - `imageUrl` string, uri
      - `providers` object
      - `tags` string[]
      - `scheduledTime` string, date-time
      - `status` 'DRAFT' | 'SCHEDULED' | 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'APPROVAL'
      - `assigneeId` string
      - `watchers` string[]
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `providerPosts` object[]

## Other responses

- `400`: scheduledAt missing, malformed, or in the past
- `401`: Missing or invalid API key
- `402`: Subscription is inactive (payment failure). Flat shape, not the standard envelope.
- `404`: Post not found or access denied

---

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