Skip to main content

POST /api/v1/posts/<post_id>/schedule

Schedule a post for future publication on LinkedIn. Body

Success

Same-day warning (HTTP 200)

When confirm_same_day: true and other posts exist that day:
Re-send the request with confirm_same_day: false to force through.

Exact-slot warning (HTTP 200)

If another post is within ±5 min, this wins over same_day_posts (stronger signal):

LinkedIn token expired

Other errors

  • 400 missing_data — missing at_iso
  • 400 too_late — more than 6 months in the future
  • 400 failed_tag@mentions couldn’t be resolved (LinkedIn privacy)
  • 404 post_not_found — IDOR or deleted

POST /api/v1/posts/<post_id>/cancel-schedule

Cancel a scheduled post. Idempotent — returns success even if not scheduled.
Responses
  • 200 { "success": true } — scheduled, now cancelled
  • 200 { "success": true, "already_unscheduled": true } — wasn’t scheduled
  • 409 already_published — can’t cancel, already on LinkedIn

POST /api/v1/posts/<post_id>/publish

Publish a post immediately, regardless of any prior schedule.
Responses
  • 200 { "success": true, ... } — published, LinkedIn URL in response body
  • 400 token_expiredactionable: true with reconnect hint
  • 409 already_published
  • 404 post_not_found