---
title: "Get content"
method: GET
path: "/v1/workspaces/{workspaceId}/content/{id}"
tags: ["Content"]
---

# Get content

`GET /v1/workspaces/{workspaceId}/content/{id}`

## Request

- Base URL: `https://api.maevesocial.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.maevesocial.com/v1/workspaces/{workspaceId}/content/{id}`
- Auth: HTTP bearer

Returns full content detail including integration info, media, thread messages, current metadata, and sanitized platform-specific settings.

## Path parameters

- `id` string, required
- `workspaceId` string, uuid, required

## Response `200`

Content detail

- object
  - `data` PublicContentDetailDto, required
    - `id` string, uuid, required
    - `appUrl` string, uri: Authenticated Maeve app link for reviewing this content. Use this URL exactly as returned.
    - `permalink` string, uri, nullable, required: Published provider URL when Maeve has a validated HTTPS permalink. Null before publication.
    - `platformPostId` string, nullable: Saved provider identity for X, Google Business Profile, or LinkedIn personal and Page content. LinkedIn returns a share/ugcPost URN or null when no valid identity was captured. This is not proof of native visibility.
    - `groupId` string, uuid
    - `organizationalTitle` string, nullable, required: Organizational title shown inside Maeve. Never published.
    - `internalTitle` string, nullable, required
    - `publishTitle` string, nullable, required
    - `origin` 'user_created' | 'platform_import', required: Content origin. platform_import rows are imported reference records and have restricted actions.
    - `allowedActions` PublicContentAllowedActionsDto, required
      - `canEdit` boolean, required
      - `canReschedule` boolean, required
      - `canRetry` boolean, required
      - `canPublishNow` boolean, required
      - `canDelete` boolean, required
      - `canReuseAsDraft` boolean, required
      - `canUpdatePublishedCaption` boolean, required
    - `notes` string, required: Free-form rich-text notes (HTML). Internal — never published. Empty string when none set.
    - `captions` CaptionsDto
      - `canonical` string, nullable
      - `overrides` CaptionOverridesDto
        - `x` string, nullable
        - `linkedin` string, nullable
        - `linkedin-page` string, nullable
        - `youtube` string, nullable
        - `instagram` string, nullable
        - `facebook` string, nullable
        - `threads` string, nullable
        - `tiktok` string, nullable
        - `pinterest` string, nullable
        - `google-business-profile` string, nullable
    - `resolvedCaption` string, required
    - `status` 'draft' | 'pending_approval' | 'rejected' | 'scheduled' | 'sent' | 'failed' | 'cancelled', required
    - `deliveryMode` 'direct' | 'tiktok_drafts': TikTok delivery destination. tiktok_drafts requires finishing in TikTok even when status is sent.
    - `workflowStatus` 'drafting' | 'review' | 'approved' | 'scheduled' | 'published', required
    - `reviewLifecycle` PublicReviewLifecycleDto
      - `phase` 'none' | 'team' | 'client', required
      - `state` 'none' | 'pending' | 'changes_requested' | 'needs_schedule' | 'approved' | 'overridden' | 'cancelled' | 'expired', required
      - `actor` 'none' | 'agency' | 'author' | 'approver' | 'client' | 'system', required
      - `nextAction` 'request_review' | 'send' | 'decide' | 'address_changes' | 'schedule' | 'publish' | 'none', required
      - `blocksPublishing` boolean, required
      - `blockers` PublicReviewLifecycleBlockerDto[], required
        - `code` 'missing_schedule' | 'schedule_expired' | 'review_pending' | 'changes_requested' | 'review_cancelled' | 'review_expired', required
        - `message` string
        - `details` object
      - `progress` PublicReviewLifecycleProgressDto
        - `reviewId` string, uuid, required
        - `itemId` string, uuid, required
        - `label` string, nullable
        - `stageKind` 'team' | 'client', nullable
        - `stagePosition` number, nullable
        - `stageCount` number, required
        - `rule` 'any' | 'all', required
        - `inOrder` boolean, required
        - `waitingOn` object[], required
        - `version` number, required
    - `scheduledAt` string, nullable, required
    - `sentAt` string, nullable, required
    - `calendarAt` string, nullable, required: Timestamp used for calendar display: sentAt for published content, scheduledAt for planned content.
    - `archivedAt` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `error` string, nullable, required
    - `failureCategory` 'connection_expired' | 'account_action_required' | 'credits_depleted' | 'platform_rejected' | 'missed_window' | 'publishing_outcome_unknown' | 'temporary_service_issue' | 'unknown', nullable, required: Backend-owned failed-post category. Null unless status is failed.
    - `recommendedAction` 'reconnect_account' | 'retry_after_account_action' | 'retry_now' | 'edit_and_reschedule' | 'reschedule_only' | 'confirm_result' | 'upgrade_billing' | 'delete_only', nullable, required: Backend-recommended recovery action for failed content. Null unless status is failed.
    - `platformDeletedAt` string, nullable, required
    - `platformDeletedByUserId` string, uuid, nullable, required
    - `integrationId` string, uuid, required
    - `postType` string, required
    - `poll` LinkedInPollDto
      - `question` string, required
      - `options` LinkedInPollOptionDto[], required
        - `text` string, required
      - `duration` 'ONE_DAY' | 'THREE_DAYS' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS', required
      - `voteSelectionType` 'SINGLE_VOTE', nullable
      - `isVoterVisibleToAuthor` boolean, nullable
    - `firstComment` string, nullable, required
    - `shareToFeed` boolean, required
    - `labelIds` string[], required: Workspace label IDs attached to this content.
    - `pillarIds` string[], required: Content pillar IDs attached to this content.
    - `pillars` PublicContentPillarDto[], required: Content pillars attached to this content.
      - `id` string, uuid, required
      - `name` string, required
      - `color` string, nullable, required
      - `description` string, nullable
      - `sortOrder` number, required
      - `archivedAt` string, nullable
    - `formatIds` string[], required: Content format IDs attached to this content.
    - `formats` PublicContentFormatDto[], required: Content formats attached to this content.
      - `id` string, uuid, required
      - `name` string, required
      - `color` string, nullable, required
      - `description` string, nullable
      - `sortOrder` number, required
      - `isSeeded` boolean
      - `archivedAt` string, nullable
    - `campaignId` string, uuid, nullable, required
    - `campaignPhaseId` string, uuid, nullable, required
    - `priority` 'urgent' | 'high' | 'medium' | 'low'
    - `assigneeIds` string[], required
    - `assignees` PublicContentAssigneeDto[], required
      - `id` string, uuid, required
      - `displayName` string, required
      - `email` string, required
      - `avatarUrl` string, nullable, required
    - `labels` PublicContentLabelDto[], required: Workspace labels attached to this content.
      - `id` string, uuid, required
      - `name` string, required
      - `color` string, nullable, required
      - `groupId` string, uuid, nullable
      - `archivedAt` string, nullable
      - `mergedIntoLabelId` string, uuid, nullable
      - `mergedAt` string, nullable
      - `mergedByUserId` string, uuid, nullable
    - `integration` PublicContentIntegrationDto, required
      - `platform` string, required
      - `username` string, required
      - `avatarUrl` string, nullable, required
      - `name` string, nullable, required
    - `contentMedia` PublicContentMediaAttachmentDto[], required
      - `mediaId` string, uuid, required
      - `order` number, required
      - `type` string, nullable, required
      - `url` string, nullable, required
      - `thumbnailUrl` string, nullable, required
      - `filename` string, nullable, required
      - `crops` object, required
      - `userTags` object[], required
      - `productTags` object[], required
      - `cover` object, nullable, required
    - `threadMessages` PublicContentThreadMessageResponseDto[], required
      - `platformPostId` string, nullable: Native X reply ID. Historical replies may have no captured ID.
      - `permalink` string, uri, nullable: Validated HTTPS link for an X reply, when captured.
      - `id` string, uuid, required
      - `captions` CaptionsDto, required
        - `canonical` string, nullable
        - `overrides` CaptionOverridesDto
          - `x` string, nullable
          - `linkedin` string, nullable
          - `linkedin-page` string, nullable
          - `youtube` string, nullable
          - `instagram` string, nullable
          - `facebook` string, nullable
          - `threads` string, nullable
          - `tiktok` string, nullable
          - `pinterest` string, nullable
          - `google-business-profile` string, nullable
      - `resolvedCaption` string, required
      - `contentMedia` PublicContentMediaAttachmentDto[], required
        - `mediaId` string, uuid, required
        - `order` number, required
        - `type` string, nullable, required
        - `url` string, nullable, required
        - `thumbnailUrl` string, nullable, required
        - `filename` string, nullable, required
        - `crops` object, required
        - `userTags` object[], required
        - `productTags` object[], required
        - `cover` object, nullable, required
    - `settings` object, nullable: Sanitized strict provider settings for this content item's integration platform.
  - `meta` unknown, required

## Other responses

- `404`: Content not found

---

[API](https://skmtc.dev/maevesocial/apis/maeve-social-api.md) · [All operations](https://skmtc.dev/maevesocial/apis/maeve-social-api/llms.txt) · [OpenAPI document](https://skmtc.dev/maevesocial/apis/maeve-social-api/revisions/1b00fd7e4b15?raw)
