Skip to content

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

Bearer token

Path parameters

  • orgIdstring (uuid)required

Request body application/json

  • titlestringrequired
  • postsarray<object>required
    Item fields
    • platformstringrequired

      one of x, linkedin, tiktok, reddit, facebook, instagram, youtube, bluesky, threads

    • contentTextstringrequired
    • socialAccountIdstring (uuid)
    • mediaobject
    • platformPayloadobject
    • replySettingsstring

      one of everyone, following, mentionedUsers, verified

  • topicstring
  • objectivestring
  • timezonestring
  • scheduledForstring
  • tagIdsarray<string (uuid)>
  • strategyIdstring (uuid)
  • strategyVersioninteger
  • pillarIdstring
  • priorityIdstring
  • contentTypestring
  • opportunityIdstring

Responses

200
  • dataobjectrequired
    Fields
    • groupobjectrequired
      Fields
      • idstring (uuid)required
      • orgIdstring (uuid)required
      • titlestringrequired
      • topicstring | nullrequired
      • objectivestring | nullrequired
      • statusstringrequired

        one of draft, pending_approval, approved, scheduled, canceled

      • timezonestringrequired
      • scheduledForstring | nullrequired
      • approvedBystring (uuid) | nullrequired
      • approvedAtstring | nullrequired
      • createdAtstringrequired
      • updatedAtstringrequired
      • scheduleReasonstring | null
      • tagIdsarray<string (uuid)>
      • approvalsarray<object>
        Item fields
        • idstring (uuid)required
        • levelstringrequired

          one of group, post

        • groupIdstring (uuid)required
        • postIdstring (uuid) | nullrequired
        • approvedByUserIdstring (uuid)required
        • approvedAtstringrequired
        • actionstringrequired

          one of submit_for_approval, approved, reapproved, rejected

      • strategyIdstring (uuid) | null
      • strategyVersioninteger | null
      • pillarIdstring | null
      • priorityIdstring | null
      • contentTypestring | null
      • opportunityIdstring | null
    • postsarray<object>required
      Item fields
      • idstring (uuid)required
      • orgIdstring (uuid)required
      • groupIdstring (uuid)required
      • platformstringrequired

        one of x, linkedin, tiktok, reddit, facebook, instagram, youtube, bluesky, threads

      • socialAccountIdstring (uuid) | nullrequired
      • statusstringrequired

        one of draft, pending_approval, approved, scheduled, publishing, awaiting_platform, published, failed, canceled

      • scheduledForUtcstring | nullrequired
      • contentTextstringrequired
      • mediaobject | nullrequired
      • platformPayloadobject | nullrequired
      • publishedExternalIdstring | nullrequired
      • publishedUrlstring | nullrequired
      • attemptCountnumberrequired
      • lastAttemptAtstring | nullrequired
      • nextRetryAtstring | nullrequired
      • lastErrorstring | nullrequired
      • idempotencyKeystring | nullrequired
      • createdAtstringrequired
      • updatedAtstringrequired
      • scheduleReasonstring | null
      • approvalsarray<object>
        Item fields
        • idstring (uuid)required
        • levelstringrequired

          one of group, post

        • groupIdstring (uuid)required
        • postIdstring (uuid) | nullrequired
        • approvedByUserIdstring (uuid)required
        • approvedAtstringrequired
        • actionstringrequired

          one of submit_for_approval, approved, reapproved, rejected

Request
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}

Bearer tokenMCP tool: update_post_group

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)required
  • groupIdstring (uuid)required

Request body application/json

  • titlestring
  • topicstring
  • objectivestring
  • timezonestring
  • scheduledForstring
  • statusstring

    one of draft, pending_approval, approved, scheduled, canceled

  • tagIdsarray<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.
  • dataobjectrequired
    Fields
    • idstring (uuid)required
    • orgIdstring (uuid)required
    • titlestringrequired
    • topicstring | nullrequired
    • objectivestring | nullrequired
    • statusstringrequired

      one of draft, pending_approval, approved, scheduled, canceled

    • timezonestringrequired
    • scheduledForstring | nullrequired
    • approvedBystring (uuid) | nullrequired
    • approvedAtstring | nullrequired
    • createdAtstringrequired
    • updatedAtstringrequired
    • scheduleReasonstring | null
    • tagIdsarray<string (uuid)>
    • approvalsarray<object>
      Item fields
      • idstring (uuid)required
      • levelstringrequired

        one of group, post

      • groupIdstring (uuid)required
      • postIdstring (uuid) | nullrequired
      • approvedByUserIdstring (uuid)required
      • approvedAtstringrequired
      • actionstringrequired

        one of submit_for_approval, approved, reapproved, rejected

    • strategyIdstring (uuid) | null
    • strategyVersioninteger | null
    • pillarIdstring | null
    • priorityIdstring | null
    • contentTypestring | null
    • opportunityIdstring | null
Request
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

Bearer tokenMCP tool: approve_post_group

Approve candidate content. By default, AdVentur auto-assigns the best available publishing slot.

Path parameters

  • orgIdstring (uuid)required
  • groupIdstring (uuid)required

Request body application/json

  • approvePostsarray<string (uuid)>
  • autoScheduleboolean
  • scheduledForUtcstring
  • timezonestring

Responses

200Approve candidate content. By default, AdVentur auto-assigns the best available publishing slot.
  • dataobjectrequired
    Fields
    • idstring (uuid)required
    • orgIdstring (uuid)required
    • titlestringrequired
    • topicstring | nullrequired
    • objectivestring | nullrequired
    • statusstringrequired

      one of draft, pending_approval, approved, scheduled, canceled

    • timezonestringrequired
    • scheduledForstring | nullrequired
    • approvedBystring (uuid) | nullrequired
    • approvedAtstring | nullrequired
    • createdAtstringrequired
    • updatedAtstringrequired
    • scheduleReasonstring | null
    • tagIdsarray<string (uuid)>
    • approvalsarray<object>
      Item fields
      • idstring (uuid)required
      • levelstringrequired

        one of group, post

      • groupIdstring (uuid)required
      • postIdstring (uuid) | nullrequired
      • approvedByUserIdstring (uuid)required
      • approvedAtstringrequired
      • actionstringrequired

        one of submit_for_approval, approved, reapproved, rejected

    • strategyIdstring (uuid) | null
    • strategyVersioninteger | null
    • pillarIdstring | null
    • priorityIdstring | null
    • contentTypestring | null
    • opportunityIdstring | null
Request
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

Bearer tokenMCP tool: reject_post_group

Reject candidate content quickly. Optional lightweight reasons improve preference learning.

Path parameters

  • orgIdstring (uuid)required
  • groupIdstring (uuid)required

Request body application/json

  • rejectPostsarray<string (uuid)>
  • reasonstring

    one of not_my_voice, not_interesting, too_promotional, inaccurate, repetitive, wrong_timing, other

  • notestring

Responses

200Reject candidate content quickly. Optional lightweight reasons improve preference learning.
  • dataobjectrequired
    Fields
    • idstring (uuid)required
    • orgIdstring (uuid)required
    • titlestringrequired
    • topicstring | nullrequired
    • objectivestring | nullrequired
    • statusstringrequired

      one of draft, pending_approval, approved, scheduled, canceled

    • timezonestringrequired
    • scheduledForstring | nullrequired
    • approvedBystring (uuid) | nullrequired
    • approvedAtstring | nullrequired
    • createdAtstringrequired
    • updatedAtstringrequired
    • scheduleReasonstring | null
    • tagIdsarray<string (uuid)>
    • approvalsarray<object>
      Item fields
      • idstring (uuid)required
      • levelstringrequired

        one of group, post

      • groupIdstring (uuid)required
      • postIdstring (uuid) | nullrequired
      • approvedByUserIdstring (uuid)required
      • approvedAtstringrequired
      • actionstringrequired

        one of submit_for_approval, approved, reapproved, rejected

    • strategyIdstring (uuid) | null
    • strategyVersioninteger | null
    • pillarIdstring | null
    • priorityIdstring | null
    • contentTypestring | null
    • opportunityIdstring | null
Request
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

Bearer tokenMCP tool: schedule_post_group

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)required
  • groupIdstring (uuid)required

Request body application/json

  • scheduledForUtcstring
  • useBestSlotboolean
  • timezonestring
  • postIdsarray<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.
  • dataobjectrequired
    Fields
    • idstring (uuid)required
    • orgIdstring (uuid)required
    • titlestringrequired
    • topicstring | nullrequired
    • objectivestring | nullrequired
    • statusstringrequired

      one of draft, pending_approval, approved, scheduled, canceled

    • timezonestringrequired
    • scheduledForstring | nullrequired
    • approvedBystring (uuid) | nullrequired
    • approvedAtstring | nullrequired
    • createdAtstringrequired
    • updatedAtstringrequired
    • scheduleReasonstring | null
    • tagIdsarray<string (uuid)>
    • approvalsarray<object>
      Item fields
      • idstring (uuid)required
      • levelstringrequired

        one of group, post

      • groupIdstring (uuid)required
      • postIdstring (uuid) | nullrequired
      • approvedByUserIdstring (uuid)required
      • approvedAtstringrequired
      • actionstringrequired

        one of submit_for_approval, approved, reapproved, rejected

    • strategyIdstring (uuid) | null
    • strategyVersioninteger | null
    • pillarIdstring | null
    • priorityIdstring | null
    • contentTypestring | null
    • opportunityIdstring | null
Request
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 '{}'