---
title: "Query a data source"
method: POST
path: "/v1/data_sources/{data_source_id}/query"
tags: ["Data sources"]
---

# Query a data source

`POST /v1/data_sources/{data_source_id}/query`

## Path parameters

- `data_source_id` string, required

## Query parameters

- `filter_properties` string[]

## Headers

- `Notion-Version` '2026-03-11', required

## Request body

- object
  - `sorts` union[]
    - union
      - object
        - `property` string, required
        - `direction` 'ascending' | 'descending', required
      - object
        - `timestamp` 'created_time' | 'last_edited_time', required
        - `direction` 'ascending' | 'descending', required
  - `filter` union
    - object
      - `or` union[], required
        - union
          - union
            - union
              - …
            - union
              - …
          - object
            - `or` PropertyOrTimestampFilter[], required
              - …
          - object
            - `and` PropertyOrTimestampFilter[], required
              - …
    - object
      - `and` union[], required
        - union
          - union
            - union
              - …
            - union
              - …
          - object
            - `or` PropertyOrTimestampFilter[], required
              - …
          - object
            - `and` PropertyOrTimestampFilter[], required
              - …
    - union
      - object
        - `title` union, required
          - object
            - `equals` string, required
          - object
            - `does_not_equal` string, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - object
            - `starts_with` string, required
          - object
            - `ends_with` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'title'
      - object
        - `rich_text` union, required
          - object
            - `equals` string, required
          - object
            - `does_not_equal` string, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - object
            - `starts_with` string, required
          - object
            - `ends_with` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'rich_text'
      - object
        - `number` union, required
          - object
            - `equals` number, required
          - object
            - `does_not_equal` number, required
          - object
            - `greater_than` number, required
          - object
            - `less_than` number, required
          - object
            - `greater_than_or_equal_to` number, required
          - object
            - `less_than_or_equal_to` number, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'number'
      - object
        - `checkbox` union, required
          - object
            - `equals` boolean, required
          - object
            - `does_not_equal` boolean, required
        - `property` string, required
        - `type` 'checkbox'
      - object
        - `select` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `does_not_equal` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'select'
      - object
        - `multi_select` union, required
          - object
            - `contains` union, required
              - …
          - object
            - `does_not_contain` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'multi_select'
      - object
        - `status` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `does_not_equal` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'status'
      - object
        - `date` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `before` union, required
              - …
          - object
            - `after` union, required
              - …
          - object
            - `on_or_before` union, required
              - …
          - object
            - `on_or_after` union, required
              - …
          - object
            - `this_week` EmptyObject, required
          - object
            - `past_week` EmptyObject, required
          - object
            - `past_month` EmptyObject, required
          - object
            - `past_year` EmptyObject, required
          - object
            - `next_week` EmptyObject, required
          - object
            - `next_month` EmptyObject, required
          - object
            - `next_year` EmptyObject, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'date'
      - object
        - `people` union, required
          - object
            - `contains` union, required
              - …
          - object
            - `does_not_contain` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'people'
      - object
        - `files` union, required
          - object
            - `is_empty` true, required
          - object
            - `is_not_empty` true, required
        - `property` string, required
        - `type` 'files'
      - object
        - `url` union, required
          - object
            - `equals` string, required
          - object
            - `does_not_equal` string, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - object
            - `starts_with` string, required
          - object
            - `ends_with` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'url'
      - object
        - `email` union, required
          - object
            - `equals` string, required
          - object
            - `does_not_equal` string, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - object
            - `starts_with` string, required
          - object
            - `ends_with` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'email'
      - object
        - `phone_number` union, required
          - object
            - `equals` string, required
          - object
            - `does_not_equal` string, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - object
            - `starts_with` string, required
          - object
            - `ends_with` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'phone_number'
      - object
        - `relation` union, required
          - object
            - `contains` string, required
          - object
            - `does_not_contain` string, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'relation'
      - object
        - `created_by` union, required
          - object
            - `contains` union, required
              - …
          - object
            - `does_not_contain` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'created_by'
      - object
        - `created_time` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `before` union, required
              - …
          - object
            - `after` union, required
              - …
          - object
            - `on_or_before` union, required
              - …
          - object
            - `on_or_after` union, required
              - …
          - object
            - `this_week` EmptyObject, required
          - object
            - `past_week` EmptyObject, required
          - object
            - `past_month` EmptyObject, required
          - object
            - `past_year` EmptyObject, required
          - object
            - `next_week` EmptyObject, required
          - object
            - `next_month` EmptyObject, required
          - object
            - `next_year` EmptyObject, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'created_time'
      - object
        - `last_edited_by` union, required
          - object
            - `contains` union, required
              - …
          - object
            - `does_not_contain` union, required
              - …
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'last_edited_by'
      - object
        - `last_edited_time` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `before` union, required
              - …
          - object
            - `after` union, required
              - …
          - object
            - `on_or_before` union, required
              - …
          - object
            - `on_or_after` union, required
              - …
          - object
            - `this_week` EmptyObject, required
          - object
            - `past_week` EmptyObject, required
          - object
            - `past_month` EmptyObject, required
          - object
            - `past_year` EmptyObject, required
          - object
            - `next_week` EmptyObject, required
          - object
            - `next_month` EmptyObject, required
          - object
            - `next_year` EmptyObject, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'last_edited_time'
      - object
        - `formula` union, required
          - object
            - `string` union, required
              - …
          - object
            - `checkbox` union, required
              - …
          - object
            - `number` union, required
              - …
          - object
            - `date` union, required
              - …
        - `property` string, required
        - `type` 'formula'
      - object
        - `unique_id` union, required
          - object
            - `equals` number, required
          - object
            - `does_not_equal` number, required
          - object
            - `greater_than` number, required
          - object
            - `less_than` number, required
          - object
            - `greater_than_or_equal_to` number, required
          - object
            - `less_than_or_equal_to` number, required
          - union
            - object
              - …
            - object
              - …
        - `property` string, required
        - `type` 'unique_id'
      - object
        - `rollup` union, required
          - object
            - `any` union, required
              - …
          - object
            - `none` union, required
              - …
          - object
            - `every` union, required
              - …
          - object
            - `date` union, required
              - …
          - object
            - `number` union, required
              - …
        - `property` string, required
        - `type` 'rollup'
      - object
        - `verification` VerificationPropertyStatusFilter, required
          - `status` 'verified' | 'expired' | 'none', required
        - `property` string, required
        - `type` 'verification'
    - union
      - TimestampCreatedTimeFilter
        - `created_time` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `before` union, required
              - …
          - object
            - `after` union, required
              - …
          - object
            - `on_or_before` union, required
              - …
          - object
            - `on_or_after` union, required
              - …
          - object
            - `this_week` EmptyObject, required
          - object
            - `past_week` EmptyObject, required
          - object
            - `past_month` EmptyObject, required
          - object
            - `past_year` EmptyObject, required
          - object
            - `next_week` EmptyObject, required
          - object
            - `next_month` EmptyObject, required
          - object
            - `next_year` EmptyObject, required
          - union
            - object
              - …
            - object
              - …
        - `timestamp` 'created_time', required
        - `type` 'created_time'
      - TimestampLastEditedTimeFilter
        - `last_edited_time` union, required
          - object
            - `equals` union, required
              - …
          - object
            - `before` union, required
              - …
          - object
            - `after` union, required
              - …
          - object
            - `on_or_before` union, required
              - …
          - object
            - `on_or_after` union, required
              - …
          - object
            - `this_week` EmptyObject, required
          - object
            - `past_week` EmptyObject, required
          - object
            - `past_month` EmptyObject, required
          - object
            - `past_year` EmptyObject, required
          - object
            - `next_week` EmptyObject, required
          - object
            - `next_month` EmptyObject, required
          - object
            - `next_year` EmptyObject, required
          - union
            - object
              - …
            - object
              - …
        - `timestamp` 'last_edited_time', required
        - `type` 'last_edited_time'
  - `start_cursor` string
  - `page_size` number
  - `is_archived` boolean — Whether to return archived pages. When omitted or false, returns non-archived pages. When true, returns archived pages.
  - `result_type` 'page' | 'data_source' — Optionally filter the results to only include pages or data sources. Regular, non-wiki databases only support page children. The default behavior is no result type filtering, in other words, returning both pages and data sources for wikis.

## Response `200`

- object
  - `type` 'page_or_data_source', required
  - `page_or_data_source` EmptyObject, required
  - `object` 'list', required
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required
  - `results` union[], required
    - union
      - PageObjectResponse
        - `object` 'page', required — The page object type name.
        - `id` string, uuid, required
        - `created_time` string, date-time, required — Date and time when this page was created.
        - `last_edited_time` string, date-time, required — Date and time when this page was last edited.
        - `in_trash` boolean, required — Whether the page is in trash.
        - `is_archived` boolean, required — Whether the page has been archived.
        - `is_locked` boolean, required — Whether the page is locked from editing in the Notion app UI.
        - `url` string, required — The URL of the Notion page.
        - `public_url` string, nullable, required — The public URL of the Notion page, if it has been published to the web.
        - `parent` union, required
          - DatabaseParentResponse
            - `type` 'database_id', required — The parent type.
            - `database_id` string, uuid, required
          - DataSourceParentResponse
            - `type` 'data_source_id', required — The parent type.
            - `data_source_id` string, uuid, required
            - `database_id` string, uuid, required
          - PageIdParentForBlockBasedObjectResponse
            - `type` 'page_id', required — The parent type.
            - `page_id` string, uuid, required
          - BlockIdParentForBlockBasedObjectResponse
            - `type` 'block_id', required — The parent type.
            - `block_id` string, uuid, required
          - AgentIdParentForBlockBasedObjectResponse
            - `type` 'agent_id', required — The parent type.
            - `agent_id` string, uuid, required
          - WorkspaceParentForBlockBasedObjectResponse
            - `type` 'workspace', required — The parent type.
            - `workspace` true, required — Always true for workspace parent.
        - `properties` object, required — Property values of this page.
        - `icon` union, required
          - EmojiPageIconResponse
            - `type` 'emoji', required — Type of icon. In this case, an emoji.
            - `emoji` string, required
          - FilePageIconResponse
            - `type` 'file', required — Type of icon. In this case, a file.
            - `file` InternalFileResponse, required
              - …
          - ExternalPageIconResponse
            - `type` 'external', required — Type of icon. In this case, an external URL.
            - `external` object, required — The external URL for the icon.
              - …
          - CustomEmojiPageIconResponse
            - `type` 'custom_emoji', required — Type of icon. In this case, a custom emoji.
            - `custom_emoji` CustomEmojiResponse, required
              - …
          - IconPageIconResponse
            - `type` 'icon', required — Type of icon. In this case, a Notion native icon.
            - `icon` NoticonIconResponse, required
              - …
        - `cover` union, required
          - FilePageCoverResponse
            - `type` 'file', required — Type of cover. In this case, a file.
            - `file` InternalFileResponse, required
              - …
          - ExternalPageCoverResponse
            - `type` 'external', required — Type of cover. In this case, an external URL.
            - `external` object, required — The external URL for the cover.
              - …
        - `created_by` PartialUserObjectResponse, required
          - `id` string, uuid, required
          - `object` 'user', required — Always `user`
        - `last_edited_by` PartialUserObjectResponse, required
          - `id` string, uuid, required
          - `object` 'user', required — Always `user`
      - PartialPageObjectResponse
        - `object` 'page', required — The page object type name.
        - `id` string, uuid, required
      - PartialDataSourceObjectResponse
        - `object` 'data_source', required — The data source object type name.
        - `id` string, uuid, required
        - `properties` object, required — The properties schema of the data source.
      - DataSourceObjectResponse
        - `object` 'data_source', required — The data source object type name.
        - `id` string, uuid, required
        - `title` RichTextItemResponse[], required — The title of the data source.
          - union
            - object
              - …
            - object
              - …
            - object
              - …
        - `description` RichTextItemResponse[], required — The description of the data source.
          - union
            - object
              - …
            - object
              - …
            - object
              - …
        - `parent` union, required — The parent of the data source. This is typically a database (`database_id`), but for externally synced data sources, can be another data source (`data_source_id`).
          - DatabaseParentResponse
            - `type` 'database_id', required — The parent type.
            - `database_id` string, uuid, required
          - DataSourceParentResponse
            - `type` 'data_source_id', required — The parent type.
            - `data_source_id` string, uuid, required
            - `database_id` string, uuid, required
        - `database_parent` union, required
          - PageIdParentForBlockBasedObjectResponse
            - `type` 'page_id', required — The parent type.
            - `page_id` string, uuid, required
          - WorkspaceParentForBlockBasedObjectResponse
            - `type` 'workspace', required — The parent type.
            - `workspace` true, required — Always true for workspace parent.
          - DatabaseParentResponse
            - `type` 'database_id', required — The parent type.
            - `database_id` string, uuid, required
          - BlockIdParentForBlockBasedObjectResponse
            - `type` 'block_id', required — The parent type.
            - `block_id` string, uuid, required
        - `is_inline` boolean, required — Whether the data source is inline.
        - `in_trash` boolean, required — Whether the data source is in the trash.
        - `created_time` string, date-time, required — The time when the data source was created.
        - `last_edited_time` string, date-time, required — The time when the data source was last edited.
        - `created_by` PartialUserObjectResponse, required
          - `id` string, uuid, required
          - `object` 'user', required — Always `user`
        - `last_edited_by` PartialUserObjectResponse, required
          - `id` string, uuid, required
          - `object` 'user', required — Always `user`
        - `properties` object, required — The properties schema of the data source.
        - `icon` union, required
          - EmojiPageIconResponse
            - `type` 'emoji', required — Type of icon. In this case, an emoji.
            - `emoji` string, required
          - FilePageIconResponse
            - `type` 'file', required — Type of icon. In this case, a file.
            - `file` InternalFileResponse, required
              - …
          - ExternalPageIconResponse
            - `type` 'external', required — Type of icon. In this case, an external URL.
            - `external` object, required — The external URL for the icon.
              - …
          - CustomEmojiPageIconResponse
            - `type` 'custom_emoji', required — Type of icon. In this case, a custom emoji.
            - `custom_emoji` CustomEmojiResponse, required
              - …
          - IconPageIconResponse
            - `type` 'icon', required — Type of icon. In this case, a Notion native icon.
            - `icon` NoticonIconResponse, required
              - …
        - `cover` union, required
          - FilePageCoverResponse
            - `type` 'file', required — Type of cover. In this case, a file.
            - `file` InternalFileResponse, required
              - …
          - ExternalPageCoverResponse
            - `type` 'external', required — Type of cover. In this case, an external URL.
            - `external` object, required — The external URL for the cover.
              - …
        - `url` string, required — The URL of the data source.
        - `public_url` string, nullable, required — The public URL of the data source if it is publicly accessible.
  - `request_status` object
    - `type` 'complete' | 'incomplete', required
    - `incomplete_reason` 'query_result_limit_reached'

## Other responses

- `400`
- `401`
- `403`
- `404`
- `406`
- `409`
- `429`
- `500`
- `503`
- `504`
- `529`

---

[API](https://skmtc.net/notion/apis/notion-api.md) · [All operations](https://skmtc.net/notion/apis/notion-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/notion/notion-api/versions/551da43bb186/schema)
