日本語 / English

Anota ヘルプ API

概要

Anota のノートとフォルダは、API キーを使って AI エージェントや外部のスクリプトから読み書きできます。使い方は 2 通りあります。

種類エンドポイント向いている使い方
REST APIhttps://api.anota.info/v1スクリプト、HTTP を直接呼べる AI エージェント
MCPhttps://api.anota.info/mcpClaude などの MCP に対応した AI ツール

OpenAPI 3.1 のスキーマは https://api.anota.info/openapi.json にあります(認証は不要です)。

要求と応答の本文は JSON(UTF-8)です。日時は ISO 8601 形式の文字列で返ります。

認証

API キーはマイアカウント画面の「API キー」で発行します。発行したキーは、あとからでも一覧の「表示」でもう一度表示・コピーできます。キーと一緒に、接続先と AI エージェントへの依頼文も表示されます。

すべての要求に、次のヘッダーを付けます。

Authorization: Bearer anota_xxxxxxxx

スコープ

スコープできること
readGET の要求(ノートやフォルダの読み取り、検索)
writePOST・PUT・DELETE の要求(作成・更新・削除)

書き込みだけのキーでは読み取りができません。ふつうは両方を付けて発行してください。スコープが足りないと 403 forbidden になります。

API キーで使える範囲

API キーで読み書きできるのは、「API キーからのアクセスを許可する」が ON のフォルダのノートだけです。この設定は、すべてのノートに対して、またはフォルダごとに、アプリの画面で切り替えます(API からは変えられません)。

このほか、ノートやフォルダの公開範囲(自分だけ・メンバー)は、アプリで使うときと同じように適用されます。チームで IP アドレスの制限をしている場合は、API にも適用されます(違反は 403 ip_restricted)。

ノート

メソッドとパス内容
GET /v1/pagesノートの一覧
POST /v1/pagesノートを作る
GET /v1/pages/{id}ノートを 1 件読む(本文を含む)
PUT /v1/pages/{id}ノートを更新する
DELETE /v1/pages/{id}ノートをゴミ箱に入れる
POST /v1/pages/{id}/moveノートを別のフォルダへ移す
GET /v1/pages/{id}/tagsノートのタグを読む
PUT /v1/pages/{id}/tagsノートのタグを置き換える
GET /v1/pages/{id}/backlinksこのノートへリンクしているノート
GET /v1/pages/{id}/versions版の履歴
POST /v1/pages/{id}/commentsコメントを付ける(チーム版)

ノートのデータ

ノートを返す API は、次の項目を持つオブジェクトを返します(値の無い項目は省かれることがあります)。

項目内容
page_idノートの ID
title / bodyタイトルと本文(Markdown)
folder_id / folder_name入っているフォルダ
tagsタグ(カンマ区切りの文字列)
permissionprivate(自分だけ)または member(フォルダの設定に従う)
version版の番号。更新するたびに増える
deletedゴミ箱に入っていれば true
user_id / user_name作った人
created_at / updated_at作成日時と更新日時

GET /v1/pages

クエリ: folder_id(フォルダで絞る)、offset(既定 0)、limit(既定 50、最大 100)。

{"pages": [ {ノート}, ... ], "offset": 0, "limit": 50}

総件数は返りません。返った件数が 0 になるまで offset を進めてください。

POST /v1/pages

{
  "title": "会議メモ",          // 必須
  "body": "# 議題\n- ...",     // Markdown
  "folder_id": "…",            // 省略すると既定のフォルダ
  "permission": "member",      // "private" で自分だけ
  "tags": ["meeting", "2026"]  // 配列またはカンマ区切りの文字列
}

作ったノートを 201 で返します。無料プランのノート数の上限に達していると 403 page_limit_reached です。

PUT /v1/pages/{id}

変えたい項目だけを送ります。title と body は、空にすると今の値のままになります。folder_id を送ると、そのフォルダへ移します。

version を付けると、その版から誰も更新していないときだけ更新します(食い違うと 409 version_conflict)。上書きを防ぐため、読み取ったときの version を付けることをおすすめします。

{"body": "# 議題\n- 更新しました", "version": 3}

DELETE /v1/pages/{id}

ノートをゴミ箱に入れ、{"success": true} を返します。完全に消すことはできません(アプリのゴミ箱から消します)。ゴミ箱のノートは更新できません(409 page_in_trash)。

その他

フォルダ

メソッドとパス内容
GET /v1/foldersフォルダの一覧 {"folders": [...]}
POST /v1/foldersフォルダを作る。本文 {"name": "…", "description": "…", "permission": "private"}
GET /v1/folders/{id}フォルダを 1 件。?include_pages=true で中のノートも返す
PUT /v1/folders/{id}名前・説明・公開範囲を変える
DELETE /v1/folders/{id}フォルダを消す。中のノートは ?move_pages_to= のフォルダ(省略時は既定のフォルダ)へ移す

フォルダの主な項目: folder_id、name、description、permission、is_default、page_count、created_at、updated_at。

フォルダの作成・変更・削除は管理者だけができます(個人でお使いの場合はご本人が管理者です)。同じ名前のフォルダは作れません(409 conflict)。既定のフォルダは消せません。

エラー

エラーのときは、HTTP のステータスと次の形の本文を返します。

{"error": {"code": "version_conflict", "message": "…"}}
ステータスcode主な原因
400invalid_request必須の項目が無い、存在しないフォルダを指定した
401unauthorizedキーが無い・違う・失効した・期限切れ
403forbiddenスコープや権限が足りない
403api_key_access_disabledAPI キーからのアクセスを許可していないフォルダ
403page_limit_reached無料プランのノート数の上限
403ip_restricted許可されていない IP アドレス
404not_foundノート・フォルダ・パスが無い
409version_conflictほかの更新と食い違った。読み直してから更新する
409page_in_trashゴミ箱のノートを更新・削除しようとした
500internal_errorサーバーの問題。時間をおいて再試行する

MCP

MCP(Model Context Protocol)に対応した AI ツールからは、https://api.anota.info/mcp を MCP サーバーとして登録して使えます。通信は Streamable HTTP(JSON-RPC 2.0 を POST で 1 件ずつ送る形)で、認証は REST と同じく Authorization: Bearer ヘッダーの API キーです。

ツール内容主な引数
search_notesキーワードでノートを探すquery
get_noteノートを本文ごと読むpage_id
list_foldersフォルダの一覧なし
create_noteノートを作るtitle、body、folder_id
update_noteノートを更新する(本文はまるごと置き換え)page_id、title、body
add_commentコメントを付ける(チーム版)page_id、body

Claude Code の場合の登録例:

claude mcp add --transport http anota https://api.anota.info/mcp --header "Authorization: Bearer anota_xxxxxxxx"

使える範囲(スコープ・フォルダの許可)は REST と同じです。

例

ノートの一覧を読む:

curl "https://api.anota.info/v1/pages?limit=20" \
  -H "Authorization: Bearer anota_xxxxxxxx"

ノートを作る:

curl -X POST https://api.anota.info/v1/pages \
  -H "Authorization: Bearer anota_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"title": "今日のメモ", "body": "# メモ\n- 牛乳を買う"}'

読み取った版を付けて更新する:

curl -X PUT https://api.anota.info/v1/pages/PAGE_ID \
  -H "Authorization: Bearer anota_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"body": "# メモ\n- 牛乳を買った", "version": 1}'