세션의 활동 기록 전송
제품에서 선언한 활동 유형에 대해 활동 기록을 일괄 전송합니다. 기록은 건별로 검증되며, 응답에는 기록별 상태(`accepted` 또는 사유가 포함된 `rejected`)가 담깁니다. 이미 수락된 `id`를 가진 기록을 다시 전송해도 안전한 무동작으로 처리되어 다시 `accepted`로 집계되고 중복 저장되지 않습니다. 세션이 존재하지 않거나 무효화된 경우에는 배치 전체가 거부됩니다.
Authorization
api-key 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/activity/push" \ -H "Content-Type: application/json" \ -d '{ "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672", "records": [ { "id": "7c3e0c6e-9c2a-4f1e-bd2b-1f9a3c6d8e10", "type": "2f9a1c84-6b3e-4d52-9f08-1a7c3e5d9b20", "value": { "seconds": 1800 }, "timestamp": "2026-06-24T14:32:05Z" }, { "id": "a4f2b8d1-3e7c-4a90-8b6f-2c5d9e0a1b34", "type": "8d3b6e10-4f29-4a71-bc52-9e0a1c7d3f64", "value": { "amount": 999, "currency": "USD" }, "timestamp": "2026-06-24T15:02:05Z" } ] }'{ "sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672", "accepted": 2, "rejected": 0, "records": [ { "id": "7c3e0c6e-9c2a-4f1e-bd2b-1f9a3c6d8e10", "status": "accepted" }, { "id": "a4f2b8d1-3e7c-4a90-8b6f-2c5d9e0a1b34", "status": "accepted" } ]}{ "error": "INVALID_INPUT", "errorMessage": "The request was missing a sessionId parameter."}신뢰할 수 있는 성인 인증 수행 POST
신뢰할 수 있는 성인 인증을 시작하고 iframe에 표시할 호스팅 URL을 반환합니다. 이는 구체적인 연령을 확정하는 것이 아니라, 인증을 완료한 사람이 미성년자를 대신해 행동할 수 있는 성인임을 확인하는 것입니다. 따라서 연령 조건을 받지 않습니다. 플레이어는 반환된 URL에서 인증을 완료합니다. 결과는 `/age-verification/get-status` 또는 웹훅으로 확인하십시오.
스크린타임 종료 POST
`/screentime/start`로 시작한 활성 스크린타임을 종료합니다. 해당 시간은 오늘의 스크린타임 사용량에 반영되며, 현지 자정을 넘기는 경우 스케줄의 타임존을 기준으로 날짜별로 분할됩니다. 상태 의미: * `accepted` - `id`가 일치하는 스크린타임이 종료되었거나, 이미 종료된 스크린타임에 대한 재시도가 멱등적으로 처리되었습니다. `sessionId`에 활성 스크린타임이 없거나, 이 요청의 `id`가 활성 스크린타임을 시작한 `id`와 일치하지 않으면 `NOT_FOUND` 코드가 반환됩니다.