REST API とは
外部サービスからBASEのデータにアクセスする仕組みです。
エンドポイント
読み取り5本と書き込み3本、計8本のエンドポイントを紹介します。
トークン発行
API接続用のトークンを発行します。
ChatGPT GPTs 連携
ChatGPTのGPTsからBASEを使う設定手順です。
動作確認
curlコマンドでAPIの動作を確認します。
よくある質問
トラブル時の対処法やよくある疑問にお答えします。
REST API とは
BASE REST API を使うと、ChatGPT などの外部 AI サービスや自作アプリケーションから BASE のナレッジデータにアクセスできます。
REST API(このページ)
ChatGPT GPTs、Gemini、外部アプリなど幅広い AI サービスから接続できます。標準的な HTTP リクエストで、参照・編集の両方に対応しています。
MCP 接続(別ガイド)
Claude Desktop / claude.ai 向けの接続方式です。Claude をお使いの場合はこちらがおすすめです(参照のほか、write スコープを付ければ編集も可能)。
read スコープ、編集も行う場合は read + write スコープのトークンを発行してください。https://base.kodama.com/mcp を指定してブラウザで認可するだけで接続できます(Base ID は認可画面で入力)。ChatGPT GPTs の Actions では、下記の API Key 方式が最も簡単です。Claude をお使いの場合は MCP 接続ガイドもご覧ください。API 連携を行うと、Base に記録された内容が外部 AI サービスに送信されます。 パスワード、API キー、個人識別番号などの機密情報を含む Base は接続しないでください。
エンドポイント
読み取り 5 本、書き込み 3 本のエンドポイントを提供しています。ベースURL: https://base.kodama.com/api/v1
read スコープ)GET /bases/{base_id}/info
Base の概要情報(名前、公開設定、総ページ数)を取得します。
GET /bases/{base_id}/pages
Base 内の全ページ一覧を表示順で取得します。
GET /bases/{base_id}/pages/{content_id}
指定ページの本文(Markdown)とメタ情報を取得します。
GET /bases/{base_id}/search?q={keywords}
キーワードでページのタイトル・本文を検索し、スコア順で返します。
GET /bases/{base_id}/tree
ページの階層構造をネストされたツリー形式で取得します。
read + write スコープ、Base の owner 限定)POST /bases/{base_id}/pages
ページを新規作成します。ツリー末尾に level=0 で追加され、作成後のページ詳細が返ります。階層調整は作成後に PATCH で level を更新してください。
PATCH /bases/{base_id}/pages/{content_id}
ページを部分更新します。title / body / content_type / content_lang / view / level のうち送信したフィールドのみ更新されます(最低 1 つ必須)。
DELETE /bases/{base_id}/pages/{content_id}
ページをゴミ箱へ移動します(ソフト削除)。物理削除ではなく、Web UI のゴミ箱画面から復元できます。
- https://base.kodama.com/api/manual.md - REST API フルマニュアル(全エンドポイント・データモデル・curl サンプル・ベストプラクティス)
- https://base.kodama.com/llms.txt - サイトの LLM 向け文書インデックス(llmstxt.org 規格)
API トークンを発行する
API にアクセスするための「鍵」を発行します。この鍵をAPI トークンと呼びます。
-
トークン発行ページを開く
BASE にログインした状態で、マイページの「API Token」リンクをクリックしてトークン発行ページを開きます。
-
トークンを作成する
以下の設定で新しいトークンを作成します:
スコープ 用途に応じて選択:
・readのみ(参照だけ。ChatGPT 連携など読み取り中心の用途はこちら)
・read+write(参照に加えてページ作成・編集・削除も可能)許可する Base 接続したい Base の ID を入力(必ず設定してください) 有効期限 お好みで選択(迷ったら「90日」がおすすめ) 「許可する Base」は必須項目です。トークンは指定した Base にのみアクセスできます。他の Base のデータが AI に送信されることはありません。writeスコープは慎重に。このスコープを持つトークンが漏洩すると、第三者から Base のページを編集・削除される可能性があります。読み取りで足りる場合はreadのみで発行することをおすすめします。書き込みを行うアカウント自体が owner である Base にのみ作用します。 -
トークンをコピーして保存する
作成されたトークンが表示されます。
kid_で始まる長い文字列です。 この画面を閉じると二度と表示されません。必ずコピーして安全な場所に保存してください。
ChatGPT GPTs を設定する
ChatGPT の GPTs(カスタム GPT)に BASE を接続します。
-
GPT を作成する
ChatGPT で「GPT を作成」(または「Explore GPTs」→「Create」)を開きます。
-
Instructions を設定する
GPT の「Instructions」に、Base の用途と ID を記載します。
Instructions の記載例:
- 「Base ID
my-knowledgeのナレッジベースから情報を検索・取得して回答してください。」 - 「ユーザーの質問に関連するページを searchPages で検索し、必要に応じて getPage で本文を取得してから回答してください。」
- 「Base ID
-
Actions を追加する
「Configure」タブで「Actions」→「Create new action」を選択します。
-
OpenAPI スキーマをインポートする
「Import from URL」をクリックし、以下の URL を入力します:
https://base.kodama.com/api/openapi.yamlインポートが完了すると、5つのエンドポイントが Actions として登録されます。
-
認証を設定する
Actions の認証設定で以下を入力します:
Authentication 「API Key」を選択 API Key 発行した KID トークン( kid_xxx...)を入力Auth Type 「Bearer」を選択 -
保存して使う
「Save」で保存したら、GPT に話しかけてみましょう。BASE のナレッジを参照した回答が得られます。
おすすめのプロンプト:
- 「BASE にどんなページがありますか?」
- 「セキュリティに関するページを検索して」
- 「認証機構のページの内容を要約して」
write スコープ付き)を渡すと、会話の流れで意図せずページの作成・編集・削除が行われる可能性があります。GPTs 連携は read のみのトークンで運用し、書き込みは自作スクリプトや専用ツールから利用することを推奨します。
動作確認(curl)
ターミナルから curl コマンドで API の動作を確認できます。
読み取り
-
Base 情報を取得するcurl -H "Authorization: Bearer あなたのAPIトークン" \ https://base.kodama.com/api/v1/bases/your-base-id/info
-
ページ一覧を取得するcurl -H "Authorization: Bearer あなたのAPIトークン" \ https://base.kodama.com/api/v1/bases/your-base-id/pages
-
キーワードで検索するcurl -H "Authorization: Bearer あなたのAPIトークン" \ https://base.kodama.com/api/v1/bases/your-base-id/search?q=検索ワード
-
成功時のレスポンス例// GET /api/v1/bases/my-knowledge/info { "base_id": "my-knowledge", "description": "社内ナレッジベース", "view": "L", "total_pages": 42 }
書き込み(write スコープが必要)
-
ページを新規作成するcurl -X POST \ -H "Authorization: Bearer あなたのAPIトークン" \ -H "Content-Type: application/json" \ https://base.kodama.com/api/v1/bases/your-base-id/pages \ -d '{ "title": "新規ページ", "body": "# 本文\n\nMarkdownで記述します。", "content_type": "M", "content_lang": "ja" }'
レスポンスは
201 Created。作成されたページの詳細(content_idを含む)が返ります。 -
ページのタイトルだけを更新するcurl -X PATCH \ -H "Authorization: Bearer あなたのAPIトークン" \ -H "Content-Type: application/json" \ https://base.kodama.com/api/v1/bases/your-base-id/pages/content_id \ -d '{"title": "更新後のタイトル"}'
送信したフィールドだけが更新されます。同様に
body/content_type/content_lang/view/levelも指定可能です。 -
ページをゴミ箱へ移動する(ソフト削除)curl -X DELETE \ -H "Authorization: Bearer あなたのAPIトークン" \ https://base.kodama.com/api/v1/bases/your-base-id/pages/content_id
レスポンスは
204 No Content(本文なし)。ゴミ箱に入ったページは Web UI から復元できます。
--data-urlencode オプションを使用してください。よくある質問
お困りの際はこちらをご確認ください。
- 「UNAUTHORIZED」エラーが返る
-
API トークンが無効または期限切れです。トークン発行ページで新しいトークンを作成してください。
Authorization: Bearerのスペルが正しいかも確認してください。 - 「FORBIDDEN」エラーが返る
-
指定した Base に対するアクセス権がありません。API を使えるのは Base の owner 本人だけです(reader/writer として参加しているだけでは利用できません)。書き込み操作の場合はトークンに
writeスコープが付いているかも確認してください。Base ID のスペルが正しいかも確認してください。 - ChatGPT が API を呼んでくれない
- GPTs の Instructions に Base ID を明記し、「BASE の API を使って情報を検索してから回答してください」と指示を追加してみてください。 Actions の認証設定(Bearer トークン)が正しく保存されているかも確認してください。
- Claude Desktop で使いたい場合は?
- Claude Desktop には REST API ではなく、専用の MCP 接続がおすすめです。 MCP 接続ガイドをご覧ください。
- API で記事を編集できますか?
-
はい、可能です。トークンに
writeスコープを付け、そのトークンを発行したアカウントが対象 Base の owner 本人である必要があります(reader/writer では利用できません)。 ページの作成(POST)、部分更新(PATCH)、ゴミ箱への移動(DELETE)が利用可能です。完全削除はサポートしておらず、ゴミ箱からの復元は Web UI から行います。 - OpenAPI スキーマはどこにありますか?
- https://base.kodama.com/api/openapi.yaml で公開しています。 ChatGPT GPTs の Actions に「Import from URL」で直接インポートできます。
- LLM に直接マニュアルを読ませたいのですが?
- LLM 向けに最適化した Markdown マニュアルを https://base.kodama.com/api/manual.md で公開しています。 Claude / ChatGPT / Cursor 等に URL を貼り付けるか、ダウンロードして context に読み込ませてください。 同じ内容は https://base.kodama.com/llms-full.txt でも配信しており、https://base.kodama.com/llms.txt(llmstxt.org 規格のサイトインデックス)から辿れます。