스크린타임 상태 조회
`sessionId`의 현재 스크린타임 상태를 반환합니다. 보호자가 설정한 규칙, 오늘의 사용량, 그리고 지금 플레이를 허용해도 되는지 여부가 포함됩니다. 플랫폼은 세션 시작 시점과 `Screentime.LimitWarning`, `Screentime.LimitReached`, `Screentime.QuietHoursWarning`, `Screentime.QuietHoursReached` 웹훅을 받은 뒤에 보관 중인 상태를 갱신하기 위해 이 API를 호출합니다. 보호자가 해당 세션에 스크린타임을 설정하지 않았거나, 설정했더라도 적용을 비활성화한 경우에는 `{ "enabled": false }`를 반환합니다.
Authorization
api-key In: header
Query Parameters
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/screentime/get-state?sessionId=497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "enabled": true, "access": { "allowed": true }, "state": { "timeUsedTodayMinutes": 75, "continuousUsageMinutes": 30, "timeLimitTodayMinutes": 120, "timeRemainingTodayMinutes": 45, "dayResetsAt": "2026-06-25T00:00:00Z" }, "schedule": { "timezone": "UTC", "breakReminderIntervalMinutes": 45, "dailyLimits": [ { "day": "mon", "limitMinutes": 120 }, { "day": "tue", "limitMinutes": 120 }, { "day": "wed", "limitMinutes": 120 }, { "day": "thu", "limitMinutes": 120 }, { "day": "fri", "limitMinutes": 120 }, { "day": "sat", "limitMinutes": 180 }, { "day": "sun", "limitMinutes": 180 } ], "quietHours": [ { "name": "Bedtime", "days": [ "mon", "tue", "wed", "thu", "fri" ], "start": "21:00", "end": "07:00" } ] }}{ "error": "INVALID_INPUT", "errorMessage": "The request was missing a sessionId parameter."}스크린타임 종료 POST
`/screentime/start`로 시작한 활성 스크린타임을 종료합니다. 해당 시간은 오늘의 스크린타임 사용량에 반영되며, 현지 자정을 넘기는 경우 스케줄의 타임존을 기준으로 날짜별로 분할됩니다. 상태 의미: * `accepted` - `id`가 일치하는 스크린타임이 종료되었거나, 이미 종료된 스크린타임에 대한 재시도가 멱등적으로 처리되었습니다. `sessionId`에 활성 스크린타임이 없거나, 이 요청의 `id`가 활성 스크린타임을 시작한 `id`와 일치하지 않으면 `NOT_FOUND` 코드가 반환됩니다.
세션의 완료된 스크린타임 사용 구간 전송 POST
k-ID 세션에 대해 완료된 스크린타임 사용 구간을 하나 이상 전송합니다. 각 이벤트는 사용이 언제 시작되어 얼마나 이어졌는지를 기록합니다. 사용 시간을 사후에만 알 수 있는 경우(구간을 버퍼링해 주기적으로 업로드하는 백엔드, 종료 시점에 세션 합계를 보고하는 게임 엔진 등)에 이 API를 사용하십시오. 수락된 각 구간의 `durationSeconds`는 플레이어의 당일 스크린타임 합계에 더해집니다. 구간이 보호자가 설정한 타임존에서 자정을 넘기면 두 날짜로 분할되어, 각 날짜의 합계가 실제로 그날 발생한 사용량을 반영합니다. 이벤트는 각각 독립적으로 처리됩니다. 응답에는 이벤트별 상태가 담깁니다. * `accepted` - 구간이 기록되어 당일 합계에 반영되었습니다. 이미 수락된 `id`를 가진 이벤트를 다시 전송해도 안전한 무동작으로 처리되어 다시 `accepted`로 집계되고 중복 반영되지 않으므로, 네트워크 장애 후 재시도로 이중 집계되지 않습니다. * `rejected` - 구간이 검증을 통과하지 못했습니다. `reason`이 어떤 규칙에 걸렸는지 알려줍니다. 세션이 존재하지 않거나 무효화된 경우에는 배치 전체가 거부됩니다. 실시간 적용 신호(`Screentime.LimitWarning`, `Screentime.LimitReached`, `Screentime.BreakReminder`)는 이 API에서 발생하지 않습니다. 임계값을 넘는 시점에 이러한 웹훅이 발생해야 하는 연동에서는 `/screentime/start`와 `/screentime/end`를 사용하십시오.