---
title: "List public posts with filters and pagination"
method: GET
path: "/posts"
---

# List public posts with filters and pagination

`GET /posts`

## Request

- Base URL: `https://api.vakantio.de`
- URL: `https://api.vakantio.de/posts`
- Auth: none required

List published, publicly visible posts, newest first. Filter by tag, topic slugs, destination, or locale; paginate with page (30/page) or skip/limit. No authentication required.

## Query parameters

- `tags` string
- `topics` string[]
- `destinationId` string
- `locale` 'de' | 'en'
- `limit` integer
- `skip` integer
- `page` integer

## Response `200`

Post list

- object
  - `items` PostSummary[]
    - `_id` string
    - `title` string
    - `preview` string
    - `tags` string[]
    - `topics` string[]
    - `path` string: URL slug (assigned at first publish)
    - `fullPath` string: Public URL path: /<blogPath>/<slug>
    - `blogName` string
    - `likeCount` number
    - `commentCount` number
    - `datePublished` number: Unix ms
    - `dateTraveled` number: Unix ms
  - `totalCount` integer

## Other responses

- `4XX`: Client error — JSON body with a stable `error` code (e.g. not_found, not_authenticated, request_failed) and an optional `hint`.
- `5XX`: Server error — JSON body with `error: "server_error"`.

---

[API](https://skmtc.dev/vakantio/apis/vakantio-api.md) · [All operations](https://skmtc.dev/vakantio/apis/vakantio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vakantio/apis/vakantio-api/revisions/2e1306807326?raw)
