Skip to main content
GET
posts
curl -X GET "https://postsyncer.com/api/v1/posts?page=1&per_page=20&include_comments=true" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "data": [
    {
      "id": 123,
      "content": [
        {
          "text": "Exciting news! We've just launched our winter collection ❄️",
          "media": [
            {
              "id": 1594,
              "name": "file_example_MP4_1920_18MG.mp4",
              "url": "https://postsyncer-local.c6c56f7fb91dd557ca29aa14c4e7d980.r2.cloudflarestorage.com/media/12/5ee789eb-c88c-4af2-8449-54c6c0561f31.mp4?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=a4bcd089276d5d5b77253aa9b13fe59c%2F20250705%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250705T131116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=0ef23b86009e4cac6e160863a4b91f15b78270e5524f328fb764a9f22bdaffe3",
              "type": "video/mp4",
              "size": 17839845
            }
          ]
        }
      ],
      "status": "PUBLISHED",
      "posted_on": ["2023-12-15 02:00 PM"],
      "scheduled_at": null,
      "repeatable": false,
      "repeatable_times": null,
      "repeatable_gap": null,
      "repeatable_gap_unit": null,
      "remaining_posts": null,
      "workspace": {
        "id": 12,
        "name": "abdulmejidshemsuawel",
        "slug": "abdulmejidshemsuawel",
        "type": "PERSONAL",
        "logo": null,
        "timezone": "Africa/Addis_Ababa",
        "language": "en"
      },
      "labels": [
        {
          "id": 1,
          "name": "Product Launch",
          "color": "#ff0000"
        }
      ],
      "platforms": [
        {
          "platform": "twitter",
          "posted_on": ["2025-07-05 12:36"],
          "status": "PUBLISHED",
          "settings": {
            "for_super_followers_only": false,
            "reply_settings": "everyone",
            "quote_tweet_id": null,
            "reply": {
                "in_reply_to_tweet_id": null
            },
            "community_id": null,
            "share_with_followers": true,
            "text": null,
            "poll": {
                "enabled": false
            }
          },
          "analytics": {
              "comments": 8,
              "likes": 42,
              "shares": 8,
              "impressions": 1250,
              "quotes": 2,
              "saves": 12,
              "engagement_rate": 4.4
          }
        }
      ],
      "auto_plug": null,
      "created_at": "2023-12-01 09:30 AM",
      "updated_at": "2023-12-15 02:00 PM",
      "comments": []
    }
  ],
  "current_page": 1,
  "last_page": 5,
  "per_page": 20,
  "total": 95,
  "from": 1,
  "to": 20,
  "links": [
    {
        "url": "https://postsyncer.com/api/v1/posts?page=1",
        "label": "« Previous",
        "active": false
    },
    {
        "url": "https://postsyncer.com/api/v1/posts?page=1",
        "label": "1",
        "active": false
    },
    {
        "url": "https://postsyncer.com.test/api/v1/posts?page=2",
        "label": "2",
        "active": true
    }
    ...
  ]
}

List Posts

Retrieves a paginated list of posts from all workspaces that the authenticated user has access to. Posts are returned in reverse chronological order (newest first). Use include_comments=true to attach all comments for each post, including their associated contact info.

Request

page
integer
default:"1"
Page number for pagination
per_page
integer
default:"100"
Number of posts per page (maximum 100)
include_comments
boolean
default:"false"
When true, includes all comments associated with each post, including their contact info (CRM contact)
curl -X GET "https://postsyncer.com/api/v1/posts?page=1&per_page=20&include_comments=true" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response

data
array
Array of post objects
current_page
integer
Current page number
last_page
integer
Last page number
per_page
integer
Number of items per page
total
integer
Total number of posts
from
integer
Starting post number for current page
to
integer
Ending post number for current page
data[].comments
array
When include_comments=true, each post includes a comments array. Each comment has id, content, author_name, platform, created_at, and a contact object with CRM contact info (name, username, profile_url, etc.) when available.
{
  "data": [
    {
      "id": 123,
      "content": [
        {
          "text": "Exciting news! We've just launched our winter collection ❄️",
          "media": [
            {
              "id": 1594,
              "name": "file_example_MP4_1920_18MG.mp4",
              "url": "https://postsyncer-local.c6c56f7fb91dd557ca29aa14c4e7d980.r2.cloudflarestorage.com/media/12/5ee789eb-c88c-4af2-8449-54c6c0561f31.mp4?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=a4bcd089276d5d5b77253aa9b13fe59c%2F20250705%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250705T131116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=0ef23b86009e4cac6e160863a4b91f15b78270e5524f328fb764a9f22bdaffe3",
              "type": "video/mp4",
              "size": 17839845
            }
          ]
        }
      ],
      "status": "PUBLISHED",
      "posted_on": ["2023-12-15 02:00 PM"],
      "scheduled_at": null,
      "repeatable": false,
      "repeatable_times": null,
      "repeatable_gap": null,
      "repeatable_gap_unit": null,
      "remaining_posts": null,
      "workspace": {
        "id": 12,
        "name": "abdulmejidshemsuawel",
        "slug": "abdulmejidshemsuawel",
        "type": "PERSONAL",
        "logo": null,
        "timezone": "Africa/Addis_Ababa",
        "language": "en"
      },
      "labels": [
        {
          "id": 1,
          "name": "Product Launch",
          "color": "#ff0000"
        }
      ],
      "platforms": [
        {
          "platform": "twitter",
          "posted_on": ["2025-07-05 12:36"],
          "status": "PUBLISHED",
          "settings": {
            "for_super_followers_only": false,
            "reply_settings": "everyone",
            "quote_tweet_id": null,
            "reply": {
                "in_reply_to_tweet_id": null
            },
            "community_id": null,
            "share_with_followers": true,
            "text": null,
            "poll": {
                "enabled": false
            }
          },
          "analytics": {
              "comments": 8,
              "likes": 42,
              "shares": 8,
              "impressions": 1250,
              "quotes": 2,
              "saves": 12,
              "engagement_rate": 4.4
          }
        }
      ],
      "auto_plug": null,
      "created_at": "2023-12-01 09:30 AM",
      "updated_at": "2023-12-15 02:00 PM",
      "comments": []
    }
  ],
  "current_page": 1,
  "last_page": 5,
  "per_page": 20,
  "total": 95,
  "from": 1,
  "to": 20,
  "links": [
    {
        "url": "https://postsyncer.com/api/v1/posts?page=1",
        "label": "« Previous",
        "active": false
    },
    {
        "url": "https://postsyncer.com/api/v1/posts?page=1",
        "label": "1",
        "active": false
    },
    {
        "url": "https://postsyncer.com.test/api/v1/posts?page=2",
        "label": "2",
        "active": true
    }
    ...
  ]
}

Code Examples

curl -X GET "https://postsyncer.com/api/v1/posts?page=1&per_page=20&include_comments=true" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Error Codes

401
Unauthorized
Missing or invalid API token
403
Forbidden
Token does not have ‘posts’ permission