🐺

Notion API エンドポイント全て使ってみる「Pages」編

2023/09/20に公開

はじめに

Notion API エンドポイント全て使ってみる「Databases」編 に続き
Pages に関するエンドポイントをまとめた記事です。

対象

Notion API を普段から利用している方
Notion API の詳細が気になるけど調べるのが面倒な方
Notion API でどんな機能があるのか気になる方

概要

Notion API では様々なエンドポイントが用意されています。
その中でも今回は「Pages」に関する機能にフォーカスを当て
Todoリストを操作していきます。
※APIの実行はPostman経由で行います。

Notion API とは

今回は普段利用されている前提
詳細は下記公式ページを参照ください

https://developers.notion.com/reference/intro

Pagesで用意されているエンドポイント

以降はそれぞれのエンドポイントに関する概要と
実際のNotionイメージと共にまとめていきます。

Create a page

新しいページを作成できるAPIで
ページにはタイトル、親ページ、ページタイプ、プロパティ、コンテンツなどを含めることが可能です。

実行前のDatabase
Befor Create a Page

リクエストの例

POST <https://api.notion.com/v1/pages>
Notion-Version: 2022-06-28
Content-Type: application/json
Authorization: Bearer <MY_SECRET_KEY>

{
  "parent": {
    "database_id": "DATABASE_ID"
  },
  "properties": {
    "Title": {
      "title": [
        {
          "text": {
            "content": "Create a page の動作確認"
          }
        }
      ]
    },
    "Status": {
        "select": {
            "name": "In Progress"
        }
    },
    "Description": {
        "type": "rich_text",
        "rich_text": [
          {
            "type": "text",
            "text": {
              "content": "新規ページを作成させる"
            }
          }
        ]
    },
    "Created at": {
        "type": "date",
        "date": {
            "start": "2023-09-07"
        }
    }
  },
  "children": [
    {
      "object": "block",
      "type": "paragraph",
      "paragraph": {
        "rich_text": [
          {
            "type": "text",
            "text": {
              "content": "This is a new page"
            }
          }
        ]
      }
    }
  ]
}

実行後のDatabase
After Create a Page

Retrieve a page

指定したページの情報を取得するAPIです。
ページには、親ページ、ページタイプ、プロパティ、コンテンツなどの情報が含まれます。

リクエストの例

GET <https://api.notion.com/v1/pages/{PAGE_ID}>
Notion-Version: 2022-06-28
Authorization: Bearer <MY_SECRET_KEY>

Retrieve a page property item

指定したページのプロパティの値を取得するAPIです。
取得できる情報には、タイトル、テキスト、数値、日付、チェックボックスなどが含まれます。

リクエストの例

GET <https://api.notion.com/v1/pages/{PAGE_ID}/properties/{PROPERTY_NAME}>
Notion-Version: 2022-06-28
Authorization: Bearer <MY_SECRET_KEY>

Update page properties

指定したページのプロパティを更新するAPIです。
プロパティには、タイトル、テキスト、数値、日付、チェックボックスなどが含まれます。

実行前のDatabase
Befor Update Page

リクエストの例

PATCH <https://api.notion.com/v1/pages/{PAGE_ID}>
Notion-Version: 2022-06-28
Content-Type: application/json
Authorization: Bearer <MY_SECRET_KEY>

{
  "properties": {
    "Status": {
        "select": {
            "name": "In Progress"
        }
    },
    "Description": {
        "type": "rich_text",
        "rich_text": [
          {
            "type": "text",
            "text": {
              "content": "ページのプロパティを更新させる"
            }
          }
        ]
    },
    "Created at": {
        "type": "date",
        "date": {
            "start": "2023-09-08"
        }
    }
  }
}

実行後のDatabase
After Updated Page

Archive a page

指定したページをアーカイブするAPIです。
アーカイブされたページはデータベースから非表示になりますが、後で再度表示することも可能です。

実行前のDatabase
Before Archive Page

リクエストの例

PATCH <https://api.notion.com/v1/pages/{PAGE_ID}>
Notion-Version: 2022-06-28
Content-Type: application/json
Authorization: Bearer <MY_SECRET_KEY>

{
  "archived": true
}

実行後のDatabase
Archive a page

ちなみにarchivedfalseにすることで削除したNotionページの復元が可能です。

さいごに

この記事では、Notion APIにおけるPagesに関するエンドポイント解説してきました。
Pagesには、新しいページの作成やページ情報の取得、プロパティの値の取得や更新、ページのアーカイブなどの機能が含まれており、これらの機能を活用することで、Notion上のタスクを自動化したり、プロジェクトの進捗状況を追跡するといったことが可能だなと改めて感じました。

また直感的に値を設定できたりと実装する時に組み込みやすいのも嬉しいポイントですね。

それぞれのエンドポイントのリクエストの例も載せているので少しでも参考になれば何よりです。

Discussion