---
title: "Fetch social media posts"
method: GET
path: "/api/v1/workspaces/{workspace_id}/posts"
tags: ["📝 Posts"]
---

# Fetch social media posts

`GET /api/v1/workspaces/{workspace_id}/posts`

Retrieve a paginated list of social media posts for a specific workspace with filtering options

## Path parameters

- `workspace_id` string, required

## Query parameters

- `status[]` string[]
- `date_from` string, date
- `date_to` string, date
- `page` integer
- `per_page` integer
- `approval_assigned_to[]` string[]
- `approval_requested_by[]` string[]
- `labels[]` string[]
- `campaigns[]` string[]
- `content_category[]` string[]
- `created_by[]` string[]
- `comment_status` 'resolved' | 'unresolved' | 'all'

## Response `200`

Posts retrieved successfully

- object
  - `status` boolean
  - `message` string
  - `current_page` integer
  - `per_page` integer
  - `total` integer
  - `last_page` integer
  - `from` integer
  - `to` integer
  - `data` object[]
    - `id` string
    - `workspace_id` string
    - `post_url` string, nullable — Deep link to the post in the planner list view. Null when no whitelabel/workspace slug is resolvable.
    - `common` object
      - `content` object
        - `text` string
        - `media` object
          - `images` object[]
            - `url` string
          - `video` object, nullable
            - `url` string
            - `thumbnail` string, nullable
            - `duration` string, nullable
    - `accounts` object[]
      - `id` string
      - `platform` 'facebook' | 'twitter' | 'linkedin' | 'pinterest' | 'instagram' | 'gmb' | 'youtube' | 'tiktok' | 'tumblr' | 'threads' | 'bluesky' | 'telegram'
      - `name` string
      - `username` string
      - `posting_status` 'success' | 'error', nullable — Result of the publishing attempt for this account. Present only once a posting record exists.
      - `post_link` string, nullable — Live URL of the published post. Present when posting_status is success.
      - `error_message` string, nullable — Failure reason. Present when posting_status is error.
      - `deleted` boolean — True when the published post was later deleted on the platform.
      - `deleted_message` string, nullable
    - `scheduling` object
      - `publish_type` 'draft' | 'scheduled' | 'published' | 'failed' | 'rejected' | 'under_review' | 'missed_review' | 'partial' | 'in_progress' | 'notification_sent' | 'notification_declined'
      - `execute_time` string, date-time, nullable — Resolved execution time of the post. Null when no execution time is set.
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `created_by` string, nullable
    - `content_category_id` string — Empty string when the post is not tied to a content category.
    - `hide_client` boolean
    - `labels` object[]
      - `id` string
      - `name` string
      - `color` string
    - `campaign` object — Campaign/folder information. Empty object {} when no campaign assigned.
      - `id` string
      - `name` string
      - `color` string
    - `first_comment` object — First comment payload. Empty object {} when not configured.
      - `message` string
      - `accounts` string[]
    - `gmb_options` object — Google My Business options. Empty object {} when no GMB account is targeted.
      - `topic_type` string
      - `start_date` string, nullable
      - `end_date` string, nullable
      - `title` string, nullable
      - `action_type` string, nullable
      - `cta_link` string, nullable
    - `youtube_options` object — YouTube options. Empty object {} when no YouTube account is targeted. Note: category is returned as the stored YouTube category ID, not the name accepted on the store endpoint.
      - `title` string, nullable
      - `privacy_status` string
      - `category` string, nullable
      - `tags` string[]
      - `license` string, nullable
      - `made_for_kids` boolean
    - `tiktok_options` object — TikTok options. Empty object {} when no TikTok account is targeted.
      - `privacy_level` string
      - `disable_comment` boolean
      - `disable_duet` boolean
      - `disable_stitch` boolean
      - `auto_add_music` boolean
      - `brand_content_toggle` boolean
      - `is_aigc` boolean
    - `pinterest_options` object — Pinterest title and destination link. Empty object {} when no Pinterest account is targeted.
      - `title` string, nullable
      - `link` string, uri, nullable
    - `twitter_options` object — Twitter/X thread options. Empty object {} when no Twitter account is targeted or threads are disabled.
      - `has_threaded_tweets` boolean
      - `threaded_tweets` object[]
        - `message` string
        - `media` string[]
    - `threads_options` object — Threads multi-thread options. Empty object {} when no Threads account is targeted or multi-threads are disabled.
      - `has_multi_threads` boolean
      - `multi_threads` object[]
        - `message` string
        - `media` string[]
    - `facebook_options` object — Facebook options. Empty object {} when no Facebook account is targeted.
      - `facebook_background_id` string — Empty string when no text-post background preset is selected.
      - `carousel` object — Carousel payload reshaped to the store-request format. Empty array [] when the post is not a carousel.
        - `is_carousel_post` boolean
        - `cards` object[]
          - `image` string, uri
          - `title` string
          - `description` string
          - `link` string, uri
        - `accounts` string[]
        - `call_to_action` string
        - `end_card` boolean
        - `end_card_url` string, nullable
    - `linkedin_options` object — LinkedIn options. Empty object {} when no LinkedIn account is targeted or no options are set.
      - `title` string
      - `is_carousel` boolean
      - `accounts` string[]
      - `post_type` string
      - `poll` object — Present only for poll posts.
        - `question` string
        - `options` string[]
        - `duration` string
    - `approval` object — Legacy single-level approval. Empty object {} when no legacy approval is set.
      - `status` 'pending_approval' | 'completed_approval' | 'rejected_approval', nullable
      - `approve_option` 'anyone' | 'all', nullable
      - `notes` string, nullable
      - `approvers` object[]
        - `user_id` string, nullable
        - `name` string, nullable
        - `email` string, nullable
        - `is_external` boolean
        - `status` 'pending' | 'approve' | 'reject'
        - `last_action_time` string, date-time, nullable
        - `last_action_note` string, nullable
    - `approval_workflow` object — Multi-level approval workflow snapshot. Empty object {} when the post uses no workflow.
      - `workflow_id` string
      - `workflow_name` string, nullable
      - `status` 'pending' | 'partially_approved' | 'fully_approved' | 'rejected', nullable
      - `current_level` integer
      - `total_levels` integer
      - `notes` string, nullable
      - `submitted_at` string, date-time, nullable
      - `levels` object[]
        - `level_number` integer
        - `title` string, nullable
        - `rule` 'anyone' | 'everyone', nullable
        - `members` object[]
          - `user_id` string
          - `status` 'pending' | 'approved' | 'rejected' | 'no_action_needed'
          - `actioned_at` string, date-time, nullable
          - `comment` string, nullable
    - `external_actions` object[] — External action participants. Each item only exposes the external user's name and email.
      - `name` string, nullable
      - `email` string, nullable
      - `action` string, nullable
    - `external_comments` object[] — External comments with minimal comment metadata.
      - `name` string, nullable
      - `email` string, nullable
      - `comment` string, nullable
      - `reaction` object[]
      - `is_resolved` boolean

## Other responses

- `400` — Invalid request parameters
- `401` — Unauthorized - Invalid API key
- `403` — Forbidden - No access to workspace
- `404` — Workspace not found
- `429` — Too many requests

---

[API](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1.md) · [All operations](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/contentstudio/contentstudio-api-v1/revisions/ec0c85521883/schema)
