Skip to content

filter

const filter: object

Defined in: src/helpers/filter.helpers.ts:368

Chainable database filter builders for Notion’s query API.

and: (…conditions) => FilterCondition

Combine filters with AND logic.

FilterCondition[]

FilterCondition

filter.and(
filter.status('Status').equals('Active'),
filter.select('Priority').equals('High'),
)

checkbox: (property) => CheckboxFilter

string

CheckboxFilter

createdTime: () => DateFilter

DateFilter

date: (property) => DateFilter

string

DateFilter

email: (property) => TextFilter

string

TextFilter

files: (property) => FilesFilter

string

FilesFilter

formula: (property) => FormulaFilter

string

FormulaFilter

lastEditedTime: () => DateFilter

DateFilter

multiSelect: (property) => MultiSelectFilter

string

MultiSelectFilter

number: (property) => NumberFilter

string

NumberFilter

or: (…conditions) => FilterCondition

Combine filters with OR logic.

FilterCondition[]

FilterCondition

filter.or(
filter.date('Due').before('2025-02-01'),
filter.date('Due').isEmpty(),
)

people: (property) => PeopleFilter

string

PeopleFilter

phoneNumber: (property) => TextFilter

string

TextFilter

relation: (property) => RelationFilter

string

RelationFilter

select: (property) => SelectFilter

string

SelectFilter

status: (property) => StatusFilter

string

StatusFilter

text: (property) => TextFilter

string

TextFilter

title: (property) => TextFilter

string

TextFilter

url: (property) => TextFilter

string

TextFilter

import { filter } from '@visus-io/notion-sdk-ts';
notion.databases.query('db-id', {
filter: filter.and(
filter.status('Status').equals('Active'),
filter.number('Score').greaterThan(80),
filter.or(
filter.date('Due Date').before('2025-02-01'),
filter.date('Due Date').isEmpty(),
),
),
});