Reference

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

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/requests

Notes

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