Create Scheduled Post
postnitro_create_scheduled_postCreate a scheduled post or draft for LinkedIn, Instagram, TikTok, Threads, Facebook (Pages), and/or Pinterest (boards).
Workflow:
postnitro_list_social_accounts → pick account IDs for selectedAccounts
(optional) attach a designId — a carousel you created with PostNitro. Use the design's ID (the 'designId' field returned by postnitro_get_output / postnitro_generate_and_wait), NOT the generation embedPostId.
provide a caption via postContent and/or a designId (a post needs at least one)
Rules enforced by the API (surfaced as error messages here):
scheduledAt must be a future ISO-8601 datetime.
A post must have either a designId or non-empty postContent. designId may be null only for DRAFT.
Per-platform *PostSettings are conditionally required based on the selected accounts' platforms and whether a designId is set (see each field's description). LinkedIn, Facebook, and Pinterest require a designId when SCHEDULED.
postSettings (a reel's audio) applies when any postType resolves to 'reel'. You may omit it: the API takes the audio from the attached design's own settings, else none. A reel runs as long as its design's motion.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"status": "<status>",
"scheduledAt": "<scheduledAt>"
},
"name": "postnitro_create_scheduled_post"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | 'DRAFT' or 'SCHEDULED' | |
| designId | No | ID of a design in your workspace to attach. This is the design ID (the `designId` field from a carousel's output / postnitro_get_output), NOT the generation job's embedPostId — passing an embedPostId here fails with 'Design not found.' A post must have either a designId or non-empty postContent. May only be null/omitted for DRAFT. | |
| postContent | No | Caption text keyed by platform. Required unless a designId is set; at least one key must be non-empty. Hashtags are extracted automatically. | |
| scheduledAt | Yes | ISO-8601 datetime string. Must be in the future (for both drafts and scheduled posts). | |
| postSettings | No | A reel's audio, used when any resolved postType is 'reel'. Optional: when omitted, the API takes the audio the attached design was generated with, else none. A reel runs as long as its design's motion. | |
| idempotencyKey | No | Optional key that makes this call safe to retry. Generate a new one (e.g. a UUID) for each new action. If the call times out, fails with a network or 5xx error, or you are unsure it went through, call again with the SAME key and the same arguments: PostNitro returns the first call's result instead of creating a second post, charging credits again or scheduling a duplicate. Only a successful call is remembered, so after an error you can fix the arguments and retry with the same key; reusing a successful call's key with different arguments is rejected (422). | |
| selectedAccounts | No | Social-account IDs to publish to (from postnitro_list_social_accounts). The platforms among these determine which *PostSettings are required. | |
| tiktokPostSettings | No | Required when a TikTok account is selected AND a designId is set. When SCHEDULED: if isBrandedContent is true, at least one of isYourBrand/isThirdPartyBrand must be true, and isBrandedContent cannot be true with privacyLevel SELF_ONLY. | |
| threadsPostSettings | No | Required when a Threads account is selected AND a designId is set | |
| facebookPostSettings | No | Required when a Facebook Page is selected AND a designId is set. A designId is required when status is SCHEDULED (Facebook Pages can't take text-only posts from PostNitro). | |
| linkedinPostSettings | No | Required when a LinkedIn account is selected. A designId is required when status is SCHEDULED (text-only LinkedIn posts can only be drafts). | |
| instagramPostSettings | No | Required when an Instagram account is selected AND a designId is set | |
| pinterestPostSettings | No | Required when a Pinterest board is selected AND a designId is set. A designId is required when status is SCHEDULED (Pinterest can't take text-only Pins). Each board is its own connected account, so there is no board field here — pick boards via selectedAccounts. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes | A scheduled post or draft | |
| message | Yes | Confirmation message | |
| success | Yes | ||
| warnings | No | Non-fatal issues worth surfacing to the user (e.g. AI image generation did not complete) | |
| scheduledPostId | Yes | ID of the scheduled post — pass to get/update/delete |