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

# List posts

`GET /posts`

## Request

- Base URL: `https://gorest.co.in/public/v3`
- URL: `https://gorest.co.in/public/v3/posts`
- Auth: one of:
  - none
  - HTTP bearer

## Query parameters

- `page[size]` integer
- `page[after]` string
- `page[number]` integer
- `page[count]` boolean
- `search` string
- `filter` object
  - `status` string
  - `user_id` string, uuid
- `sort` 'created_at' | '-created_at' | 'title' | '-title'
- `fields` object
  - `posts` string
- `include` string

## Headers

- `If-None-Match` string

## Response `200`

One page of posts.

- PostList
  - `data` Post[], required
    - `body` string
    - `comments` Comment[]: The comments you can see, oldest first.
      - `body` string
      - `created_at` string, date-time
      - `id` string, uuid, required
      - `post` NullablePost: Every field is present unless `fields[posts]` asks for fewer. `user` and `comments` are there only with `include`.
        - `body` string
        - `comments` Comment[]: The comments you can see, oldest first.
        - `created_at` string, date-time
        - `id` string, uuid, required
        - `published_at` string, date-time, nullable: Set by the server when the post is first published; null for a draft.
        - `read_only` boolean: True for sample data (the seed); it cannot be changed.
        - `status` 'draft' | 'published'
        - `title` string
        - `updated_at` string, date-time
        - `user` NullableUser: Every field is present unless `fields[users]` asks for fewer.
          - `created_at` string, date-time
          - `email` string, email
          - `id` string, uuid, required
          - `name` string
          - `read_only` boolean: True for sample data (the seed); it cannot be changed.
          - `status` 'active' | 'inactive'
          - `updated_at` string, date-time
        - `user_id` string, uuid: The author; a user you can see.
      - `post_id` string, uuid
      - `read_only` boolean: True for sample data (the seed); it cannot be changed.
      - `updated_at` string, date-time
      - `user` NullableUser: Every field is present unless `fields[users]` asks for fewer.
        - `created_at` string, date-time
        - `email` string, email
        - `id` string, uuid, required
        - `name` string
        - `read_only` boolean: True for sample data (the seed); it cannot be changed.
        - `status` 'active' | 'inactive'
        - `updated_at` string, date-time
      - `user_id` string, uuid, nullable: Who wrote it; null once that user is deleted.
    - `created_at` string, date-time
    - `id` string, uuid, required
    - `published_at` string, date-time, nullable: Set by the server when the post is first published; null for a draft.
    - `read_only` boolean: True for sample data (the seed); it cannot be changed.
    - `status` 'draft' | 'published'
    - `title` string
    - `updated_at` string, date-time
    - `user` NullableUser: Every field is present unless `fields[users]` asks for fewer.
      - `created_at` string, date-time
      - `email` string, email
      - `id` string, uuid, required
      - `name` string
      - `read_only` boolean: True for sample data (the seed); it cannot be changed.
      - `status` 'active' | 'inactive'
      - `updated_at` string, date-time
    - `user_id` string, uuid: The author; a user you can see.
  - `meta` ListMeta, required
    - `has_more` boolean, required: More items follow this page.
    - `next_cursor` string, nullable, required: Send as `page[after]` for the next page; null on the last page and with offset paging.
    - `total` integer, nullable, required: All matching items; only with `page[number]` or `page[count]=true`, else null.

## Other responses

- `304`: Not changed since the ETag in `If-None-Match`; no body.
- `400`: A parameter is wrong, unknown or out of range.
- `401`: No token, or the token is wrong, expired or revoked.
- `403`: The token lacks the scope this operation needs.
- `429`: Over the rate limit; wait `Retry-After` seconds.
- `500`: Something failed on the server.

---

[API](https://skmtc.dev/gorest/apis/gorest-api-v3.md) - [All operations](https://skmtc.dev/gorest/apis/gorest-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/gorest/apis/gorest-api-v3/revisions/89aa429755a6?raw)
