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.
- 1Call GET /api/public/linkedin-profiles and choose a profile
id. - 2Read that profile's writing style and search the knowledge base before drafting original content. Optionally search templates or select a Bob plan item.
- 3Call POST /api/public/posts to create a draft. Pass
templateIdorplanItemIdwhen applicable so attribution stays linked. - 4Optionally patch the draft content or profile assignment.
- 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:
scheduledTimemust be at least 2 minutes in the future. - If the target profile has approvers configured, the post waits for their approval; check
requiresApprovalin 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"
}'