База знаний

Notion Views API — программное управление представлениями баз данных

Notion Views API — официальные эндпойнты для создания и редактирования представлений (table, board, calendar, timeline и других) в базах данных Notion. Разбираем, как устроен view-объект, как работать с фильтрами и сортировками, и зачем этот API нужен в реальных проектах.

Опубликовано

До осени 2025 года «view’ы» в Notion API были слепым пятном. Можно было создавать базы данных, читать и писать страницы, но всё, что касалось фильтров, сортировок и лейаутов отображения, приходилось настраивать руками в UI. В версии API 2025-09-03 Notion вывела view в ранг полноценных ресурсов: их теперь можно списывать, создавать и обновлять через REST.

📌
Коротко: Notion Views API — это набор эндпойнтов (/v1/views) для программного управления представлениями в базах. Требует API-версии 2025-09-03 или выше. Поддерживает все типы view’ов (table, board, calendar, timeline, gallery, list, form, chart, map, dashboard) с их фильтрами, сортировками и лейаутом.

Что это такое

View (представление) в Notion — это отдельный ракурс одного и того же набора данных. Одна база задач может жить одновременно как Kanban для команды, как таблица для менеджера, как календарь спринтов и как форма для внешних заявок. View хранит в себе три вещи:

  • фильтры — какие строки показывать;
  • сортировки — в каком порядке;
  • лейаут — какой тип отображения и какие колонки/группировки показывать.

Views API — это эндпойнты, которые дают вам работать с view как с любым другим объектом API: списывать, редактировать, создавать. Доступен в REST API и в официальном Notion MCP через инструменты notion-create-view и notion-update-view.

Модель данных: database → data source → view

В сентябре 2025 Notion перевезла дата-модель. Теперь база данных (database) и её схема (data source) — это разные сущности:

  • Database — контейнер. Содержит один или несколько data source и набор view’ов.
  • Data source — схема и строки. Именно здесь живут properties (раньше были на уровне database).
  • View — отдельный ракурс над одним или несколькими data source. Одна и та же база может иметь десятки view’ов, в том числе связанных (linked) на других страницах workspace.
⚠️
Важно: Views API и всё остальное в версии 2025-09-03 не обратно совместимы со старым форматом. Если ваша интеграция живёт на старой версии и кто-то добавит в базу второй data source — запросы на чтение/запись базы перестанут работать. Сначала обновите Notion-Version в хедерах.

Эндпойнты

GET /v1/views — список view’ов

Возвращает пагинированный список ссылок на view. Обязательно укажите один из параметров:

  • database_id — все view’ы одной базы;
  • data_source_id — все view’ы, связанные с этим data source, в том числе linked-представления на других страницах.
curl -X GET 'https://api.notion.com/v1/views?database_id=...' \
  -H 'Authorization: Bearer $NOTION_TOKEN' \
  -H 'Notion-Version: 2025-09-03'

GET /v1/views/{view_id} — получить view

Возвращает полный view-объект со всеми фильтрами, сортировками и лейаутом.

POST /v1/views — создать view

Создаёт новое представление в указанной базе и привязывает его к data source. Набор полей:

  • parent: { database_id, data_source_id }
  • name, description
  • type: table | board | calendar | timeline | gallery | list | form | chart | map | dashboard
  • filter и sort
  • layout — параметры конкретного типа (размер карточек, видимые колонки, группировка, временная ось и т. д.).

PATCH /v1/views/{view_id} — обновить view

Правит любые из вышеперечисленных полей. При этом поля, которые вы не передали, остаются прежними. Менять тип view (из board в calendar) через PATCH тоже можно — layout придётся передать в формате нового типа.

Что лежит внутри view-объекта

{
  "object": "view",
  "id": "...",
  "name": "Мои задачи на эту неделю",
  "type": "board",
  "parent": {
    "type": "data_source_id",
    "data_source_id": "..."
  },
  "filter": { /* совместимо с query-фильтрами базы */ },
  "sorts": [{ "property": "Приоритет", "direction": "descending" }],
  "layout": {
    "type": "board",
    "group_by": "Статус",
    "card_size": "medium"
  }
}

Ключевые моменты:

  • filter работает по тем же правилам, что и фильтр в query базы: свойства, операторы, вложенные and и or.
  • sorts — массив, порядок важен.
  • layout зависит от типа:
Тип viewОсновные поля layout
tableвидимые колонки, их ширина, wrap
boardgroup_by, card_size, видимые свойства карточки
calendarсвойство даты, режим (month/week)
timelineдата-свойства начала/конца, масштаб, group_by
galleryобложка, размер карточек
listвидимые свойства
formполя, порядок, тексты подсказок
chartтип графика, оси, агрегации
mapсвойство локации, зум
dashboardнабор виджетов

Практические сценарии

Бутстрап workspace для нового клиента. Агентства и продуктовые команды развёртывают свою базу задач сразу с десятком нужных выборок: «Мои задачи», «Спринт сейчас», «Просрочено», «На ревью». С Views API это один скрипт запуска — вместо получаса кликанья в UI.

Миграция из Asana / Linear / ClickUp. Когда переносятся не только данные, но и фильтры/выборки, Views API позволяет перевести «любимые виды» один в один, а не выливать всё в голый список.

Авто-выборки под каждого участника. Скрипт вызывается при добавлении нового человека в команду и создаёт ему персональный view «Задачи [Имя]» с правильным фильтром по Person-property.

Автоподстройка фильтров. Скрипт раз в сутки сдвигает временные рамки в view «Эта неделя», чтобы фильтр Дата between today and today + 7d всегда был актуальным, без динамических фильтров в UI.

Отчёты под клиента. Из CRM выгружается список сделок — скрипт создаёт по одному chart-view на клиента и встраивает их в страницу «Отчёты».

Агенты, которые сами наводят порядок. ИИ-агент читает список всех view’ов, находит дубли и брошенные представления и рекомендует, что убрать — или сразу убирает сам.

Тарифы и лимиты

  • Авторизация. Views API доступен любой интеграции с capability read content (для чтения) и update content (для создания/изменения).
  • API-версия. Notion-Version: 2025-09-03 (или выше, например 2026-03-11).
  • Rate limits. Общие лимиты Notion API: 3 запроса в секунду на интеграцию. При превышении — 429.
  • Скоуп доступа. Интеграция видит только view’ы в базах, к которым ей выдан доступ. На enterprise-тарифах может быть дополнительный контроль от администратора.
  • Linked-views. Через API можно увидеть связанные представления, но для их изменения нужен доступ к контейнеру, в котором они живут (база или страница).
⚠️
Слепые зоны. Свойства доступа («кто видит этот view») выдаются не в виде отдельных полей самого view, а через права на базу или страницу. Правильно думать: view наследует доступ от родителя.

Ссылки


По теме

Если вы строите продукт вокруг Notion или собираете внутри компании свои рабочие базы, Views API — тихий, но очень дорогой инструмент. Хотите обсудить, как разложить view-структуру под вашу команду или клиентские workspace, — напишите в Telegram, разберём вместе.