---
title: "Publish or schedule a one-off post"
method: POST
path: "/api/post_content"
---

# Publish or schedule a one-off post

`POST /api/post_content`

## Request

- Base URL: `https://social.recurpost.com`
- URL: `https://social.recurpost.com/api/post_content`
- Auth: none declared

Publishes a post to a social account immediately, or at schedule_date_time if provided (must be in the future, else error 415). Supports per-platform message overrides, media, first comments, and platform-specific options.

## Request body

- PostContentRequest: Per-platform message overrides; leave blank to use the default message.
  - `emailid` string, email, required: RecurPost account email address
  - `pass_key` string, required: API Password Key from Account Settings (NOT the login password)
  - `id` string, required: Social account ID from /api/social_account_list
  - `message` string, required: Message/content for the post
  - `schedule_date_time` string: Future publish time, format YYYY-MM-DD HH:MM:SS; blank posts immediately. Past times return error 415.
  - `image_url` string[]: Array of publicly accessible image URLs. Must be an array, not a string.
  - `video_url` string, uri: Publicly accessible video URL
  - `url` string, uri: Website URL to share with the post
  - `host_images_on_recurpost` boolean: Copy images to RecurPost servers for reliability
  - `fb_message` string: Facebook-specific message
  - `tw_message` string: X (Twitter)-specific message
  - `ln_message` string: LinkedIn-specific message
  - `in_message` string: Instagram-specific message
  - `gmb_message` string: Google Business Profile-specific message
  - `pi_message` string: Pinterest-specific message
  - `yt_message` string: YouTube-specific message
  - `tk_message` string: TikTok-specific message
  - `th_message` string: Threads-specific message
  - `bs_message` string: Bluesky-specific message
  - `fb_post_type` 'feed' | 'story' | 'reel': Facebook post type
  - `in_post_type` 'feed' | 'story' | 'reel': Instagram post type
  - `in_reel_share_in_feed` 'yes' | 'no': Share Instagram Reel to feed too (only when in_post_type is reel)
  - `first_comment` string: Default first comment (commonly hashtags) for Facebook Pages, LinkedIn, and Instagram feed
  - `fb_first_comment` string: Facebook-specific first comment
  - `ln_first_comment` string: LinkedIn-specific first comment
  - `in_first_comment` string: Instagram-specific first comment (feed only)
  - `ln_document` string, uri: Document URL for LinkedIn carousel (PPT, PDF, DOCX)
  - `ln_document_title` string: Title for the LinkedIn document
  - `pi_title` string: Pinterest pin title
  - `gbp_cta` 'None' | 'Learn more' | 'Sign up' | 'Buy' | 'Order online' | 'Book' | 'Call now' | 'Offer': Google Business Profile call-to-action button
  - `gbp_cta_url` string, uri: CTA link URL (not used for Call now or Offer)
  - `gbp_offer_title` string: Offer title (when CTA is Offer)
  - `gbp_offer_start_date` string: Offer start, format Y-m-d H:i:s
  - `gbp_offer_end_date` string: Offer end, format Y-m-d H:i:s
  - `gbp_offer_coupon_code` string: Coupon code for the offer
  - `gbp_offer_terms` string: Offer terms and conditions
  - `gbp_redeem_offer_link` string, uri: URL to redeem the offer
  - `yt_title` string: YouTube video title
  - `yt_category` 'Film & Animation' | 'Autos & Vehicles' | 'Music' | 'Pets & Animals' | 'Sports' | 'Travel & Events' | 'Gaming' | 'People & Blogs' | 'Comedy' | 'Entertainment' | 'News & Politics' | 'Howto & Style' | 'Education' | 'Science & Technology' | 'Nonprofits & Activism': YouTube video category
  - `yt_privacy_status` 'Public' | 'Private' | 'Unlisted': YouTube privacy setting
  - `yt_user_tags` string: YouTube tags, comma-separated
  - `yt_thumb` string, uri: Custom YouTube thumbnail URL
  - `yt_video_made_for_kids` 'yes' | 'no': YouTube made-for-kids designation
  - `tk_privacy_status` 'Public to Everyone' | 'Mutual Follow Friends' | 'Self Only': TikTok privacy setting
  - `tk_allow_comments` 'yes' | 'no': Allow TikTok comments
  - `tk_allow_duet` 'yes' | 'no': Allow TikTok duets
  - `tk_allow_stitches` 'yes' | 'no': Allow TikTok stitches

## Response `200`

Request completed successfully

- object

## Other responses

- `400`: Missing or invalid parameters
- `401`: Invalid emailid or pass_key
- `415`: Schedule time error: invalid or past datetime for the scheduled post

---

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