REST API リファレンス

SparkSheetsのすべての機能にプログラムからアクセス。Zapier、n8n、Make(旧Integromat)などのノーコードツールとも連携できます。

3つの連携方法
SparkSheetsは REST APIMCP ServerWebhooks の3つのインターフェースを提供しています。すべてのインターフェースで同じ機能が利用可能です。
API Playground
ブラウザ上でAPIをインタラクティブに試せます。Playgroundを開く →

認証

REST APIはBearer認証を使用します。すべてのリクエストにAPIキーが必要です。

APIキーの取得

  1. SparkSheetsにログイン
  2. 右上のメニュー → 「設定」を開く
  3. 「API」タブを選択
  4. 「新しいAPIキーを発行」をクリック
  5. キー名を入力して作成
  6. 表示されたキー(sk_で始まる文字列)をコピー
セキュリティに関する重要事項
  • APIキーは一度しか表示されません。紛失した場合は再発行してください
  • APIキーは誰にも共有しないでください
  • 公開リポジトリにコミットしないでください

リクエストヘッダー

すべてのAPIリクエストに以下のヘッダーを含めてください:

Authorization: Bearer sk_xxxxxxxxxxxxxxxx
Content-Type: application/json

ベースURL

https://sparksheets.ai/api/v1/

レート制限

プラン 制限
Free 30リクエスト/分
Pro 100リクエスト/分
Business 1000リクエスト/分

制限を超えると 429 Too Many Requests が返されます。

シート操作

シートの作成・取得・更新・削除・検索ができます。

シート一覧を取得

GET /sheets

自分のシート一覧を取得します。

クエリパラメータ

名前必須説明
limitintegerいいえ取得件数(デフォルト: 50、最大: 100)
offsetintegerいいえオフセット(ページネーション用)

リクエスト例

curl -X GET "https://sparksheets.ai/api/v1/sheets" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

レスポンス例

{
  "success": true,
  "sheets": [
    {
      "id": "abc123",
      "title": "プロジェクト計画",
      "content": {
        "col1": "<p>内容...</p>"
      },
      "createdAt": "2025-01-15T10:30:00Z",
      "updatedAt": "2025-01-15T14:22:00Z"
    }
  ],
  "total": 42
}

シートを検索

GET /sheets?q={キーワード}

キーワードでシートを検索します。タイトルと本文の両方が検索対象です。

リクエスト例

curl -X GET "https://sparksheets.ai/api/v1/sheets?q=プロジェクト" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

シートを取得

GET /sheets/{id}

特定のシートの内容を取得します。

リクエスト例

curl -X GET "https://sparksheets.ai/api/v1/sheets/abc123" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

シートを作成

POST /sheets

新しいシートを作成します。

リクエストボディ

名前必須説明
titlestringはいシートのタイトル
contentobjectいいえカラムごとのHTML内容 {"col1": "..."}
folderstringいいえフォルダ名
tagsarrayいいえタグの配列

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/sheets" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "新しいシート",
    "content": {
      "col1": "<p>内容をここに</p>"
    },
    "tags": ["work", "important"]
  }'

レスポンス例

{
  "success": true,
  "id": "xyz789",
  "title": "新しいシート"
}

シートを更新

PUT /sheets/{id}

既存のシートを更新します。

リクエストボディ

名前必須説明
titlestringいいえ新しいタイトル
contentobjectいいえ新しい内容
tagsarrayいいえ新しいタグ

リクエスト例

curl -X PUT "https://sparksheets.ai/api/v1/sheets/abc123" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "更新されたタイトル",
    "content": {
      "col1": "<p>更新された内容</p>"
    }
  }'

シートを削除

DELETE /sheets/{id}

シートをゴミ箱に移動します。

リクエスト例

curl -X DELETE "https://sparksheets.ai/api/v1/sheets/abc123" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

セッション管理

開発セッションの保存・検索・引き継ぎができます。Claude Codeなどの開発ツールとの連携に最適です。

セッション一覧を取得

GET /sessions

保存されたセッション一覧を取得します。

クエリパラメータ

名前説明
qstring検索キーワード
projectstringプロジェクト名でフィルタ
limitinteger取得件数(デフォルト: 20)

リクエスト例

curl -X GET "https://sparksheets.ai/api/v1/sessions?project=sparksheets" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

レスポンス例

{
  "success": true,
  "sessions": [
    {
      "id": "sess_abc123",
      "title": "API統一作業",
      "summary": "REST API、MCP、Webhooksの機能を統一...",
      "project": "sparksheets",
      "tags": ["api", "refactoring"],
      "createdAt": "2025-01-15T10:30:00Z"
    }
  ]
}

セッションを保存

POST /sessions

開発セッションの要約を保存します。

リクエストボディ

名前必須説明
titlestringはいセッションのタイトル
summarystringはいセッションの要約
projectstringいいえプロジェクト名
tagsarrayいいえタグの配列
files_changedarrayいいえ変更されたファイル一覧

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/sessions" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "API統一作業 Day 1",
    "summary": "REST APIエンドポイントを8個追加、MCP toolsを25個に拡張",
    "project": "sparksheets",
    "tags": ["api", "mcp"],
    "files_changed": ["api/v1/sessions", "api/v1/spark"]
  }'

引き継ぎシートを作成

POST /sessions/handover

次のセッション用の引き継ぎシートを自動生成します。

リクエストボディ

名前必須説明
session_idstringはい引き継ぎ元のセッションID
next_stepsarrayいいえ次にやるべきこと
notesstringいいえ引き継ぎメモ

ナレッジベース

エラー解決策やコードスニペットを保存・検索できます。チーム内でのナレッジ共有に最適です。

解決策を検索

GET /knowledge?type=solutions

過去に保存したエラー解決策を検索します。

クエリパラメータ

名前説明
typestringsolutions または snippets
qstring検索キーワード(エラーメッセージなど)
tagstringタグでフィルタ
limitinteger取得件数

リクエスト例

curl -X GET "https://sparksheets.ai/api/v1/knowledge?type=solutions&q=CORS" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"

レスポンス例

{
  "success": true,
  "solutions": [
    {
      "id": "sol_abc123",
      "title": "CORSエラーの解決方法",
      "error": "Access-Control-Allow-Origin header is missing",
      "content": "サーバー側でCORSヘッダーを追加する...",
      "language": "php",
      "tags": ["cors", "api"],
      "createdAt": "2025-01-10T09:00:00Z"
    }
  ]
}

解決策を保存

POST /knowledge?type=solutions

エラーの解決策を保存します。

リクエストボディ

名前必須説明
titlestringはい解決策のタイトル
errorstringいいえエラーメッセージ
contentstringはい解決方法の詳細
languagestringいいえプログラミング言語
tagsarrayいいえタグ

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/knowledge?type=solutions" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "PHPのタイムゾーン警告を解消",
    "error": "date(): It is not safe to rely on the system'\''s timezone settings",
    "content": "php.iniまたはスクリプト内でdate_default_timezone_set('\''Asia/Tokyo'\'');を設定する",
    "language": "php",
    "tags": ["php", "timezone"]
  }'

スニペットを保存・取得

GET POST /knowledge?type=snippets

よく使うコードスニペットを保存・取得します。使い方は解決策と同様です。

Spark(AI機能)

SparkSheetsのAI機能をAPIから実行できます。

Spark一覧を取得

GET /spark

利用可能なSpark(AIボタン)の一覧を取得します。

レスポンス例

{
  "success": true,
  "sparks": [
    {
      "id": "spark_summarize",
      "name": "要約",
      "description": "テキストを簡潔に要約します",
      "icon": "auto_awesome",
      "category": "writing",
      "type": "public"
    },
    {
      "id": "spark_custom_001",
      "name": "カスタムSpark",
      "description": "ユーザー作成のSpark",
      "icon": "star",
      "category": "custom",
      "type": "user"
    }
  ]
}

Sparkを実行

POST /spark

指定したSparkを実行してAI処理を行います。

リクエストボディ

名前必須説明
spark_idstringはいSparkのID
contentstringはい処理対象のテキスト
sheet_idstringいいえ関連シートID(Webhook通知用)

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/spark" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "spark_id": "spark_summarize",
    "content": "長いテキストをここに入力..."
  }'

レスポンス例

{
  "success": true,
  "spark_id": "spark_summarize",
  "spark_name": "要約",
  "result": "AIによる処理結果..."
}

テキストを翻訳

POST /spark?action=translate

テキストを指定した言語に翻訳します。

リクエストボディ

名前必須説明
contentstringはい翻訳するテキスト
target_langstringはい翻訳先言語コード(en, ja, zh, ko, es, fr, de, pt, it, ru)

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/spark?action=translate" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "こんにちは、世界!",
    "target_lang": "en"
  }'

レスポンス例

{
  "success": true,
  "target_lang": "en",
  "result": "Hello, world!"
}

統計・作業時間

使用量統計の取得や作業時間の記録ができます。

統計を取得

GET /stats

使用量の統計情報を取得します。

レスポンス例

{
  "success": true,
  "stats": {
    "sheets": {
      "total": 42,
      "created_this_month": 8
    },
    "sparks": {
      "executed_total": 156,
      "executed_this_month": 23
    },
    "worktime": {
      "total_hours": 120.5,
      "this_month_hours": 32.0
    },
    "sessions": {
      "total": 28,
      "this_month": 5
    },
    "recent_work_logs": [...]
  }
}

作業時間を記録

POST /stats?action=worktime

プロジェクトごとの作業時間を記録します。

リクエストボディ

名前必須説明
projectstringいいえプロジェクト名
hoursnumberはい作業時間(時間単位)
descriptionstringいいえ作業内容の説明
datestringいいえ日付(YYYY-MM-DD、デフォルト: 今日)

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/stats?action=worktime" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "sparksheets",
    "hours": 2.5,
    "description": "API実装とドキュメント作成"
  }'

Todo管理

タスクの管理・同期ができます。Claude CodeのTodoWriteと連携できます。

Todo一覧を取得

GET /todos

タスク一覧を取得します。

クエリパラメータ

名前説明
statusstringpending, in_progress, completed
projectstringプロジェクト名でフィルタ

レスポンス例

{
  "success": true,
  "todos": [
    {
      "id": "todo_abc123",
      "content": "REST APIドキュメントを拡張",
      "status": "in_progress",
      "project": "sparksheets",
      "priority": "high",
      "createdAt": 1705312200000
    }
  ]
}

Todoを同期

POST /todos

タスクを一括で同期します。既存のタスクは更新、新規は追加されます。

リクエストボディ

名前必須説明
todosarrayはいタスクの配列
projectstringいいえプロジェクト名

リクエスト例

curl -X POST "https://sparksheets.ai/api/v1/todos" \
  -H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "sparksheets",
    "todos": [
      {"content": "APIドキュメント作成", "status": "completed"},
      {"content": "Webhookテスト", "status": "in_progress"}
    ]
  }'

APIキー管理

APIキーの作成・一覧取得・削除ができます。

APIキー一覧を取得

GET /api-keys

発行済みのAPIキー一覧を取得します(キー本体は表示されません)。

レスポンス例

{
  "success": true,
  "api_keys": [
    {
      "id": "key_abc123",
      "name": "Production API",
      "prefix": "sk_1234...",
      "created_at": "2025-01-10T09:00:00Z",
      "last_used_at": "2025-01-15T14:30:00Z"
    }
  ]
}

APIキーを作成

POST /api-keys

新しいAPIキーを発行します。

リクエストボディ

名前必須説明
namestringはいキーの名前(用途がわかるように)

レスポンス例

{
  "success": true,
  "api_key": "sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "id": "key_abc123",
  "name": "Production API"
}
重要: api_key は一度しか表示されません。必ず安全な場所に保存してください。

APIキーを削除(無効化)

DELETE /api-keys/{id}

APIキーを無効化します。無効化されたキーは即座に使用できなくなります。

Webhook管理

Webhookエンドポイントの登録・管理ができます。詳細はWebhookドキュメントをご覧ください。

Webhook一覧を取得

GET /webhooks

Webhookを登録

POST /webhooks

リクエストボディ

名前必須説明
urlstringはいWebhook送信先URL(HTTPS必須)
eventsarrayはい購読するイベント
namestringいいえWebhookの名前

利用可能なイベント

  • sheet.created - シート作成時
  • sheet.updated - シート更新時
  • sheet.deleted - シート削除時
  • spark.executed - Spark実行時
  • session.saved - セッション保存時
  • session.handover - 引き継ぎ作成時
  • knowledge.saved - ナレッジ保存時

Webhookを削除

DELETE /webhooks/{id}

エラーレスポンス

エラー時は以下の形式でレスポンスが返されます。

{
  "success": false,
  "error": "エラーメッセージ"
}

HTTPステータスコード

コード 説明 対処方法
200 成功 -
400 リクエストが不正 必須パラメータを確認してください
401 認証エラー APIキーが有効か確認してください
403 権限エラー 他人のリソースへのアクセスは禁止されています
404 リソースが見つからない IDやパスを確認してください
429 レート制限超過 しばらく待ってから再試行してください
500 サーバーエラー 時間をおいて再試行するか、サポートにお問い合わせください

外部サービス連携

Zapierで使う

  1. Zapierで新しいZapを作成
  2. トリガーアプリを選択(Gmail、Slack、Notion等)
  3. アクションで「Webhooks by Zapier」を選択
  4. 「Custom Request」を選択
  5. 以下を設定:
    • Method: POST
    • URL: https://sparksheets.ai/api/v1/sheets
    • Headers: Authorization: Bearer sk_xxx
    • Body Type: JSON

n8nで使う

  1. n8nでワークフローを作成
  2. 「HTTP Request」ノードを追加
  3. 以下を設定:
    • Method: POST
    • URL: https://sparksheets.ai/api/v1/sheets
    • Authentication: Header Auth
    • Header Name: Authorization
    • Header Value: Bearer sk_xxx

活用例

Gmail → SparkSheets

特定のラベルがついたメールを自動でシートに保存

Slack → SparkSheets

特定チャンネルの投稿を議事録として保存

RSS → SparkSheets

気になるブログの更新を自動収集

GitHub → SparkSheets

PRやIssueの通知をシートに記録

パスワードを忘れた
または
または

パスワードリセット

登録したメールアドレスにリセットリンクを送信します