Posts API
List, edit and publish individual platform posts.
4 endpoints. Every path is relative to the API base URL and needs a bearer token unless it is marked public. See the REST API overview for authentication, errors and pagination.
GET/v1/orgs/{orgId}/marketing/posts
List the workspace's social posts with their approval state, one page at a time. Use filter.status (e.g. pending_approval, scheduled) and filter.scheduledFrom / filter.scheduledTo to find pending or upcoming posts. Returns { items, page, limit, total, hasMore }: limit is posts per page (default 25, max 100) and page is 1-based; when hasMore is true, call again with page + 1. total is the count of all posts matching the filter.
Path parameters
orgIdstring (uuid)required
Query parameters
pageintegerlimitintegersortBystringone of
scheduledForUtc,createdAt,status,platformsortDirstringone of
asc,descfilterobjectFields
platformstringstatusstringsocialAccountIdstringtagIdstringscheduledFromstringscheduledTostring
filterOpobjectFields
platformstringone of
eq,instatusstringone of
eq,insocialAccountIdstringone of
eqtagIdstringone of
eq,inscheduledFromstringone of
gtescheduledTostringone of
lte
Responses
200
dataobjectrequiredFields
itemsarray<object>requiredItem fields
idstring (uuid)requiredorgIdstring (uuid)requiredgroupIdstring (uuid)requiredplatformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadssocialAccountIdstring (uuid) | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstring | nullrequiredcontentTextstringrequiredmediaobject | nullrequiredplatformPayloadobject | nullrequiredpublishedExternalIdstring | nullrequiredpublishedUrlstring | nullrequiredattemptCountnumberrequiredlastAttemptAtstring | nullrequirednextRetryAtstring | nullrequiredlastErrorstring | nullrequiredidempotencyKeystring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nullapprovalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
pageintegerrequiredlimitintegerrequiredtotalintegerrequiredhasMorebooleanrequired
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/posts" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"PATCH/v1/orgs/{orgId}/marketing/posts/{postId}
Partial update. Omitted keys are unchanged (status-only PATCH keeps contentText). Editing contentText/media/platformPayload on approved, scheduled, or failed content invalidates approval.
Path parameters
orgIdstring (uuid)requiredpostIdstring (uuid)required
Request body application/json
socialAccountIdstring (uuid)statusstringone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstringcontentTextstringmediaobjectplatformPayloadobjectquoteTweetUrlstring | nullcommunityUrlstring | nullreplySettingsstring | nullone of
everyone,following,mentionedUsers,verifiedpollobject | nullFields
optionsarray<string>requireddurationMinutesintegerrequired
Responses
200Partial update. Omitted keys are unchanged (status-only PATCH keeps contentText). Editing contentText/media/platformPayload on approved, scheduled, or failed content invalidates approval.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredgroupIdstring (uuid)requiredplatformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadssocialAccountIdstring (uuid) | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstring | nullrequiredcontentTextstringrequiredmediaobject | nullrequiredplatformPayloadobject | nullrequiredpublishedExternalIdstring | nullrequiredpublishedUrlstring | nullrequiredattemptCountnumberrequiredlastAttemptAtstring | nullrequirednextRetryAtstring | nullrequiredlastErrorstring | nullrequiredidempotencyKeystring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nullapprovalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
curl -X PATCH "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/posts/$POST_ID" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'DELETE/v1/orgs/{orgId}/marketing/posts/{postId}
Path parameters
orgIdstring (uuid)requiredpostIdstring (uuid)required
Responses
200
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredgroupIdstring (uuid)requiredplatformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadssocialAccountIdstring (uuid) | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstring | nullrequiredcontentTextstringrequiredmediaobject | nullrequiredplatformPayloadobject | nullrequiredpublishedExternalIdstring | nullrequiredpublishedUrlstring | nullrequiredattemptCountnumberrequiredlastAttemptAtstring | nullrequirednextRetryAtstring | nullrequiredlastErrorstring | nullrequiredidempotencyKeystring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nullapprovalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
curl -X DELETE "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/posts/$POST_ID" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"POST/v1/orgs/{orgId}/marketing/posts/{postId}/post-now
Publish an approved or scheduled post immediately. Draft and pending_approval return HTTP 409 until a human approves.
Path parameters
orgIdstring (uuid)requiredpostIdstring (uuid)required
Responses
200Publish an approved or scheduled post immediately. Draft and pending_approval return HTTP 409 until a human approves.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredgroupIdstring (uuid)requiredplatformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadssocialAccountIdstring (uuid) | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstring | nullrequiredcontentTextstringrequiredmediaobject | nullrequiredplatformPayloadobject | nullrequiredpublishedExternalIdstring | nullrequiredpublishedUrlstring | nullrequiredattemptCountnumberrequiredlastAttemptAtstring | nullrequirednextRetryAtstring | nullrequiredlastErrorstring | nullrequiredidempotencyKeystring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nullapprovalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
curl -X POST "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/posts/$POST_ID/post-now" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"