> For the complete documentation index, see [llms.txt](https://docs.screendesk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.screendesk.io/api/screendesk-api/api-reference/recordings.md).

# Recordings

## List recordings

> Returns a paginated list of recordings. Members see only their own recordings; admins see all recordings in the account.<br>

```json
{"openapi":"3.0.3","info":{"title":"Screendesk API v2","version":"2.0.0"},"servers":[{"url":"https://app.screendesk.io/api/v2","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API token obtained from Screendesk account settings"}},"schemas":{"Pagination":{"type":"object","description":"Pagination metadata","properties":{"count":{"type":"integer","description":"Total number of records"},"page":{"type":"integer","description":"Current page number"},"items":{"type":"integer","description":"Number of items per page"},"pages":{"type":"integer","description":"Total number of pages"},"next_page":{"type":"integer","nullable":true,"description":"Next page number (absent if on last page)"},"prev_page":{"type":"integer","nullable":true,"description":"Previous page number (absent if on first page)"},"last_page":{"type":"integer","description":"Last page number"},"from":{"type":"integer","description":"Index of the first item on this page"},"to":{"type":"integer","description":"Index of the last item on this page"}}},"Recording":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"metadata":{"$ref":"#/components/schemas/RecordingMetadata"},"technical_details":{"$ref":"#/components/schemas/TechnicalDetails"},"console_logs":{"type":"string","nullable":true,"description":"Raw console log output captured during the recording"},"customer":{"$ref":"#/components/schemas/Customer"},"user":{"$ref":"#/components/schemas/RecordingUser"},"room_insights":{"nullable":true,"description":"Live call session insights. Null for non-live recordings.","allOf":[{"$ref":"#/components/schemas/RoomInsights"}]}}},"RecordingMetadata":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"duration":{"type":"integer","nullable":true,"description":"Recording duration in seconds"},"impressions_count":{"type":"integer","description":"Number of times the recording has been viewed"},"recording_type":{"type":"string","enum":["Received","Sent","Live"],"description":"The type of recording"},"recording_source":{"type":"string","description":"Human-readable source label (e.g. \"Zendesk Ticket\", \"Intercom Operator\")"},"url":{"type":"string","format":"uri","description":"Public URL to view the recording"},"helpdesk_info":{"$ref":"#/components/schemas/HelpdeskInfo"}}},"HelpdeskInfo":{"type":"object","description":"Information about the associated helpdesk ticket or conversation","properties":{"platform":{"type":"string","enum":["zendesk","intercom","freshdesk","freshdesk_chat","helpscout","jira","screendesk app"]},"conversation_id":{"type":"string","nullable":true},"ticket_id":{"type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"operator_id":{"type":"string","nullable":true},"customer_id":{"type":"string","nullable":true},"issue_id":{"type":"string","nullable":true}}},"TechnicalDetails":{"type":"object","properties":{"vendor":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"isp":{"type":"string","nullable":true}}},"Customer":{"type":"object","properties":{"email":{"type":"string","format":"email","nullable":true}}},"RecordingUser":{"type":"object","nullable":true,"description":"The agent/user who owns this recording. Null if no user is associated.","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"}}},"RoomInsights":{"type":"object","description":"Session-level insights for live video calls","properties":{"started_at":{"type":"string","format":"date-time","nullable":true},"ended_at":{"type":"string","format":"date-time","nullable":true},"duration":{"type":"integer","nullable":true,"description":"Call duration in seconds (inferred from started_at and ended_at)"},"total_participant_minutes":{"type":"number","nullable":true},"total_unique_participants":{"type":"integer","nullable":true},"participants_insights":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ParticipantInsight"}}}},"ParticipantInsight":{"type":"object","properties":{"participant_id":{"type":"string"},"display_name":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"browser":{"type":"string","nullable":true},"os":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"user_agent":{"type":"string","nullable":true},"joined_at":{"type":"string","format":"date-time","nullable":true},"left_at":{"type":"string","format":"date-time","nullable":true}}},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Invalid or missing API token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"API access not enabled or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/recordings":{"get":{"operationId":"listRecordings","summary":"List recordings","description":"Returns a paginated list of recordings. Members see only their own recordings; admins see all recordings in the account.\n","tags":["Recordings"],"parameters":[{"name":"page","in":"query","description":"Page number (defaults to 1)","required":false,"schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"A paginated list of recordings","content":{"application/json":{"schema":{"type":"object","properties":{"pagination":{"$ref":"#/components/schemas/Pagination"},"records":{"type":"array","items":{"$ref":"#/components/schemas/Recording"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}}}}
```

## Get a recording

> Returns a single recording by UUID.

```json
{"openapi":"3.0.3","info":{"title":"Screendesk API v2","version":"2.0.0"},"servers":[{"url":"https://app.screendesk.io/api/v2","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API token obtained from Screendesk account settings"}},"parameters":{"RecordingUUID":{"name":"uuid","in":"path","required":true,"description":"The recording's UUID","schema":{"type":"string","format":"uuid"}}},"schemas":{"Recording":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"metadata":{"$ref":"#/components/schemas/RecordingMetadata"},"technical_details":{"$ref":"#/components/schemas/TechnicalDetails"},"console_logs":{"type":"string","nullable":true,"description":"Raw console log output captured during the recording"},"customer":{"$ref":"#/components/schemas/Customer"},"user":{"$ref":"#/components/schemas/RecordingUser"},"room_insights":{"nullable":true,"description":"Live call session insights. Null for non-live recordings.","allOf":[{"$ref":"#/components/schemas/RoomInsights"}]}}},"RecordingMetadata":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"duration":{"type":"integer","nullable":true,"description":"Recording duration in seconds"},"impressions_count":{"type":"integer","description":"Number of times the recording has been viewed"},"recording_type":{"type":"string","enum":["Received","Sent","Live"],"description":"The type of recording"},"recording_source":{"type":"string","description":"Human-readable source label (e.g. \"Zendesk Ticket\", \"Intercom Operator\")"},"url":{"type":"string","format":"uri","description":"Public URL to view the recording"},"helpdesk_info":{"$ref":"#/components/schemas/HelpdeskInfo"}}},"HelpdeskInfo":{"type":"object","description":"Information about the associated helpdesk ticket or conversation","properties":{"platform":{"type":"string","enum":["zendesk","intercom","freshdesk","freshdesk_chat","helpscout","jira","screendesk app"]},"conversation_id":{"type":"string","nullable":true},"ticket_id":{"type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"operator_id":{"type":"string","nullable":true},"customer_id":{"type":"string","nullable":true},"issue_id":{"type":"string","nullable":true}}},"TechnicalDetails":{"type":"object","properties":{"vendor":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"isp":{"type":"string","nullable":true}}},"Customer":{"type":"object","properties":{"email":{"type":"string","format":"email","nullable":true}}},"RecordingUser":{"type":"object","nullable":true,"description":"The agent/user who owns this recording. Null if no user is associated.","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"}}},"RoomInsights":{"type":"object","description":"Session-level insights for live video calls","properties":{"started_at":{"type":"string","format":"date-time","nullable":true},"ended_at":{"type":"string","format":"date-time","nullable":true},"duration":{"type":"integer","nullable":true,"description":"Call duration in seconds (inferred from started_at and ended_at)"},"total_participant_minutes":{"type":"number","nullable":true},"total_unique_participants":{"type":"integer","nullable":true},"participants_insights":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ParticipantInsight"}}}},"ParticipantInsight":{"type":"object","properties":{"participant_id":{"type":"string"},"display_name":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"browser":{"type":"string","nullable":true},"os":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"user_agent":{"type":"string","nullable":true},"joined_at":{"type":"string","format":"date-time","nullable":true},"left_at":{"type":"string","format":"date-time","nullable":true}}},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Invalid or missing API token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"API access not enabled or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/recordings/{uuid}":{"get":{"operationId":"getRecording","summary":"Get a recording","description":"Returns a single recording by UUID.","tags":["Recordings"],"parameters":[{"$ref":"#/components/parameters/RecordingUUID"}],"responses":{"200":{"description":"Recording details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recording"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
```

## Update a recording

> Updates a recording's title, summary, or description. Admin only.

```json
{"openapi":"3.0.3","info":{"title":"Screendesk API v2","version":"2.0.0"},"servers":[{"url":"https://app.screendesk.io/api/v2","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API token obtained from Screendesk account settings"}},"parameters":{"RecordingUUID":{"name":"uuid","in":"path","required":true,"description":"The recording's UUID","schema":{"type":"string","format":"uuid"}}},"schemas":{"Recording":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"metadata":{"$ref":"#/components/schemas/RecordingMetadata"},"technical_details":{"$ref":"#/components/schemas/TechnicalDetails"},"console_logs":{"type":"string","nullable":true,"description":"Raw console log output captured during the recording"},"customer":{"$ref":"#/components/schemas/Customer"},"user":{"$ref":"#/components/schemas/RecordingUser"},"room_insights":{"nullable":true,"description":"Live call session insights. Null for non-live recordings.","allOf":[{"$ref":"#/components/schemas/RoomInsights"}]}}},"RecordingMetadata":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"duration":{"type":"integer","nullable":true,"description":"Recording duration in seconds"},"impressions_count":{"type":"integer","description":"Number of times the recording has been viewed"},"recording_type":{"type":"string","enum":["Received","Sent","Live"],"description":"The type of recording"},"recording_source":{"type":"string","description":"Human-readable source label (e.g. \"Zendesk Ticket\", \"Intercom Operator\")"},"url":{"type":"string","format":"uri","description":"Public URL to view the recording"},"helpdesk_info":{"$ref":"#/components/schemas/HelpdeskInfo"}}},"HelpdeskInfo":{"type":"object","description":"Information about the associated helpdesk ticket or conversation","properties":{"platform":{"type":"string","enum":["zendesk","intercom","freshdesk","freshdesk_chat","helpscout","jira","screendesk app"]},"conversation_id":{"type":"string","nullable":true},"ticket_id":{"type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"operator_id":{"type":"string","nullable":true},"customer_id":{"type":"string","nullable":true},"issue_id":{"type":"string","nullable":true}}},"TechnicalDetails":{"type":"object","properties":{"vendor":{"type":"string","nullable":true},"ip_address":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"network_type":{"type":"string","nullable":true},"isp":{"type":"string","nullable":true}}},"Customer":{"type":"object","properties":{"email":{"type":"string","format":"email","nullable":true}}},"RecordingUser":{"type":"object","nullable":true,"description":"The agent/user who owns this recording. Null if no user is associated.","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"}}},"RoomInsights":{"type":"object","description":"Session-level insights for live video calls","properties":{"started_at":{"type":"string","format":"date-time","nullable":true},"ended_at":{"type":"string","format":"date-time","nullable":true},"duration":{"type":"integer","nullable":true,"description":"Call duration in seconds (inferred from started_at and ended_at)"},"total_participant_minutes":{"type":"number","nullable":true},"total_unique_participants":{"type":"integer","nullable":true},"participants_insights":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ParticipantInsight"}}}},"ParticipantInsight":{"type":"object","properties":{"participant_id":{"type":"string"},"display_name":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"browser":{"type":"string","nullable":true},"os":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"device_type":{"type":"string","nullable":true},"user_agent":{"type":"string","nullable":true},"joined_at":{"type":"string","format":"date-time","nullable":true},"left_at":{"type":"string","format":"date-time","nullable":true}}},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Invalid or missing API token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"API access not enabled or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/recordings/{uuid}":{"patch":{"operationId":"updateRecording","summary":"Update a recording","description":"Updates a recording's title, summary, or description. Admin only.","tags":["Recordings"],"parameters":[{"$ref":"#/components/parameters/RecordingUUID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recording":{"type":"object","properties":{"title":{"type":"string","description":"The recording title"},"summary":{"type":"string","nullable":true,"description":"A short summary"},"description":{"type":"string","nullable":true,"description":"A detailed description"}}}}}}}},"responses":{"200":{"description":"Updated recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recording"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Download a recording video

> Streams the best available video file for a recording through the Screendesk API.\
> The response body is the video binary, not JSON.\
> \
> Screendesk returns the edited file when available, then the processed file, and finally the original upload.\
> Use this endpoint for API/backend downloads such as \`curl\`, scripts, or server-side integrations.<br>

```json
{"openapi":"3.0.3","info":{"title":"Screendesk API v2","version":"2.0.0"},"servers":[{"url":"https://app.screendesk.io/api/v2","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API token obtained from Screendesk account settings"}},"parameters":{"RecordingUUID":{"name":"uuid","in":"path","required":true,"description":"The recording's UUID","schema":{"type":"string","format":"uuid"}}},"responses":{"Unauthorized":{"description":"Invalid or missing API token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"API access not enabled or insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}},"required":["error"]}}},"paths":{"/recordings/{uuid}/download":{"get":{"operationId":"downloadRecording","summary":"Download a recording video","description":"Streams the best available video file for a recording through the Screendesk API.\nThe response body is the video binary, not JSON.\n\nScreendesk returns the edited file when available, then the processed file, and finally the original upload.\nUse this endpoint for API/backend downloads such as `curl`, scripts, or server-side integrations.\n","tags":["Recordings"],"parameters":[{"$ref":"#/components/parameters/RecordingUUID"}],"responses":{"200":{"description":"The recording video file","headers":{"Content-Disposition":{"description":"Attachment filename for the downloaded video","schema":{"type":"string"}},"Content-Length":{"description":"File size in bytes","schema":{"type":"integer"}}},"content":{"video/mp4":{"schema":{"type":"string","format":"binary"}},"video/webm":{"schema":{"type":"string","format":"binary"}},"video/quicktime":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"description":"Video file is not available yet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.screendesk.io/api/screendesk-api/api-reference/recordings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
