screentime/requests
Subscribable resource: pending and recently-resolved screen-time unlock requests for one kid.
The resource
URI: sprout://child/{childId}/screentime/requests
Required scope: screentime:read
The current set of pending and recently-resolved screen-time unlock requests for one kid. Subscribers receive a push within ~1 second of any lifecycle event.
When it pushes
- Kid creates a new screen-time unlock request from the kid app.
- Parent approves a pending request.
- Parent denies a pending request.
Push payload
The notification frame on the SSE stream:
JSON-RPC
{
"jsonrpc": "2.0",
"method": "notifications/resources/updated",
"params": { "uri": "sprout://child//screentime/requests" }
} The frame only names the URI that changed. To get the new state, your agent calls resources/read <uri>.
Read shape
Calling resources/read sprout://child/{childId}/screentime/requests returns:
JSON
{
"requests": [
{
"requestId": "uuid",
"childId": "uuid",
"durationMinutes": 30,
"reason": "finished my homework",
"status": "pending" | "approved" | "denied",
"createdAt": "2026-05-23T14:02:00Z",
"resolvedAt": null | "2026-05-23T14:05:00Z",
"grantedMinutes": null | 30
}
]
}Subscribe / unsubscribe
Shell
resources/subscribe sprout://child/{childId}/screentime/requests
# ... server holds the SSE stream open, pushes on every change ...
resources/unsubscribe sprout://child/{childId}/screentime/requestsNotes
Pair with screentime.review_request to act on incoming requests. Your agent can subscribe, get a push, read, decide, and call review_request in one round trip.
See also
- Subscriptions overview: the shared semantics and the full catalog.
- Model: Pull, push, realtime.