開発者向け

自分のミーティングノートを
土台にする。

3 つの入り口に、認証はひとつだけ。ノートとフォルダーのための REST API、ノートとタスクのイベントを届ける署名付き Webhook、そして AI ツールが直接話しかけられる MCP サーバーです。

認証

キーは設定画面で 1 本発行します。

ワークスペースの管理者が、設定、連携、送信 Webhook の順に進んでキーを作成します。キーは作成時に一度だけ表示され、保存されるのはハッシュだけなので、控えを失うと復元できません。ベアラートークンとして送るか、X-API-Key ヘッダーに入れて送ってください。

curl https://api.reline.so/api/zapier/me \
  -H "Authorization: Bearer rlk_your_key_here"

# X-API-Key: rlk_your_key_here works too

キーが届く範囲

キーは作成した管理者本人として、そのワークスペースの中だけで動きます。読み取りも書き込みもアプリと同じ権限チェックを通るため、持ち主がもともと開けないプライベートなノートにキーが届くことはありません。

キーの失効

失効させると次のリクエストからキーは弾かれ、そのキーが作った Webhook の購読もすべて削除されます。受信側は同じ瞬間にイベントを受け取らなくなり、猶予期間はありません。

REST

ノートとフォルダーを扱う 6 つのエンドポイント。

レスポンスは JSON です。失敗した場合は 4xx ステータスと、何が起きたかを説明するフィールドが返ります。

https://api.reline.so

メソッドエンドポイント機能
GET/api/zapier/meキーをワークスペースとユーザーに解決します。認証情報の確認に使えます。
GET/api/zapier/notes閲覧できる最近のノートを新しい順に返します。folderId で 1 つのフォルダーに絞れます。
POST/api/zapier/notesノートを作成します。編集権限のあるフォルダーの中にも作れます。
GET/api/zapier/folders閲覧できるフォルダーを返します。level=edit を渡すと書き込めるものだけになります。
POST/api/zapier/subscribe1 つのイベントに対する Webhook の購読を登録します。フォルダー単位に絞ることもできます。
DELETE/api/zapier/subscribe作成時に返された id を使って購読を解除します。
curl -X POST https://api.reline.so/api/zapier/notes \
  -H "Authorization: Bearer rlk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"title":"Kickoff call","description":"Agenda + owners"}'

# 201 -> { "id": "...", "title": "Kickoff call", "url": "https://..." }

ノートオブジェクト

ノートのエンドポイントが返す形と、各 Webhook のペイロードに届く形は同じです。一度マッピングすればどこでも通用します。要約やタスクのフィールドは、それらを運ぶイベントに同梱されます。

{
  "id": "j57...",
  "noteId": "j57...",
  "title": "Kickoff call",
  "url": "https://app.reline.so/acme/notes/j57...",
  "folderId": "k21..." | null,
  "folderName": "Clients" | null,
  "isArchived": false,
  "createdAt": 1788302403777,
  "updatedAt": 1788302911204
}
Webhook

6 つのイベントを、署名を付けて送り出します。

設定画面からでも API からでも購読できます。配信は 1 イベントにつき 1 回の POST です。購読をフォルダーに限定すれば、反応する範囲を狭められます。

イベント

note.created
ノートが作成されました。人の操作、カレンダー、API のいずれからでも発火します。
note.summarized
要約の生成が完了しました。あとから要約を編集しても再発火はしません。
note.archived
ノートがゴミ箱に移りました。直接操作されたノートだけで、連鎖的な削除では発火しません。
note.restored
ノートがゴミ箱から戻りました。
action_items.extracted
ノートからタスクが抽出されました。その時点の全リストを 1 つのまとまりとして届けます。
action_item.completed
誰かがタスクを完了にしました。

配信の中身

本文には 3 つのヘッダーが付きます。イベント名、一意の配信 ID、そして署名です。

POST https://your-endpoint.example.com
X-Reline-Event:     note.summarized
X-Reline-Delivery:  9f3c...
X-Reline-Signature: t=1788302403,v1=6b8a...

{
  "id": "9f3c...",
  "event": "note.summarized",
  "occurredAt": 1788302403777,
  "workspace": { "id": "w1...", "slug": "acme", "name": "Acme" },
  "data": { "noteId": "j57...", "summary": "# Kickoff\n..." }
}

配信の検証

署名は、タイムスタンプと生の本文をピリオドでつないだ文字列に対する HMAC-SHA256 で、鍵は購読作成時に表示された署名シークレットです。JSON をパースする前に、受け取ったバイト列そのままで計算し、定数時間で比較してください。

import crypto from 'node:crypto'

// `raw` is the request body as received — verify BEFORE JSON.parse.
function verify(raw: string, header: string, secret: string): boolean {
  const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')))
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${parts.t}.${raw}`)
    .digest('hex')
  if (typeof parts.v1 !== 'string' || parts.v1.length !== expected.length) return false
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))
}

受信側が壊れたとき

配信はリトライされ、失敗が続く購読は永久に再試行されるのではなく自動的に停止します。各フックの最新のステータスとエラーは設定画面で確認できます。

MCP

AI ツールをワークスペースに向ける。

このサーバーは HTTP 上で Model Context Protocol を話すため、claude.ai、ChatGPT、Claude Code、Cursor など、プロトコルに対応したクライアントで動きます。OAuth でサインインするか、同じワークスペースのキーをベアラートークンとして送ってください。

https://mcp.reline.so/mcp

claude mcp add --transport http reline https://mcp.reline.so/mcp

# or authenticate a plain HTTP client with the same workspace key:
#   Authorization: Bearer rlk_your_key_here

ページングするツールはカーソルを返します。ページが短いことは終端を意味しません。終端を意味するのは空のカーソルだけです。

読み取り

  • search
  • fetch
  • get_note
  • get_transcript
  • list_notes
  • count_notes
  • list_meetings
  • list_recent_meetings
  • list_folders
  • list_people
  • list_calendar_events
  • list_action_items
  • list_workspaces
  • get_workspace_info

書き込み

  • create_note
  • append_to_note
  • update_note
  • create_folder
  • complete_action_item
制限

知っておきたい数字。

1 分あたり 120 リクエスト

キーごとに、固定された 1 分間の枠で数えます。超えると枠が進むまで 429 が返ります。

1 ワークスペースにつき有効なキーは 10 本

失効済みのキーは数に入りません。連携ごとに 1 本ずつ作れば、1 本ずつ止められます。

管理者のみ

キーの作成と失効には管理者ロールが必要です。メンバーはキーの上に作られた連携を使えますが、キー自体は作れません。

キー 1 本につきワークスペース 1 つ

キーが別のワークスペースに越境することはありません。複数にまたがる場合は、それぞれに 1 本ずつ用意します。

これを土台に何か作っていますか。

何をつなごうとしていて、何が足りないのかを教えてください。この面は、実際に押された場所から広がっていきます。

問い合わせる