Skip to main content
4 min read

GET /replays/:websiteId/sessions

List recorded session replay sessions for a website. Returns session metadata including device information, duration, event counts, and timestamps. Supports pagination for browsing large session lists.

GET/api/external/v1/replays/:websiteId/sessions

List session replay recordings

Authentication

AuthenticationBash
curl -X GET 'https://api.zenovay.com/api/external/v1/replays/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sessions?limit=20' \
-H 'X-API-Key: YOUR_API_KEY'

Parameters

NameTypeRequiredDefaultDescription
websiteIdstring (path)Yes-The UUID of the website
limitinteger (query)No50Number of sessions to return (max: 200)
offsetinteger (query)No0Number of records to skip for pagination

This endpoint does not accept a range query parameter. Sessions are returned in reverse chronological order (newest first).

Response

Response (200 OK)JSON
{
"success": true,
"data": {
  "sessions": [
    {
      "id": "sr_1a2b3c4d-e5f6-7890-abcd-ef1234567890",
      "session_id": "sess_a1b2c3d4e5f6",
      "page_url": "/pricing",
      "device_type": "desktop",
      "browser": "Chrome",
      "os": "Windows",
      "country_code": "US",
      "duration_seconds": 245,
      "event_count": 87,
      "started_at": "2026-02-07T14:00:00.000Z",
      "ended_at": "2026-02-07T14:04:05.000Z"
    },
    {
      "id": "sr_2b3c4d5e-f6a7-8901-bcde-f12345678901",
      "session_id": "sess_b2c3d4e5f6a7",
      "page_url": "/",
      "device_type": "mobile",
      "browser": "Safari",
      "os": "iOS",
      "country_code": "GB",
      "duration_seconds": 132,
      "event_count": 43,
      "started_at": "2026-02-07T13:30:00.000Z",
      "ended_at": "2026-02-07T13:32:12.000Z"
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "has_more": true
  }
},
"timestamp": "2026-02-07T12:00:00.000Z"
}

Response Fields

FieldTypeDescription
sessionsarrayList of session replay records
sessions[].idstringUnique replay record identifier
sessions[].session_idstringSession identifier
sessions[].page_urlstringStarting page URL
sessions[].device_typestringDevice type: desktop, mobile, tablet
sessions[].browserstringBrowser name
sessions[].osstringOperating system
sessions[].country_codestringTwo-letter ISO country code
sessions[].duration_secondsnumberSession duration in seconds
sessions[].event_countnumberNumber of recorded events
sessions[].started_atstringISO 8601 session start time
sessions[].ended_atstringISO 8601 session end time
pagination.limitnumberRecords per page
pagination.offsetnumberCurrent offset
pagination.has_morebooleanWhether more records are available

TypeScript Interface

ReplaySessionsResponseTypeScript
interface ReplaySession {
id: string;
session_id: string;
page_url: string;
device_type: string;
browser: string;
os: string;
country_code: string;
duration_seconds: number;
event_count: number;
started_at: string;
ended_at: string;
}

interface ReplaySessionsResponse {
success: true;
data: {
  sessions: ReplaySession[];
  pagination: {
    limit: number;
    offset: number;
    has_more: boolean;
  };
};
timestamp: string;
}

HTTP Status Codes

Status CodeDescription
200Success
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - API key does not have access to this website
404Not Found - Website not found
429Too Many Requests - Rate limit exceeded
500Internal Server Error

Code Examples

cURLBash
curl -X GET 'https://api.zenovay.com/api/external/v1/replays/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sessions?limit=20&offset=0' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json'

Error Handling

Error Response (500 Internal Server Error)JSON
{
"success": false,
"error": {
  "message": "Failed to fetch replay sessions",
  "code": "INTERNAL_ERROR",
  "timestamp": "2026-02-07T12:00:00.000Z"
}
}
Was this page helpful?