| data | object | Yes | |
| data.id | string (uuid) | Yes | |
| data.lifecycle | "queued" | "preflight" | "starting" | "ready" | "quiescing" | "stopping" | "closed" | "failed" | … | Yes | |
| data.control | "free" | "reserved" | "controlled" | "handoff_pending" | "revoked" | "uncertain" | Yes | |
| data.connectivity | "connected" | "reconnecting" | "offline" | "unknown" | Yes | |
| data.network | "unchecked" | "checking" | "healthy" | "unhealthy" | "unknown" | Yes | |
| data.sync | "clean" | "dirty" | "snapshotting" | "upload_pending" | "committing" | "committed" | "conflict" | "failed" | Yes | |
| data.fence | integer | Yes | Increments every time the profile is opened; stale reports carry an older fence (min -9007199254740991, max 9007199254740991) |
| data.revision | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.headless | boolean | Yes | |
| data.profile | object | Yes | |
| data.profile.id | string (uuid) | Yes | |
| data.profile.os | "windows" | "linux" | Yes | |
| data.profile.name | string | Yes | |
| data.profile.number | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.profile.group_id | string (uuid) | null | Yes | |
| data.profile.revision | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.device | object | Yes | |
| data.device.id | string (uuid) | Yes | |
| data.device.os | "windows" | "linux" | Yes | |
| data.device.name | string | Yes | |
| data.device.state | string | Yes | |
| data.device.freshness | string | Yes | |
| data.lease | object | Yes | Your app's hold (here `lease` is the app hold, not the machine's) |
| data.lease.session_id | string (uuid) | Yes | |
| data.lease.app_id | string | Yes | |
| data.lease.binding_id | string (uuid) | null | No | |
| data.lease.holder_ref | string | Yes | |
| data.lease.generation | integer | Yes | Send with renew and detach; an older generation is FENCED (min -9007199254740991, max 9007199254740991) |
| data.lease.state | "active" | "detached" | "lapsed" | "ended" | Yes | |
| data.lease.ttl_seconds | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.lease.keep_warm_seconds | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.lease.acquired_at | string (date-time) | Yes | |
| data.lease.expires_at | string (date-time) | Yes | |
| data.lease.keep_warm_until | string (date-time) | No | |
| data.lease.ended_reason | string | No | |
| data.egress | object | null | Yes | |
| data.egress.ip | string | Yes | |
| data.egress.checked_at | string (date-time) | Yes | |
| data.process | object | null | Yes | |
| data.process.pid | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.runtime | object | null | Yes | |
| data.runtime.channel | string | Yes | |
| data.runtime.version | string | Yes | |
| data.identity | object | null | Yes | What the browser actually reported (user agent, languages, timezone, …) |
| data.mismatches | array<object> | Yes | |
| data.remote | object | null | Yes | |
| data.proxy_id | string (uuid) | null | Yes | |
| data.run_id | string (uuid) | null | Yes | |
| data.run_target_id | string (uuid) | null | Yes | |
| data.started_by | string | null | Yes | |
| data.stopped_by | string | null | Yes | |
| data.stop_reason | string | null | Yes | |
| data.reason_code | string | null | Yes | |
| data.network_reason | string | null | Yes | |
| data.ready_ms | integer | null | Yes | |
| data.ready_at | string (date-time) | null | Yes | |
| data.closed_at | string (date-time) | null | Yes | |
| data.created_at | string (date-time) | Yes | |
| data.updated_at | string (date-time) | Yes | |
| data.attach_open | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.pending_changes | boolean | Yes | |
| data.profile_revision | integer | Yes | (min -9007199254740991, max 9007199254740991) |
| data.acquired | "opened" | "reused" | "renewed" | Yes | opened a new browser, reused one already open, or renewed your own current hold |
| correlation_id | string (uuid) | Yes | |
| replayed | boolean | No | true when this command_id was already applied and the stored receipt came back |