---
title: "Schedule post"
method: POST
path: "/schedule_post"
tags: ["Write"]
---

# Schedule post

`POST /schedule_post`

## Request

- Base URL: `https://pdb.postpen.ai/functions/v1/agent-api`
- URL: `https://pdb.postpen.ai/functions/v1/agent-api/schedule_post`
- Auth: HTTP bearer

Schedules a saved draft, including any media already stored on it by save_draft. scheduled_for is an ISO-8601 timestamp in the future and must include a timezone. destination optionally selects the personal profile or a company page from list_destinations. Media is not accepted here.

## Request body

- object
  - `id` string, required: Post id returned by save_draft.
  - `scheduled_for` string, required: Future ISO-8601 time with a timezone, for example 2026-09-28T15:00:00Z.
  - `destination` string: Where to post: an id from list_destinations. Each destination has a network (linkedin today). "personal" (the default on a personal draft) is the personal LinkedIn profile; a company page is identified by its id from list_destinations (usually the organization URN). On schedule_post and publish_now, leaving it out keeps a company destination already saved on the draft, and "personal" switches to the profile.

## Response `200`

Success. JSON object; never contains LinkedIn tokens.

- object

## Other responses

- `400`: Invalid input, or a confirm: true guard was not met.
- `401`: Missing or invalid API key.
- `402`: Plan limit reached (for example the Free plan's monthly post cap).
- `403`: Destination not allowed for this account or plan.

---

[API](https://skmtc.dev/postpen/apis/postpen-agent-api.md) · [All operations](https://skmtc.dev/postpen/apis/postpen-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postpen/apis/postpen-agent-api/revisions/2b07a2e1bfe7?raw)
