---
title: "Поиск публикаций · 3 кредита"
method: GET
path: "/v1/posts"
tags: ["Публикации"]
---

# Поиск публикаций · 3 кредита

`GET /v1/posts`

## Request

- Base URL: `https://maxstat.ru/api`
- URL: `https://maxstat.ru/api/v1/posts`
- Auth: API key in header `X-API-Token`

> 💳 **Стоимость:** 3 кредита

Возвращает пагинированный список публикаций из публичного индекса. Поддерживается полнотекстовый поиск по полю `text`, фильтрация по каналу, типу публикации, признаку удаления и диапазону дат, а также сортировка по релевантности, дате, просмотрам или лайкам.

## Query parameters

- `search` string, nullable: Полнотекстовый поисковый запрос по тексту публикации.
- `limit` integer: Количество публикаций в ответе. Допустимый диапазон: от 1 до 100.
- `offset` integer: Смещение относительно начала выборки для постраничной навигации. Сумма `offset + limit` не может превышать 10000: глубже поиск не отдаётся.
- `channel_id` string, nullable: Фильтр по числовому идентификатору канала, передаётся строкой.
- `post_type` 'text' | 'file' | 'photo' | 'video' | 'audio' | 'share' | 'sticker' | 'contact' | 'location' | 'inline_keyboard', nullable: Фильтр по типу публикации.
- `is_deleted` boolean, nullable: Фильтр по признаку удаления: `true` — только удалённые публикации, `false` — только доступные. Без параметра возвращаются и те и другие.
- `date_from` string, date, nullable: Нижняя граница даты публикации включительно в формате `YYYY-MM-DD`.
- `date_to` string, date, nullable: Верхняя граница даты публикации включительно в формате `YYYY-MM-DD`.
- `order_by` 'likes' | 'views' | 'date' | 'score': Поле сортировки: `score` для релевантности, `date` для даты публикации, `views` для просмотров, `likes` для лайков.
- `order` 'asc' | 'desc': Направление сортировки.

## Response `200`

Successful Response

- PostsResponse
  - `total` integer, required: Общее количество публикаций, найденных по заданным фильтрам.
  - `posts` PostSearchResult[], required: Список публикаций в текущей странице выдачи.
    - `id` string, required: Внутренний идентификатор публикации.
    - `channel_id` string, required: Идентификатор канала, в котором опубликован пост.
    - `type` 'text' | 'file' | 'photo' | 'video' | 'audio' | 'share' | 'sticker' | 'contact' | 'location' | 'inline_keyboard', required: Тип публикации.
    - `url` string, required: Публичная ссылка на публикацию.
    - `text` string, required: Текст публикации. Может быть пустой строкой, если пост состоит только из вложений.
    - `text_links` object[]: Ссылки в тексте: позиции start и length указаны в кодовых единицах UTF-16.
    - `views` integer, required: Текущее количество просмотров публикации.
    - `likes` integer, required: Текущее количество лайков публикации.
    - `likes_detailed` object: Разбивка лайков по типам реакций, если такие данные доступны.
    - `attachments` Attachment[]: Список вложений публикации.
      - `attachment_type` string, required: Тип вложения публикации.
      - `attachment_url` string, required: Прямая ссылка на вложение.
    - `forwarded_from_id` string, nullable: Идентификатор исходной публикации, если текущий пост является репостом.
    - `forward_type` string, nullable: Тип репоста или пересылки, если применимо.
    - `published_at` string, date-time, required: Дата и время публикации поста.
    - `updated_at` string, date-time, required: Дата и время последнего обновления данных о посте.
    - `is_deleted` boolean: Признак того, что публикация удалена из канала. Метрики при этом сохраняются.
    - `deleted_at` string, date-time, nullable: Дата и время, когда удаление публикации было замечено. Пусто, если пост на месте.
    - `score` number, nullable: Оценка релевантности. Заполняется при сортировке по `score`.
  - `limit` integer, required: Примененный размер страницы.
  - `offset` integer, required: Примененное смещение.

## Other responses

- `401`: Ошибка аутентификации: API-токен не передан, недействителен или отозван.
- `402`: Проблема с тарифом: нет активного периода подписки или недостаточно кредитов.
- `403`: Доступ запрещён.
- `422`: Ошибка валидации параметров запроса. Подробности — в поле details.
- `429`: Превышен лимит запросов. Повторите запрос позже.
- `500`: Внутренняя ошибка сервиса. Сообщите request_id в поддержку.
- `503`: Сервис временно перегружен. Повторите запрос через несколько секунд (см. заголовок Retry-After).

---

[API](https://skmtc.dev/maxstat/apis/maxstat-public-api.md) · [All operations](https://skmtc.dev/maxstat/apis/maxstat-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/maxstat/apis/maxstat-public-api/revisions/4eff97f9a0b2?raw)
