---
title: "Retrieve recent sessions for a specific user"
method: GET
path: "/v1/users/{userId}/sessions"
---

# Retrieve recent sessions for a specific user

`GET /v1/users/{userId}/sessions`

Get the 100 most recent sessions for a specific user ID

## Path parameters

- `userId` string, required

## Response `200`

User sessions retrieved successfully

- object
  - `user_id` string — The user identifier
  - `sessions` object[] — List of session data
    - `session_id` string — Unique identifier for the session
    - `tags` string[] — Tags associated with this session
    - `risk_score` integer — Overall risk assessment score for the session (0-100)
    - `risk_explanation` string — Short explanation of the factors contributing to the risk score
    - `recommended_action` 'Auto-accept' | 'Accept with monitoring' | 'Manual review or require additional verification' | 'Auto-reject or high-priority review' | 'Unknown' — Suggested action based on the risk score
    - `user_logs` object[] — **Deprecated.** Chronological list of user actions recorded during the session. This field will be removed soon — use the [`/v1/sessions/{sessionId}/events`](/api-reference/events-data) endpoint instead.
      - `action` string — Description of the user action
      - `user_time` string — Human-readable timestamp in user's local timezone
      - `unix_timestamp` integer — Unix timestamp in milliseconds
    - `biometric_checks` object — Results of biometric analysis for bot detection
      - `agent_behavior` 'Detected' | 'Not detected' | 'Unknown' — ML model detected patterns across biometric data consistent with automated behavior
      - `programmatic_typing` 'Detected' | 'Not detected' | 'Unknown' — User had highly regular typing patterns typical of programmatic input
      - `teleporting_mouse` 'Detected' | 'Not detected' | 'Unknown' — User moved the mouse cursor to different page locations without transition
      - `no_corrections` 'Detected' | 'Not detected' | 'Unknown' — User made text entries without any corrections or backspaces
      - `all_pasted` 'Detected' | 'Not detected' | 'Unknown' — All text responses were pasted rather than typed by the user
      - `jump_scrolling` 'Detected' | 'Not detected' | 'Unknown' — User scrolls in large jumps with no intermediate or continuous scroll events
      - `centered_clicks` 'Detected' | 'Not detected' | 'Unknown' — User made perfectly centered clicks with no natural variation
      - `programmatic_clicking` 'Detected' | 'Not detected' | 'Unknown' — User clicks were made programmatically rather than through natural user interaction
      - `external_input` 'Detected' | 'Not detected' | 'Unknown' — User left the survey tab and pasted input after returning
    - `device_checks` object — Results of device and network checks for environment anomalies
      - `bot` 'Detected' | 'Not detected' | 'Unknown' — Browser execution context indicates an automated tool (e.g. Selenium or Playwright)
      - `virtual_machine` 'Detected' | 'Not detected' | 'Unknown' — Signals suggest the browser is running in a remote, virtualized, sandboxed, or software-rendered environment
      - `software_renderer` 'Detected' | 'Not detected' | 'Unknown' — Browser is using a software-based graphics renderer (e.g. SwiftShader or llvmpipe) instead of hardware acceleration, which may suggest a remote, virtualized, or headless browser environment
      - `vpn` 'Detected' | 'Not detected' | 'Unknown' — IP address belongs to a known VPN or hosting provider
      - `tor` 'Detected' | 'Not detected' | 'Unknown' — Connection is routed through a Tor exit node
      - `location_spoofing` 'Detected' | 'Not detected' | 'Unknown' — Browser-reported geolocation conflicts with IP-based location or appears simulated

---

[API](https://skmtc.dev/poh/apis/proof-of-human-api.md) · [All operations](https://skmtc.dev/poh/apis/proof-of-human-api/llms.txt) · [OpenAPI document](https://skmtc.dev/poh/apis/proof-of-human-api/revisions/80b092b396e7?raw)
