Skip to content

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

Bearer tokenMCP tool: list_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

  • pageinteger
  • limitinteger
  • sortBystring

    one of scheduledForUtc, createdAt, status, platform

  • sortDirstring

    one of asc, desc

  • filterobject
    Fields
    • platformstring
    • statusstring
    • socialAccountIdstring
    • tagIdstring
    • scheduledFromstring
    • scheduledTostring
  • filterOpobject
    Fields
    • platformstring

      one of eq, in

    • statusstring

      one of eq, in

    • socialAccountIdstring

      one of eq

    • tagIdstring

      one of eq, in

    • scheduledFromstring

      one of gte

    • scheduledTostring

      one of lte

Responses

200
  • dataobjectrequired
    Fields
    • itemsarray<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

    • pageintegerrequired
    • limitintegerrequired
    • totalintegerrequired
    • hasMorebooleanrequired
Request
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}

Bearer tokenMCP tool: update_post

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

Request body application/json

  • socialAccountIdstring (uuid)
  • statusstring

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

  • scheduledForUtcstring
  • contentTextstring
  • mediaobject
  • platformPayloadobject
  • quoteTweetUrlstring | null
  • communityUrlstring | null
  • replySettingsstring | null

    one of everyone, following, mentionedUsers, verified

  • pollobject | null
    Fields
    • optionsarray<string>required
    • durationMinutesintegerrequired

Responses

200Partial update. Omitted keys are unchanged (status-only PATCH keeps contentText). Editing contentText/media/platformPayload on approved, scheduled, or failed content invalidates approval.
  • dataobjectrequired
    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 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}

Bearer token

Path parameters

  • orgIdstring (uuid)required
  • postIdstring (uuid)required

Responses

200
  • dataobjectrequired
    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 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

Bearer tokenMCP tool: post_now

Publish an approved or scheduled post immediately. Draft and pending_approval return HTTP 409 until a human approves.

Path parameters

  • orgIdstring (uuid)required
  • postIdstring (uuid)required

Responses

200Publish an approved or scheduled post immediately. Draft and pending_approval return HTTP 409 until a human approves.
  • dataobjectrequired
    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/posts/$POST_ID/post-now" \
-H "Authorization: Bearer $ADVENTURAI_TOKEN"