---
title: "List social posts"
method: GET
path: "/social/posts"
tags: ["Social"]
---

# List social posts

`GET /social/posts`

## Request

- Base URL: `https://api.mosaic.so`
- URL: `https://api.mosaic.so/social/posts`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

List social posts for the API key's organization with cursor pagination. Results are sorted by created_at descending.

## Query parameters

- `limit` integer
- `cursor` string
- `status` 'scheduled' | 'pending_approval' | 'processing' | 'posted' | 'partial_failure' | 'failed' | 'rejected'
- `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube'
- `social_connection_id` string, uuid

## Response `200`

Social posts

- SocialPostListResponse
  - `posts` SocialPostResponse[], required
    - `post_id` string
    - `status` string, nullable: Aggregate status for the social post across destinations. Common values are scheduled, processing, pending_approval, posted, partial_failure, failed, and rejected.
    - `publishing_status` string, nullable: Status returned by an immediate publishing attempt. Null while a future-scheduled post is still queued.
    - `scheduled_at` string, nullable: Scheduled publish time as an ISO timestamp. For immediate posts this is the creation time.
    - `platforms` string[]
    - `links` object[]: Public destination links. This can be empty while a scheduled post is waiting to publish.
      - `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube'
      - `post_url` string, nullable
      - `social_connection_id` string, uuid, nullable
    - `results` SocialPostResult[]: Per-destination publishing outcomes. Native destination IDs and URLs can be null while scheduled.
      - `social_connection_id` string, uuid, nullable
      - `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube'
      - `status` string, nullable: Destination status. scheduled means the destination is waiting or processing; success means it published; error means publishing failed for that destination.
      - `platform_post_id` string, nullable: Native post ID from the destination platform. Null while a scheduled destination is still waiting to publish.
      - `post_url` string, nullable
      - `message` string, nullable
    - `destination_results` union: Canonical per-destination outcomes keyed by social_connection_id for create responses and returned as a list by get responses.
      - SocialDestinationPostResult[]
        - `social_connection_id` string, uuid, required
        - `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube', required
        - `status` string, nullable: Destination status. scheduled means the destination is waiting or processing; success means it published; error means publishing failed for that destination.
        - `platform_post_id` string, nullable: Native post ID from the destination platform. Null while a scheduled destination is still waiting to publish.
        - `post_url` string, nullable
        - `message` string, nullable
      - object
    - `destinations` SocialDestination[]
      - `social_connection_id` string, uuid, required
      - `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube', required
      - `account_name` string, nullable
      - `account_username` string, nullable
      - `profile_url` string, nullable
      - `username` string, nullable: Backward-compatible account username field.
      - `display_name` string, nullable: Backward-compatible account display name field.
      - `user_image` string, nullable: Backward-compatible account avatar/image field.
    - `stats` object, nullable: Backward-compatible analytics payload. Prefer analytics for new integrations.
    - `error` string, nullable
    - `publishing_errors` object[]
    - `created_at` string, nullable
    - `updated_at` string, nullable
    - `description` string, nullable: Post description or caption when available.
    - `thumbnail_url` string, uri, nullable: Post thumbnail URL when available.
    - `analytics` SocialPostAnalyticsPayload
      - `status` string, nullable, required: Analytics status. Null when the source response does not include a status.
      - `totals` SocialAnalyticsMetrics, required: Fixed normalized metric object. Every key is always present. A value is a number when the source response includes that metric and null when it does not.
        - `likes` number, nullable, required
        - `comments` number, nullable, required
        - `shares` number, nullable, required
        - `impressions` number, nullable, required
        - `views` number, nullable, required
        - `video_views` number, nullable, required
        - `video_viewers` number, nullable, required
        - `video_watch_time_ms` number, nullable, required
        - `engagement` number, nullable, required
        - `clicks` number, nullable, required
        - `saves` number, nullable, required
        - `bookmarks` number, nullable, required
        - `quotes` number, nullable, required
      - `platforms` SocialPlatformAnalytics[], required
        - `platform` 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube', required
        - `platform_post_id` string, nullable, required: Native post ID from the destination platform. Null when the source response does not include it.
        - `post_url` string, uri, nullable, required: Public post URL. Null when the source response does not include it.
        - `metrics` SocialAnalyticsMetrics, required: Fixed normalized metric object. Every key is always present. A value is a number when the source response includes that metric and null when it does not.
          - `likes` number, nullable, required
          - `comments` number, nullable, required
          - `shares` number, nullable, required
          - `impressions` number, nullable, required
          - `views` number, nullable, required
          - `video_views` number, nullable, required
          - `video_viewers` number, nullable, required
          - `video_watch_time_ms` number, nullable, required
          - `engagement` number, nullable, required
          - `clicks` number, nullable, required
          - `saves` number, nullable, required
          - `bookmarks` number, nullable, required
          - `quotes` number, nullable, required
        - `raw_metrics` object, required: Unnormalized platform-specific analytics payload.
      - `metadata` object, required
  - `pagination` SocialPostsPagination, required
    - `limit` integer, required: Maximum posts requested.
    - `returned` integer, required: Number of posts returned in this page.
    - `has_more` boolean, required: Whether another page is available.
    - `next_cursor` string, nullable, required: Opaque cursor for the next page. Null when has_more is false.
    - `sort` 'created_at_desc', required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed
- `403`: Access denied

---

[API](https://skmtc.dev/mosaic/apis/mosaic-ai-api.md) - [All operations](https://skmtc.dev/mosaic/apis/mosaic-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mosaic/apis/mosaic-ai-api/revisions/c20e9fc606a4?raw)
