---
title: "List posts"
method: GET
path: "/api/v1/posts"
tags: ["Posts"]
---

# List posts

`GET /api/v1/posts`

Retrieves a list of posts with optional filtering and pagination. Returns lightweight post objects optimized for list views (excludes full content, only returns content_length for read time calculation).

## Query parameters

- `limit` integer
- `offset` integer
- `status` 'draft' | 'published' | 'archived' | 'deleted'
- `category_id` integer
- `sub_category_id` integer
- `search` string
- `sort_by` 'created_at' | 'updated_at' | 'view_count' | 'title'
- `sort_order` 'ASC' | 'DESC'

## Response `200`

Posts retrieved successfully

- PostListResponse
  - `status` boolean
  - `message` string
  - `data` PostListItem[]
    - `id` integer
    - `slug` string
    - `title` string
    - `summary` string
    - `meta_description` string
    - `keywords` string
    - `category_id` integer
    - `sub_category_id` integer, nullable
    - `is_featured` boolean
    - `is_pinned` boolean
    - `created_by` integer
    - `view_count` integer
    - `content_length` integer — Character count of the content (for read time calculation)
    - `created_at` string, date-time
  - `meta` object
    - `total` integer
    - `limit` integer
    - `offset` integer

---

[API](https://skmtc.net/nesohq/apis/postal-post-management-service-apis.md) · [All operations](https://skmtc.net/nesohq/apis/postal-post-management-service-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nesohq/postal-post-management-service-apis/versions/64a3f9ff2411/schema)
