Notion APIとは?できることや使い方を解説
この記事では、「Notion API とは何か」「Notion API でできること」「Notion API を使ったサービス」「Notion API を実際に使用する方法」を初心者向けに解説します。
Notion API と聞くとプログラミングの知識が必要なイメージがあり、難しそうと思う方がたくさんいるかもしれません。しかし、プログラミングの知識がない非エンジニアの方でも簡単に Notion API を使う方法はたくさんあります。Notion API を知ることで、より便利に Notion を使うことが可能になります。
本記事では、前半部分で Notion API を使用したサービスや、プログラミングの知識を必要としない Notion API の活用方法、後半部分では GAS(Google App Script) や Python などで Notion API を使用する方法を解説します。Notion API を使えるようになることで Notion の活用の幅がぐっと広がります。Notion API を使ったことのない方も、ぜひチャレンジしてみてください。
Notion API とは
Notion API は Notion と外部のツール(Google、Microsoft 、Slack、LINE、ChatGPT など)を繋げてデータの受け渡しをしたり、Notion 内のワークフローを自動化することができるインターフェースです。API は、アプリケーション・プログラミング・インタフェース (Application Programming Interface)の略語です。
インターフェースと聞くと難しく感じますが、パソコンとマウスを繋ぐ USB もインターフェースの一種で、簡単に言うと「何か」と「何か」を「繋ぐもの」です。Notion API の場合は「Notion」と「外部の Web サービスやツール」を繋ぐインターフェースです。
ちなみに Notion API は無料で使用することができます。
もし、Notion をあまり知らないという場合は、以下の動画がおすすめです。
Notion API でできること
Notion API を使えば、Notion の外から(別のアプリなど)、 ページ、ブロックを作成したり、データベースやページ、ブロックの内容を取得・更新することができます。 例えば、以下のようなことが可能です。
- Google カレンダーと Notion のタスク管理データベースの自動同期
- Gmail で特定のアドレスからメールを受信したら Notion に保存
- Slack で特定のスタンプを押したらスレッドの内容を Notion に保存
- LINE でメモを作成したら Notion にも保存
- Notion のデータベースの内容をスプレッドシートに自動同期
- Notion で議事録を作成完了したら特定のアドレスに自動でメール送信
Notion API を使用する前に知っておくべきこと
上記でも述べたように、Notion API はデータベースのページやプロパティ、ページ内のブロックを対象にデータを作成・取得・更新・削除します。Noition のデータベースについてまだよく知らないという場合は、まず Notion のデータベースの概要を押さえておくのがおすすめです。
データベースについては以下の動画で詳しく解説されています。
Notion API を使って作成されたサービス・ツール・アプリ
ここでは実際に、Notion API を利用して作成されている Web サービスやツール、アプリを紹介します。自分で Notion API を使った実装をしなくとも、世の中で公開されているアプリを使うことで、より便利に Notion を使うことができるようになります。
Fast Notion
Notion に素早くメモを取ることができるスマホアプリです。Notion API でページやブロックの作成(メモ保存)などを行っています。
▼ YouTube での解説はこちら
Fast Notion は Chorme 拡張機能版もリリースされています(完全無料)。こちらも Notion API でページやブロックの作成を行っています。
Notiz
LINE から Notion にメモを保存するサービスです。Notion API でデータベースのページの作成やプロパティの更新(メモ保存)、プロパティの取得(タグを取得)などを行っています。
▼ YouTube での解説はこちら
Notion Automations
Google カレンダーと Notion のデータベースを双方向に自動同期することができるサービスです。Notion API でデータベースのページの作成やプロパティの更新(Google カレンダー → Notion の同期)、ページやプロパティの取得(Notion → Google カレンダーの同期)などを行っています。
▼ 詳しい解説はこちら
▼ YouTube での解説はこちら
ChatGPT to Notion
ChatGPT で行ったやり取りの内容をそのまま Notion のデータベースに保存できる Chrome 拡張機能です。Notion API でデータベースのページの作成やプロパティの更新(ChatGPT のログ保存)、プロパティの取得(タグを取得)などを行っています。
▼ 詳しい解説はこちら
▼ YouTube での解説はこちら
BookNotion
Kindle のハイライトをかんたんに Notion に保存できるスマホアプリです。Notion API でデータベースのページの作成やプロパティの更新(ハイライトの保存やタグ付け)、プロパティの取得(タグを取得)などを行っています。
▼ 詳しい解説はこちら
▼ YouTube での解説はこちら
NotionApps
ノーコードで簡単に Notion と連携したアプリを作れるサービスです。Notion API でデータベースのプロパティの取得(アプリで表示)、プロパティの更新(アプリから更新)などを行っています。
▼ 詳しい解説はこちら
N2B
Notion で簡単にブログを執筆 → 公開できるサービスです。Notion API でデータベースのページやプロパティの取得(ブログ記事や公開日などの取得)、プロパティの更新(いいね数やコメントを保存)などを行っています。
▼ 詳しい解説はこちら
Tally
Tallyは、Notion のような UI でフォームを作成できるサービスであり、操作感が Notion と似ており、非常に使いやすいサービスです。フォームの回答結果を、Notion API で Notion に保存しています。
▼ 詳しい解説はこちら
Typeform
Typeform も Tally と同じくフォームを作成できるサービスですが、こちらはかなりリッチなフォームを作成することができます。Tally と同じく、フォームの回答結果を、Notion API で Notion に保存しています。
▼ 詳しい解説はこちら
ノーコードで Notion API を使えるサービス
上記のセクションでは、Notion API で作られたサービスなどを紹介しましたが、ここからはノーコードで Notion API を使って、自由に Notion と他のサービスとの連携をできる iPaaS(Integration Platform as a Service)を紹介します。
iPaaS はクラウド上に分散しているさまざまなサービスを連携し、データを共有したり、ワークフローを自動化することができます。例えば、Gmail と Notion を連携し、「Gmail に特定のアドレスからメールが来た → メールの内容を Notion に保存」というような作業を簡単に自動化することができます。
Zapier
Zapier はノーコードでさまざまなアプリケーションの連携を自動化してくれるツールです。Zapier を使うことで、Notion と外部サービスを柔軟に連携することができます。
以下の記事では、Notion と Slack を連携し、特定のスタンプが押されたら Notion に保存する仕組みを構築しています。
▼ 詳しい解説はこちら
Make
Make も Zapier と同じように、ノーコードでさまざまなアプリケーションの連携を自動化してくれるツールです。Zapier とできることは似ていますが、連携できるサービスが若干 Zapier と異なっていたり、作業をする画面の UI が Zapier とは異なります(どちらが使いやすいかはそれぞれの方の好みになると思います)。
以下の記事では、Notion のページに埋め込めるいいねボタン(Make で Notion を連携する基本的な方法)や、TimeTree(スケジュール共有アプリ)と Notion を同期する方法について解説しています。
▼ 詳しい解説はこちら
Pipedream
Pipedream は、Zapier や Make とできることは似ているノーコードツールですが、特徴的な点として「コードも書くこと」ができます。そのため、「基本はノーコードで連携」+「ノーコードで実現できない部分のみコードを書いて補完」という柔軟な対応を行うことができます。
pipedream については後日、解説記事を公開予定です。
GAS などで Notion API を活用した事例
GAS などを使って自分でコードを書けば、最も自由度高く Notion API を活用することができます。上記で紹介したノーコードツールでは対応できない場合も(連携対象に目的のアプリがないなど)、自分でコードを書けば大部分は解決できます。
GAS で Notion → スプシ の連携を行う
この活用例では、1日に1回 Notion に記録したタスクのデータを GAS で Google スプレッドシートにコピーして、スプレッドシート上でグラフ化して分析するということを行なっています。
▼ 詳しい解説はこちら
Notion でブログを公開する
このメディア( Notion ラボ )は、Notion API を使った「astro-notion-blog」というツールを使って作られています。こちらは、Notion に書いた内容がそのまま記事として公開されるというツールで、Notion API を使って Notion のページから記事の内容を取得し、メディア(ブログ)として公開されます。ブログを公開するだけであればプログラミングの知識が必要なく使用できますが、ブログの見た目や Notion から取得するデータを増やすなどのカスタマイズをしたい場合は、プログラミングの知識が必要になります。
▼ 詳しい解説はこちら
また、上記と同じような仕組みで Web サイトの「よくある質問」ページも実装することができます。
▼ YouTube での解説はこちら
Alfred を使って Mac から素早く Notion にメモ
Alfred という Mac のアプリケーションを使えば、Notion API を使って素早く Notion にメモを取ることができます。
▼ 詳しい解説はこちら
▼ YouTube での解説はこちら
また、以下の記事では、上記の方法を応用して日々の行動ログをすばやく Notion に記録するということも行なっています。
▼ 詳しい解説はこちら
iPhone のショートカットで Notion API を活用する
iPhone に初期から入っている「ショートカット」アプリでも Notion API を活用することができます。
例えば以下の記事では、iPhone のショートカット経由ですばやく Notion にメモをとっています。
▼ 詳しい解説はこちら
また、以下の記事では、iPhone で撮影した画像をすばやく Notion に保存するショートカットを紹介しています。
▼ 詳しい解説はこちら
他にも以下のような内容がショートカットを使えば実現可能です。これらは後日、記事として公開し、ショートカットも配布予定です。
- Apple Watch で記録したランニングの時間を Notion に自動登録
- ヘルスケアのデータを Notion に自動登録
Notion API の使い方
ここからは、ノーコードツールなどを使用せずに自分でコードを書いて Notion API を使用する方法を解説します。
インテグレーションの作成
Notion API を使用するためには、まず「インテグレーション」を作成する必要があります。インテグレーションは、Notion API を使って Notion のページにアクセスするための「鍵」のようなものです。
インテグレーションは こちらのページ から作成が可能です。作成が完了するとトークンが表示されるので控えておくようにしてください。
インテグレーションの作成方法は、以下の動画でも解説されています(動画は Fast Notion の設定方法に関する内容ですが、インテグレーションの作成についても解説されています)。
コネクトの追加
インテグレーションを作成した後は、Notion API でアクセスしたいページに先ほどの「インテグレーション」を追加します。Notion API は、作成したインテグレーションが追加(コネクト)されたページ(またはデータベース)にのみアクセスすることができます。
コネクトの追加方法については、以下の動画を参考にしてください(動画は Fast Notion の設定方法に関する内容ですが、インテグレーションの作成についても解説されています)。
GAS で Notion API を使用する方法
GAS で Notion API を使用する方法については、以下の記事を参考にしてください。
JavaScript で Notion API を使用する方法
JavaScript で Notion API を使用する方法については、以下の記事を参考にしてください。
▼ JavaScript SDK を使ってメモを素早く送信する方法
Python で Notion API を使用する方法
Python で Notion API を使用する方法については、以下の記事を参考にしてください。
Notion API に関するよくある質問
ここからは、Notion API を使用する上での注意点を解説します。
画像のアップロードには対応していない
現状、 Notion API では画像を含めたのファイルのアップロードには対応していません。
一度に取得できるページ数やブロック数に制限がある
Notion API で一度に取得できるページ数やブロック数には 上限 100 件という制限があります。例えば以下は、Notion API の公式ページでデータベースから一度に取得できるページ数の上限について記載されている箇所です。
また以下は、Notion API の公式ページで一度に取得できるブロック数の上限について記載されている箇所です。
解決策として、ページネーションを実装することで対応できます。
解決方法については以下の記事で解説されているので、参考にしてみてください。
画像のリンク切れ
Notion API で取得した画像は、リンクが 1時間で切れてしまうという問題があります。それに対して以下の記事では、対応方法を 4つ 解説してくれています。
- 画像をすべて外部でホスティングする
- 1時間に1回デプロイする
- サイトのSSGをやめてSSRにする
- デプロイ時に一時画像ファイルを開発者側で別のアクセス可能な場所に置く
また、以下の記事では対応方法を 3つ解説してくれています。
- Data URIスキームを使う
- クライアント側で期限切れを判定して画像URLを取得し直す
- 標準化したURLで画像を返すAPIを定義する
1 秒間に 3 リクエスト以上を送信するとエラーが返却される
Notion API は 1秒間に3リクエスト以上を送信すると、エラーが返却される仕様となっています。もしエラーが出てしまう場合は、少し待ってから 2回目、3回目のリクエストを飛ばすような実装が必要になります。
おわりに
この記事では、Notion API とは何か、Notion API でできること、Notion API を使ったサービスの具体例、Notion API を実際に使用する方法を初心者向けに詳しく解説しました。Notion API を使用することで、Notion をさらに便利に活用できます。まだ Notion API を使用したことがない方も、この記事を参考にしながら、ぜひチャレンジしてみてください。