4 min de lectura
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/sessionsList 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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
websiteId | string (path) | Yes | - | The UUID of the website |
limit | integer (query) | No | 50 | Number of sessions to return (max: 200) |
offset | integer (query) | No | 0 | Number 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
| Field | Type | Description |
|---|---|---|
sessions | array | List of session replay records |
sessions[].id | string | Unique replay record identifier |
sessions[].session_id | string | Session identifier |
sessions[].page_url | string | Starting page URL |
sessions[].device_type | string | Device type: desktop, mobile, tablet |
sessions[].browser | string | Browser name |
sessions[].os | string | Operating system |
sessions[].country_code | string | Two-letter ISO country code |
sessions[].duration_seconds | number | Session duration in seconds |
sessions[].event_count | number | Number of recorded events |
sessions[].started_at | string | ISO 8601 session start time |
sessions[].ended_at | string | ISO 8601 session end time |
pagination.limit | number | Records per page |
pagination.offset | number | Current offset |
pagination.has_more | boolean | Whether 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 Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - API key does not have access to this website |
| 404 | Not Found - Website not found |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal 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"
}
}¿Fue útil esta página?