Endpointsスクリーンタイム

スクリーンタイムを開始する

このプロダクトでアクティブなスクリーンタイムの開始を記録します。スクリーンタイムがアクティブなあいだ、k-IDはリアルタイムのWebhook(`Screentime.BreakReminder`、`Screentime.LimitWarning`、`Screentime.LimitReached`)を配信します。これらは利用終了時だけでなく、しきい値を超えた時点で発火します。 ステータスの意味: * `accepted` - スクリーンタイムが開始されたか、すでにアクティブなセッションに対する再試行が冪等に処理されました。 * `replaced` - この `sessionId` でスクリーンタイムがすでにアクティブなときに別の `id` が送信されました。直前のスクリーンタイムは自動的に終了され、その時間は当日のスクリーンタイム利用時間に加算されました。直前のスクリーンタイムが明示的に終了されなかった場合(アプリや端末の再起動後など)の復旧に利用できます。 1つの `sessionId` につき、同時にアクティブにできるスクリーンタイムは1件のみです。呼び出しはリアルタイムで行う必要があり、`timestamp` の値は5分以上前であってはなりません。

POST
/screentime/start
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/screentime/start" \  -H "Content-Type: application/json" \  -d '{    "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",    "id": "3f8c1d24-6b5e-4a07-9c2f-8d1e7a4b6c90",    "timestamp": "2026-06-24T16:00:00Z"  }'
{  "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",  "id": "3f8c1d24-6b5e-4a07-9c2f-8d1e7a4b6c90",  "status": "accepted",  "screentime": {    "counter": {      "timeUsedTodayMinutes": 45,      "timeLimitTodayMinutes": 120,      "timeRemainingTodayMinutes": 75,      "dayResetsAt": "2026-06-25T00:00:00Z"    }  }}

スクリーンタイムの上限解除を申請する POST

子どもが当日の時間を延長したい場合や、有効な休止時間(quiet hours)を回避したい場合に、子どもに代わって上限解除の申請を送信します。k-IDは申請を記録し、承認または拒否を求めて保護者に通知します。子どもごとに冪等で、同じ子どもからの別の申請が保留中のあいだに呼び出した場合は、2つ目を作成せず、その保留中の申請をそのまま返します。 判断結果は非同期に、`status: "granted" | "denied" | "expired"` を伴う1件の `Screentime.OverrideResult` Webhookとして届きます。Webhookのボディは `state` の下に `GET /screentime/get-state` と同じ形式のデータを含むため、プラットフォームは追加の取得を行わずに保持している状態を直接更新できます。24時間以内に解決されなかった申請は、`status: "expired"` でWebhookを発火します。

レコード上の販売者の決済情報を標準形式に正規化する POST

レコード上の販売者(merchant of record)から受け取った生の決済ペイロードを、プロバイダーに依存しない標準的な形式に正規化します。これにより、後続のトランザクションAPIが各プロバイダーの形式を知る必要がなくなります。 `provider` にレコード上の販売者を指定し、`data` にその生のペイロードを渡します。Xsollaの場合、そのペイロードは `payment` Webhookのボディであり、カードのBINを含んでいる必要があります。