Post groups API
Approve, schedule, reject and edit groups of cross-posted variants.
5 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.
POST/v1/orgs/{orgId}/marketing/post-groups
Path parameters
orgIdstring (uuid)required
Request body application/json
titlestringrequiredpostsarray<object>requiredItem fields
platformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadscontentTextstringrequiredsocialAccountIdstring (uuid)mediaobjectplatformPayloadobjectreplySettingsstringone of
everyone,following,mentionedUsers,verified
topicstringobjectivestringtimezonestringscheduledForstringtagIdsarray<string (uuid)>strategyIdstring (uuid)strategyVersionintegerpillarIdstringpriorityIdstringcontentTypestringopportunityIdstring
Responses
200
dataobjectrequiredFields
groupobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredtitlestringrequiredtopicstring | nullrequiredobjectivestring | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,canceledtimezonestringrequiredscheduledForstring | nullrequiredapprovedBystring (uuid) | nullrequiredapprovedAtstring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nulltagIdsarray<string (uuid)>approvalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
strategyIdstring (uuid) | nullstrategyVersioninteger | nullpillarIdstring | nullpriorityIdstring | nullcontentTypestring | nullopportunityIdstring | null
postsarray<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
curl -X POST "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/post-groups" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{"title":"string","posts":[{"platform":"x","contentText":"string"}]}'PATCH/v1/orgs/{orgId}/marketing/post-groups/{groupId}
Partial update. Omitted keys are unchanged (status-only PATCH keeps title/topic/objective). Editing title/topic/objective on approved or scheduled content returns the group to pending_approval.
Path parameters
orgIdstring (uuid)requiredgroupIdstring (uuid)required
Request body application/json
titlestringtopicstringobjectivestringtimezonestringscheduledForstringstatusstringone of
draft,pending_approval,approved,scheduled,canceledtagIdsarray<string (uuid)>
Responses
200Partial update. Omitted keys are unchanged (status-only PATCH keeps title/topic/objective). Editing title/topic/objective on approved or scheduled content returns the group to pending_approval.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredtitlestringrequiredtopicstring | nullrequiredobjectivestring | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,canceledtimezonestringrequiredscheduledForstring | nullrequiredapprovedBystring (uuid) | nullrequiredapprovedAtstring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nulltagIdsarray<string (uuid)>approvalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
strategyIdstring (uuid) | nullstrategyVersioninteger | nullpillarIdstring | nullpriorityIdstring | nullcontentTypestring | nullopportunityIdstring | null
curl -X PATCH "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/post-groups/$GROUP_ID" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'POST/v1/orgs/{orgId}/marketing/post-groups/{groupId}/approve
Approve candidate content. By default, AdVentur auto-assigns the best available publishing slot.
Path parameters
orgIdstring (uuid)requiredgroupIdstring (uuid)required
Request body application/json
approvePostsarray<string (uuid)>autoSchedulebooleanscheduledForUtcstringtimezonestring
Responses
200Approve candidate content. By default, AdVentur auto-assigns the best available publishing slot.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredtitlestringrequiredtopicstring | nullrequiredobjectivestring | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,canceledtimezonestringrequiredscheduledForstring | nullrequiredapprovedBystring (uuid) | nullrequiredapprovedAtstring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nulltagIdsarray<string (uuid)>approvalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
strategyIdstring (uuid) | nullstrategyVersioninteger | nullpillarIdstring | nullpriorityIdstring | nullcontentTypestring | nullopportunityIdstring | null
curl -X POST "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/post-groups/$GROUP_ID/approve" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'POST/v1/orgs/{orgId}/marketing/post-groups/{groupId}/reject
Reject candidate content quickly. Optional lightweight reasons improve preference learning.
Path parameters
orgIdstring (uuid)requiredgroupIdstring (uuid)required
Request body application/json
rejectPostsarray<string (uuid)>reasonstringone of
not_my_voice,not_interesting,too_promotional,inaccurate,repetitive,wrong_timing,othernotestring
Responses
200Reject candidate content quickly. Optional lightweight reasons improve preference learning.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredtitlestringrequiredtopicstring | nullrequiredobjectivestring | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,canceledtimezonestringrequiredscheduledForstring | nullrequiredapprovedBystring (uuid) | nullrequiredapprovedAtstring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nulltagIdsarray<string (uuid)>approvalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
strategyIdstring (uuid) | nullstrategyVersioninteger | nullpillarIdstring | nullpriorityIdstring | nullcontentTypestring | nullopportunityIdstring | null
curl -X POST "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/post-groups/$GROUP_ID/reject" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'POST/v1/orgs/{orgId}/marketing/post-groups/{groupId}/schedule
Schedule approved content at an explicit UTC time or the best available slot (useBestSlot). Groups in draft or pending_approval are rejected with HTTP 409.
Path parameters
orgIdstring (uuid)requiredgroupIdstring (uuid)required
Request body application/json
scheduledForUtcstringuseBestSlotbooleantimezonestringpostIdsarray<string (uuid)>
Responses
200Schedule approved content at an explicit UTC time or the best available slot (useBestSlot). Groups in draft or pending_approval are rejected with HTTP 409.
dataobjectrequiredFields
idstring (uuid)requiredorgIdstring (uuid)requiredtitlestringrequiredtopicstring | nullrequiredobjectivestring | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,canceledtimezonestringrequiredscheduledForstring | nullrequiredapprovedBystring (uuid) | nullrequiredapprovedAtstring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nulltagIdsarray<string (uuid)>approvalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
strategyIdstring (uuid) | nullstrategyVersioninteger | nullpillarIdstring | nullpriorityIdstring | nullcontentTypestring | nullopportunityIdstring | null
curl -X POST "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/post-groups/$GROUP_ID/schedule" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'