REST API
数百〜数千ページのドキュメントを、ご自身のスクリプトから保存・削除します。AI は 関与しません。
PDF、表計算、レポートを 1 件ずつ手で入れる代わりに、一連の作業をスクリプトに任せます。 テキストの抽出と分割はご自身で行い、その結果だけを送ってください。
ここで保存したものは、接続した AI から保存したものとまったく同じです。同じ保存先に入り、AI の 呼び出し方も変わりません。
読み取り API はありません。 検索と取得は MCP と ダッシュボードが担当します。
はじめに
- REST API のカードでキーを作成します — アカウントページに
あります。キーの名前は、そのキーで保存したものすべての出所として記録されます。
Import script、pdf-importerのように、後から見てわかる名前にしてください。 - キーは作成直後に一度だけ表示されます。その場でコピーしてください。再表示は できません。
- キーはいくつでも作成でき、いつでも個別に削除できます。
認証
https://contextick.aiAuthorization: Bearer api_xxxxxxxx
ここで使えるのは api_ で始まるキーだけです。MCP キーや OAuth トークンはこの API で
401 になり、REST API キーは MCP エンドポイントで 401 になります。表面が
分かれているので、片方だけを失効させられます。
エンドポイント
POST /api/v1/notes
1 件を保存します。
Body
| Field | Type | Required | Limit |
|---|---|---|---|
| title | string | ✓ | 120 文字 — 超えた分は切り詰められます |
| summary | string | ✓ | 300 文字 — 超えた分は切り詰められます |
| content | string | ✓ | 16,000 文字 — 超えると拒否されます |
3 つとも空にはできません。空の値は推測で埋めず、拒否します。
Request
curl -X POST https://contextick.ai/api/v1/notes \
-H "Authorization: Bearer api_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"title":"Q3 report","summary":"Revenue and headcount for Q3.","content":"…"}'
Response 201
{ "id": 42, "saved_items": 118, "stored_bytes": 1048576 }
saved_items と stored_bytes は保存後の合計です。読み取れなかった場合は
0 ではなくフィールドごと省かれます。
ドキュメントに記録される出所はキーの名前です。リクエストからは指定できません。
DELETE /api/v1/notes/{id}
1 件を削除します。
Request
curl -X DELETE https://contextick.ai/api/v1/notes/42 \
-H "Authorization: Bearer api_xxxxxxxx"
POST /api/v1/notes/delete
まとめて削除します。
Body
| Field | Type | Required | Limit |
|---|---|---|---|
| ids | number[] | ✓ | 1 回につき 50 件 — 超えると拒否されます |
一括取り込みを取り消せるのはこの経路だけです。
Request
curl -X POST https://contextick.ai/api/v1/notes/delete \
-H "Authorization: Bearer api_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"ids":[42,43]}'
Delete response 200
{ "deleted": [42], "not_found": [43], "saved_items": 117, "stored_bytes": 1040000 }
どちらの削除も同じ形を返します。存在しない id はエラーではなく not_found として
報告されます。削除は永久で、取り消せません。
長いドキュメントはご自身で分割してください
本文の上限は 1 回の保存につき 16,000 文字です。こちらで分割はしません — 超えたものは
content_too_long で拒否します。意味のまとまりで区切って 1 つずつ保存し、断片ごとに
タイトルと要約を付けてください。ファイル名や見出しを知っているのはあなたなので、その方が後から
ずっと呼び出しやすくなります。
エラー
失敗はすべて同じ形です:
{ "error": { "code": "quota_exceeded", "message": "…" } }
分岐は code で行ってください。message は人が読むための文章で、予告なく
変わることがあります。
empty_titleempty_summaryempty_contentcontent_too_longtoo_many_idsinvalid_bodyinvalid_id
api_ キーを確認します
unauthorized
payment_past_duesubscription_pausedsubscription_canceledrefund_pending
embedding_rate_limited
quota_exceeded