Screentime.LimitWarning
Emitted when a player is approaching today's screentime limit, while they can still act on it. Warn the player so they can find a save point or wrap up, rather than being cut off mid-activity.
k-ID delivers Screentime.LimitWarning only to endpoints subscribed to it, and drops it for the rest without a delivery attempt or an error. Select it for your endpoint on the product's Developer Settings page. See Before you start.
k-ID sends a warning at 15 minutes remaining and again at 5 minutes remaining. Both thresholds are fixed in this version and aren't configurable per product.
Warning before the wall is a designed behavior, not a side effect. The pair to handle together is this event and Screentime.LimitReached: treat the warning as tell the player and the limit-reached event as the limit now applies.
/screentime/pushWarnings are scheduled when you call /screentime/start and canceled on /screentime/end, so they only fire for products that report session boundaries in real time. /screentime/push still counts usage toward the daily total, but fires no warnings.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
eventType | string | yes | Always "Screentime.LimitWarning" |
data | object | yes | Limit warning data |
data.sessionId | string (UUID) | yes | Session ID the warning is for |
data.productId | number | yes | Product ID |
data.timeUsedSeconds | number | yes | Today's usage in seconds, including the time in the session currently in flight |
data.timeLimitSeconds | number | yes | Today's daily limit in seconds |
data.timeRemainingSeconds | number | yes | Seconds left before the limit, clamped at 0 |
Read timeRemainingSeconds to tell the two warnings apart rather than counting events. It's the measured value at fire time, so it's close to but not always exactly 900 or 300.
Example
{
"eventType": "Screentime.LimitWarning",
"data": {
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"timeUsedSeconds": 6300,
"timeLimitSeconds": 7200,
"timeRemainingSeconds": 900
}
}
When it doesn't fire
- The parent has no screentime schedule, or the schedule is disabled.
- No daily limit is set for today's weekday in the schedule's time zone.
- The threshold already fired for this player today.