Guides

Post workflow

The recommended flow for drafting and scheduling a LinkedIn post through the Public API: pick a profile, ground the draft, create, refine, schedule.

The API mirrors how Postiv itself creates content: pick the LinkedIn profile that will publish, ground the draft in the workspace voice and knowledge, then move the draft through the publish queue.

  1. 1Call GET /api/public/linkedin-profiles and choose a profile id.
  2. 2Read that profile's writing style and search the knowledge base before drafting original content. Optionally search templates or select a Bob plan item.
  3. 3Call POST /api/public/posts to create a draft. Pass templateId or planItemId when applicable so attribution stays linked.
  4. 4Optionally patch the draft content or profile assignment.
  5. 5Call POST /api/public/posts/:id/schedule with an ISO scheduled time.

Verbatim by default, humanize on demand

Content is stored verbatim by default. Pass "humanize": true on create to run Postiv's humanizer over the content before saving: the same anti-AI-pattern pass the in-app assistant uses. Updates are always verbatim.

Scheduling rules

  • Scheduling never publishes immediately: scheduledTime must be at least 2 minutes in the future.
  • If the target profile has approvers configured, the post waits for their approval; check requiresApproval in the response.
  • If the post has an image attached in Postiv and you omit mediaType/mediaUrls, the image is included automatically.

End-to-end example

Create a draft
curl -X POST https://postiv.ai/api/public/posts \
  -H "Authorization: Bearer pk_postiv_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Launch lessons",
    "content": "Three things we learned from launch week...",
    "integrationId": 123,
    "humanize": true
  }'
Schedule the draft
curl -X POST https://postiv.ai/api/public/posts/POST_ID/schedule \
  -H "Authorization: Bearer pk_postiv_..." \
  -H "Content-Type: application/json" \
  -d '{
    "integrationId": 123,
    "scheduledTime": "2026-08-01T09:30:00.000Z",
    "mediaType": "text"
  }'