REST API リファレンス
SparkSheetsのすべての機能にプログラムからアクセス。Zapier、n8n、Make(旧Integromat)などのノーコードツールとも連携できます。
ブラウザ上でAPIをインタラクティブに試せます。Playgroundを開く →
認証
REST APIはBearer認証を使用します。すべてのリクエストにAPIキーが必要です。
APIキーの取得
- SparkSheetsにログイン
- 右上のメニュー → 「設定」を開く
- 「API」タブを選択
- 「新しいAPIキーを発行」をクリック
- キー名を入力して作成
- 表示されたキー(
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 が返されます。
シート操作
シートの作成・取得・更新・削除・検索ができます。
シート一覧を取得
/sheets
自分のシート一覧を取得します。
クエリパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | 取得件数(デフォルト: 50、最大: 100) |
offset | integer | いいえ | オフセット(ページネーション用) |
リクエスト例
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
}
シートを検索
/sheets?q={キーワード}
キーワードでシートを検索します。タイトルと本文の両方が検索対象です。
リクエスト例
curl -X GET "https://sparksheets.ai/api/v1/sheets?q=プロジェクト" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"
シートを取得
/sheets/{id}
特定のシートの内容を取得します。
リクエスト例
curl -X GET "https://sparksheets.ai/api/v1/sheets/abc123" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"
シートを作成
/sheets
新しいシートを作成します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | シートのタイトル |
content | object | いいえ | カラムごとのHTML内容 {"col1": "..."} |
folder | string | いいえ | フォルダ名 |
tags | array | いいえ | タグの配列 |
リクエスト例
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": "新しいシート"
}
シートを更新
/sheets/{id}
既存のシートを更新します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | いいえ | 新しいタイトル |
content | object | いいえ | 新しい内容 |
tags | array | いいえ | 新しいタグ |
リクエスト例
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>"
}
}'
シートを削除
/sheets/{id}
シートをゴミ箱に移動します。
リクエスト例
curl -X DELETE "https://sparksheets.ai/api/v1/sheets/abc123" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxxxxx"
セッション管理
開発セッションの保存・検索・引き継ぎができます。Claude Codeなどの開発ツールとの連携に最適です。
セッション一覧を取得
/sessions
保存されたセッション一覧を取得します。
クエリパラメータ
| 名前 | 型 | 説明 |
|---|---|---|
q | string | 検索キーワード |
project | string | プロジェクト名でフィルタ |
limit | integer | 取得件数(デフォルト: 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"
}
]
}
セッションを保存
/sessions
開発セッションの要約を保存します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | セッションのタイトル |
summary | string | はい | セッションの要約 |
project | string | いいえ | プロジェクト名 |
tags | array | いいえ | タグの配列 |
files_changed | array | いいえ | 変更されたファイル一覧 |
リクエスト例
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"]
}'
引き継ぎシートを作成
/sessions/handover
次のセッション用の引き継ぎシートを自動生成します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
session_id | string | はい | 引き継ぎ元のセッションID |
next_steps | array | いいえ | 次にやるべきこと |
notes | string | いいえ | 引き継ぎメモ |
ナレッジベース
エラー解決策やコードスニペットを保存・検索できます。チーム内でのナレッジ共有に最適です。
解決策を検索
/knowledge?type=solutions
過去に保存したエラー解決策を検索します。
クエリパラメータ
| 名前 | 型 | 説明 |
|---|---|---|
type | string | solutions または snippets |
q | string | 検索キーワード(エラーメッセージなど) |
tag | string | タグでフィルタ |
limit | integer | 取得件数 |
リクエスト例
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"
}
]
}
解決策を保存
/knowledge?type=solutions
エラーの解決策を保存します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | 解決策のタイトル |
error | string | いいえ | エラーメッセージ |
content | string | はい | 解決方法の詳細 |
language | string | いいえ | プログラミング言語 |
tags | array | いいえ | タグ |
リクエスト例
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"]
}'
スニペットを保存・取得
/knowledge?type=snippets
よく使うコードスニペットを保存・取得します。使い方は解決策と同様です。
Spark(AI機能)
SparkSheetsのAI機能をAPIから実行できます。
Spark一覧を取得
/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を実行
/spark
指定したSparkを実行してAI処理を行います。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
spark_id | string | はい | SparkのID |
content | string | はい | 処理対象のテキスト |
sheet_id | string | いいえ | 関連シート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による処理結果..."
}
テキストを翻訳
/spark?action=translate
テキストを指定した言語に翻訳します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
content | string | はい | 翻訳するテキスト |
target_lang | string | はい | 翻訳先言語コード(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!"
}
統計・作業時間
使用量統計の取得や作業時間の記録ができます。
統計を取得
/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": [...]
}
}
作業時間を記録
/stats?action=worktime
プロジェクトごとの作業時間を記録します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
project | string | いいえ | プロジェクト名 |
hours | number | はい | 作業時間(時間単位) |
description | string | いいえ | 作業内容の説明 |
date | string | いいえ | 日付(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一覧を取得
/todos
タスク一覧を取得します。
クエリパラメータ
| 名前 | 型 | 説明 |
|---|---|---|
status | string | pending, in_progress, completed |
project | string | プロジェクト名でフィルタ |
レスポンス例
{
"success": true,
"todos": [
{
"id": "todo_abc123",
"content": "REST APIドキュメントを拡張",
"status": "in_progress",
"project": "sparksheets",
"priority": "high",
"createdAt": 1705312200000
}
]
}
Todoを同期
/todos
タスクを一括で同期します。既存のタスクは更新、新規は追加されます。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
todos | array | はい | タスクの配列 |
project | string | いいえ | プロジェクト名 |
リクエスト例
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キー一覧を取得
/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キーを作成
/api-keys
新しいAPIキーを発行します。
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | はい | キーの名前(用途がわかるように) |
レスポンス例
{
"success": true,
"api_key": "sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"id": "key_abc123",
"name": "Production API"
}
api_key は一度しか表示されません。必ず安全な場所に保存してください。
APIキーを削除(無効化)
/api-keys/{id}
APIキーを無効化します。無効化されたキーは即座に使用できなくなります。
Webhook管理
Webhookエンドポイントの登録・管理ができます。詳細はWebhookドキュメントをご覧ください。
Webhook一覧を取得
/webhooks
Webhookを登録
/webhooks
リクエストボディ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | はい | Webhook送信先URL(HTTPS必須) |
events | array | はい | 購読するイベント |
name | string | いいえ | Webhookの名前 |
利用可能なイベント
sheet.created- シート作成時sheet.updated- シート更新時sheet.deleted- シート削除時spark.executed- Spark実行時session.saved- セッション保存時session.handover- 引き継ぎ作成時knowledge.saved- ナレッジ保存時
Webhookを削除
/webhooks/{id}
エラーレスポンス
エラー時は以下の形式でレスポンスが返されます。
{
"success": false,
"error": "エラーメッセージ"
}
HTTPステータスコード
| コード | 説明 | 対処方法 |
|---|---|---|
200 |
成功 | - |
400 |
リクエストが不正 | 必須パラメータを確認してください |
401 |
認証エラー | APIキーが有効か確認してください |
403 |
権限エラー | 他人のリソースへのアクセスは禁止されています |
404 |
リソースが見つからない | IDやパスを確認してください |
429 |
レート制限超過 | しばらく待ってから再試行してください |
500 |
サーバーエラー | 時間をおいて再試行するか、サポートにお問い合わせください |
外部サービス連携
Zapierで使う
- Zapierで新しいZapを作成
- トリガーアプリを選択(Gmail、Slack、Notion等)
- アクションで「Webhooks by Zapier」を選択
- 「Custom Request」を選択
- 以下を設定:
- Method: POST
- URL:
https://sparksheets.ai/api/v1/sheets - Headers:
Authorization: Bearer sk_xxx - Body Type: JSON
n8nで使う
- n8nでワークフローを作成
- 「HTTP Request」ノードを追加
- 以下を設定:
- 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の通知をシートに記録