## Fetch details of a participant **get** `/accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants/{participant_id}` Returns details of the given participant ID along with call statistics for the given session ID. ### Path Parameters - `account_id: string` The account identifier tag. - `app_id: string` The app identifier tag. - `session_id: string` - `participant_id: string` ### Query Parameters - `filters: optional "device_info" or "ip_information" or "precall_network_information" or 2 more` Comma separated list of filters to apply. Note that there must be no spaces between the filters. - `"device_info"` - `"ip_information"` - `"precall_network_information"` - `"events"` - `"quality_stats"` - `include_peer_events: optional boolean` if true, response includes all the peer events of participant. ### Returns - `data: optional object { participant }` - `participant: optional object { id, created_at, custom_participant_id, 9 more }` - `id: optional string` Participant ID. This maps to the corresponding peerId. - `created_at: optional string` timestamp when this participant was created. - `custom_participant_id: optional string` ID passed by client to create this participant. - `display_name: optional string` Display name of participant when joining the session. - `duration: optional number` number of minutes for which the participant was in the session. - `joined_at: optional string` timestamp at which participant joined the session. - `left_at: optional string` timestamp at which participant left the session. - `peer_stats: optional object { config, device_info, events, 3 more }` - `config: optional string` - `device_info: optional object { browser, browser_version, cpus, 9 more }` - `browser: optional string` - `browser_version: optional string` - `cpus: optional number` - `engine: optional string` - `is_mobile: optional boolean` - `memory: optional number` - `os: optional string` - `os_version: optional string` - `sdk_name: optional string` - `sdk_version: optional string` - `user_agent: optional string` - `webgl_support: optional string` - `events: optional array of object { timestamp, type }` - `timestamp: optional string` - `type: optional string` - `ip_information: optional object { city, country, ip_location, 5 more }` - `city: optional string` - `country: optional string` - `ip_location: optional string` - `ipv4: optional string` - `org: optional string` - `portal: optional string` - `region: optional string` - `timezone: optional string` - `precall_network_information: optional object { backend_rtt, effective_networktype, fractional_loss, 6 more }` - `backend_rtt: optional number` - `effective_networktype: optional string` - `fractional_loss: optional number` - `jitter: optional number` - `reflexive_connectivity: optional boolean` - `relay_connectivity: optional boolean` - `rtt: optional number` - `throughtput: optional number` - `turn_connectivity: optional boolean` - `status: optional string` - `preset_name: optional string` Name of the preset associated with the participant. - `quality_stats: optional array of object { audio_bandwidth, audio_packet_loss, audio_stats, 7 more }` - `audio_bandwidth: optional number` - `audio_packet_loss: optional number` - `audio_stats: optional array of object { concealment_events, jitter, packets_lost, 2 more }` - `concealment_events: optional number` - `jitter: optional number` - `packets_lost: optional number` - `quality: optional number` - `timestamp: optional string` - `average_quality: optional number` - `end: optional string` - `peer_id: optional string` - `start: optional string` - `video_bandwidth: optional number` - `video_packet_loss: optional number` - `video_stats: optional array of object { frame_height, frame_width, frames_dropped, 5 more }` - `frame_height: optional number` - `frame_width: optional number` - `frames_dropped: optional number` - `frames_per_second: optional number` - `jitter: optional number` - `packets_lost: optional number` - `quality: optional number` - `timestamp: optional string` - `updated_at: optional string` timestamp when this participant's data was last updated. - `user_id: optional string` User id for this participant. - `success: optional boolean` ### Example ```http curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/sessions/$SESSION_ID/participants/$PARTICIPANT_ID \ -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" ``` #### Response ```json { "data": { "participant": { "id": "id", "created_at": "created_at", "custom_participant_id": "custom_participant_id", "display_name": "display_name", "duration": 0, "joined_at": "joined_at", "left_at": "left_at", "peer_stats": { "config": "config", "device_info": { "browser": "browser", "browser_version": "browser_version", "cpus": 0, "engine": "engine", "is_mobile": true, "memory": 0, "os": "os", "os_version": "os_version", "sdk_name": "sdk_name", "sdk_version": "sdk_version", "user_agent": "user_agent", "webgl_support": "webgl_support" }, "events": [ { "timestamp": "timestamp", "type": "type" } ], "ip_information": { "city": "city", "country": "country", "ip_location": "ip_location", "ipv4": "ipv4", "org": "org", "portal": "portal", "region": "region", "timezone": "timezone" }, "precall_network_information": { "backend_rtt": 0, "effective_networktype": "effective_networktype", "fractional_loss": 0, "jitter": 0, "reflexive_connectivity": true, "relay_connectivity": true, "rtt": 0, "throughtput": 0, "turn_connectivity": true }, "status": "status" }, "preset_name": "preset_name", "quality_stats": [ { "audio_bandwidth": 0, "audio_packet_loss": 0, "audio_stats": [ { "concealment_events": 0, "jitter": 0, "packets_lost": 0, "quality": 0, "timestamp": "timestamp" } ], "average_quality": 0, "end": "end", "peer_id": "peer_id", "start": "start", "video_bandwidth": 0, "video_packet_loss": 0, "video_stats": [ { "frame_height": 0, "frame_width": 0, "frames_dropped": 0, "frames_per_second": 0, "jitter": 0, "packets_lost": 0, "quality": 0, "timestamp": "timestamp" } ] } ], "updated_at": "updated_at", "user_id": "user_id" } }, "success": true } ```