Skip to Content
EmbedEmbed APISchedule Post

Schedule API

The Schedule API lets you create, list, read, update, and delete scheduled (and draft) social posts across LinkedIn, Instagram, TikTok, and Threads from your own application using your PostNitro Embed API key.

These endpoints are a thin, authenticated layer over PostNitro’s internal Planner service. Your request is validated for shape, scoped to the workspace attached to your API key, and forwarded to PostNitro for processing.

Endpoints

MethodPathDescription
GET/scheduleList scheduled posts in a date range
POST/scheduleCreate a scheduled post or draft
GET/schedule/:idFetch a single scheduled post
PUT/schedule/:idUpdate a scheduled post
DELETE/schedule/:idDelete a scheduled post

Base URL

All paths are relative to your Embed API base URL, e.g.:

https://embed-api.postnitro.ai/schedule

Authentication

Every request must include your Embed API key in the embed-api-key header (an authorization header is also accepted):

embed-api-key: <YOUR_EMBED_API_KEY>

Your key resolves the organization, workspace, and user the post belongs to. You never send workspaceId or organizationId — they are derived from the key server-side.

ConditionStatusBody
No key supplied401{ "status": false, "message": "Unauthorized" }
Key not found / not an API key401{ "status": false, "message": "Unable to find embed details, please check your Embed API key..." }
No workspace attached to key401{ "status": false, "message": "Unable to find workspace details, please attach a workspace to this API key." }
No active/paid plan402{ "status": false, "message": "Embed API requires a paid main plan with the API Credits add-on, or an active Embed API subscription." }

Request & response format

  • All request bodies (POST, PUT) are JSON. Set Content-Type: application/json.
  • All successful responses are JSON wrapped in a standard envelope:
{ "success": true, "message": "Scheduled post created", // present on create/update/delete "data": { /* endpoint-specific payload */ } }

Error format

There are two error shapes you may receive.

1. Request-shape validation (handled at the Embed API edge) — returns 422:

{ "status": false, "message": "Status must be 'DRAFT' or 'SCHEDULED'" }

2. Processing / business-rule errors (relayed from PostNitro) — the upstream status code is preserved where available (otherwise 500):

{ "success": false, "message": "Design not found.", // human-readable reason "error": { /* upstream details, or the message string */ } }

See each endpoint page for the specific validation and business rules that apply.

Statuses

  • Post status (status): "DRAFT" or "SCHEDULED".
  • Per-account status (socialAccounts[].status): "DRAFT" when the post is a draft, otherwise "PENDING" on create/update. The publishing pipeline later updates this to values such as published/failed.

Shared concepts

The create and update endpoints share the same request body and the same per-platform settings rules. Rather than repeat them, see:

Last updated on