List posts

Get a paginated list of posts for the current organization with optional filters.

Get a paginated list of posts for the current organization with optional filters. You can filter by social account ID, creation date range, or scheduled date range. Results include post content, containers, scheduling status, and publishing state. Use limit and offset query parameters for pagination. Each returned post includes its unique ID, which can be used with GET /v1/posts/:id for full details or DELETE /v1/posts/:id to cancel a scheduled post.

GET/v1/posts

Query Parameters

social_account_id?string

Filter by social account ID. Accepts the encoded ID returned by the API, or a raw numeric ID.

tenant_id?string

Filter by tenant ID for multi-tenant applications (exact match). Returns posts targeting at least one social account with this tenant ID.

tenantId?string

Alias for tenant_id, accepted for parity with GET /v1/social-accounts. If both are provided, tenant_id wins.

created_after?string

Filter posts created after this timestamp

Formatdate-time
created_before?string

Filter posts created before this timestamp

Formatdate-time
scheduled_after?string

Filter posts scheduled after this timestamp

Formatdate-time
scheduled_before?string

Filter posts scheduled before this timestamp

Formatdate-time
limit?string

Number of posts per page (1-100)

Default"50"
offset?string

Pagination offset

Default"0"

Response Body

fetch("https://api.outstand.so/v1/posts?social_account_id=9dyJS&tenant_id=tenant_123&tenantId=tenant_123&created_after=2025-01-01T00%3A00%3A00Z&created_before=2025-12-31T23%3A59%3A59Z&scheduled_after=2025-01-01T00%3A00%3A00Z&scheduled_before=2025-12-31T23%3A59%3A59Z&limit=50&offset=0", {  method: "GET"})
{
  "success": true,
  "posts": [
    {
      "id": "9dyJS",
      "orgId": "abc123",
      "publishedAt": "2019-08-24T14:15:22Z",
      "scheduledAt": "2019-08-24T14:15:22Z",
      "isDraft": true,
      "createdAt": "2019-08-24T14:15:22Z",
      "socialAccounts": [
        {
          "id": "9dyJS",
          "nickname": "string",
          "network": "string",
          "username": "string",
          "status": "published",
          "error": null,
          "platformPostId": "123456789",
          "platformPostUrl": "https://www.instagram.com/p/DAbCdEfGhIj/",
          "publishedAt": "2025-01-15T10:30:00Z"
        }
      ],
      "containers": [
        {
          "id": "8xKmL",
          "content": "string",
          "media": [
            {
              "url": "string",
              "filename": "string"
            }
          ]
        }
      ]
    }
  ],
  "data": [
    {
      "id": "9dyJS",
      "orgId": "abc123",
      "publishedAt": "2019-08-24T14:15:22Z",
      "scheduledAt": "2019-08-24T14:15:22Z",
      "isDraft": true,
      "createdAt": "2019-08-24T14:15:22Z",
      "socialAccounts": [
        {
          "id": "9dyJS",
          "nickname": "string",
          "network": "string",
          "username": "string",
          "status": "published",
          "error": null,
          "platformPostId": "123456789",
          "platformPostUrl": "https://www.instagram.com/p/DAbCdEfGhIj/",
          "publishedAt": "2025-01-15T10:30:00Z"
        }
      ],
      "containers": [
        {
          "id": "8xKmL",
          "content": "string",
          "media": [
            {
              "url": "string",
              "filename": "string"
            }
          ]
        }
      ]
    }
  ],
  "pagination": {
    "limit": 0,
    "offset": 0,
    "total": 0,
    "count": 0
  }
}
{
  "success": false,
  "error": "Invalid payload",
  "code": "idempotency_key_reuse",
  "details": {
    "content": {
      "_errors": [
        "Required"
      ]
    }
  }
}
{
  "success": false,
  "error": "Internal server error",
  "code": "idempotency_recovery_failed",
  "message": "Database connection failed"
}