ベース URL
すべてのAPIリクエストは以下のベースURLに送信してください。
すべてのリクエスト・レスポンスは application/json 形式です(CSV出力を除く)。
認証
認証が必要なエンドポイントでは、リクエストヘッダーに JWT Bearer トークンを含めてください。トークンは Supabase Auth を通じて取得できます。
ヘッダー形式:
Authorization: Bearer <your_jwt_token>
トークンはダッシュボードへのログイン時に Supabase Auth から発行されます。有効期限が切れた場合はリフレッシュトークンを使用して再取得してください。
認証不要エンドポイント (Public)
以下のエンドポイントは認証なしでアクセスできます。
説明
APIサーバーの稼働状態を確認します。監視ツールやロードバランサーのヘルスチェックに使用できます。
リクエスト例
# ヘルスチェック
curl https://api.misebanai.com/api/v1/health
レスポンス例 (200 OK)
{
"status": "ok",
"version": "1.0.0",
"timestamp": "2026-02-23T10:00:00Z"
}
説明
利用可能な料金プランとその詳細情報を取得します。
リクエスト例
curl https://api.misebanai.com/api/v1/pricing
レスポンス例 (200 OK)
{
"plans": [
{
"id": "free",
"name": "Free",
"price": 0,
"cameras": 1,
"retention_days": 7
},
{
"id": "starter",
"name": "Starter",
"price": 2980,
"cameras": 3,
"retention_days": 30
},
{
"id": "pro",
"name": "Pro",
"price": 9800,
"cameras": 10,
"retention_days": 90
}
]
}
説明
LINE Messaging API からの Webhook イベントを受信します。LINE Developers コンソールで Webhook URL として設定してください。リクエストは LINE の署名検証により認証されます。
説明
Stripe からの Webhook イベント(決済完了、サブスクリプション更新等)を受信します。Stripe の Webhook 署名検証により認証されます。
認証必須エンドポイント (JWT Required)
以下のエンドポイントにはすべて Authorization: Bearer <token> ヘッダーが必要です。
説明
カメラからキャプチャしたフレーム画像を送信し、AI分析(来客カウント、動線分析等)を実行します。
リクエスト例
# フレーム画像を送信 curl -X POST https://api.misebanai.com/api/v1/frames \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "camera_id": "cam_01", "image": "<base64_encoded_image>", "timestamp": "2026-02-23T10:30:00Z" }'
レスポンス例 (200 OK)
{
"frame_id": "frm_abc123",
"analysis": {
"people_count": 12,
"zone_occupancy": {
"entrance": 3,
"register": 5,
"aisle": 4
}
},
"processed_at": "2026-02-23T10:30:01Z"
}
説明
ログイン中の店舗に紐づく統計サマリー(本日の来客数、ピーク時間帯、前日比等)を返します。
リクエスト例
curl https://api.misebanai.com/api/v1/stores/me/stats \
-H "Authorization: Bearer <token>"
レスポンス例 (200 OK)
{
"today_visitors": 142,
"yesterday_visitors": 128,
"change_rate": 10.9,
"peak_hour": "13:00",
"avg_stay_minutes": 18.5,
"active_cameras": 3
}
説明
指定期間の日次レポートデータを取得します。クエリパラメータ from と to で期間を指定できます(YYYY-MM-DD形式)。
説明
店舗に登録されているカメラの一覧と各カメラのステータス(オンライン/オフライン、最終接続日時等)を返します。
説明
現在のプランにおけるリソース使用状況(カメラ数、ストレージ、API呼び出し回数等)を返します。
説明
店舗のアラート一覧を取得します。異常検知、カメラオフライン、来客急増等の通知が含まれます。
説明
未読アラートの件数を返します。ダッシュボードのバッジ表示等に使用できます。
説明
指定したアラートを既読にします。:alert_id にはアラートのIDを指定してください。
説明
すべての未読アラートを一括で既読にします。
説明
統計データをCSV形式でエクスポートします。Pro プラン以上で利用可能です。クエリパラメータ from、to で期間を指定できます。
リクエスト例
# CSV出力(Pro以上) curl https://api.misebanai.com/api/v1/stores/me/export/csv?from=2026-02-01&to=2026-02-23 \ -H "Authorization: Bearer <token>" \ -o report.csv
レスポンス例 (200 OK)
# Content-Type: text/csv
date,visitors,peak_hour,avg_stay_minutes
2026-02-01,135,12:00,17.2
2026-02-02,142,13:00,18.5
2026-02-03,98,11:00,15.8
...
エラー例 (403 Forbidden)
{
"error": "plan_upgrade_required",
"message": "CSV出力にはProプラン以上が必要です"
}
課金管理エンドポイント (Billing)
サブスクリプション管理と決済に関するエンドポイントです。すべて Authorization ヘッダーが必要です。
説明
Stripe Checkout セッションを作成し、決済URLを返します。クライアント側でこのURLにリダイレクトしてください。
説明
Stripe カスタマーポータルのURLを返します。利用者はポータルでプラン変更、支払い方法の更新、請求書の確認が可能です。
説明
現在のサブスクリプションの状態(プラン名、ステータス、次回請求日等)を返します。
エラーレスポンス
APIはエラー時に適切なHTTPステータスコードと以下の形式のJSONレスポンスを返します。
{
"error": "error_code",
"message": "人間が読めるエラーメッセージ"
}
主なステータスコード
400Bad Request - リクエストの形式が不正401Unauthorized - 認証トークンが無効または未指定403Forbidden - プランの制限によりアクセス不可404Not Found - リソースが見つからない429Too Many Requests - レート制限超過500Internal Server Error - サーバー内部エラー