curl --request GET \
--url https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot \
--header 'Accept: <accept>' \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>', Accept: '<accept>'}};
fetch('https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot"
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>"
}
response = requests.get(url, headers=headers)
print(response.text){
"recording_id": "x9y8z7w6v5u4t3s2",
"timestamp": 12.5,
"image_format": "png",
"is_screenshot_ready": true,
"screenshot_url": "https://example-bucket.s3.amazonaws.com/.../frames/12500.png?X-Amz-Signature=...",
"url_expires_in_seconds": 600
}{
"error": "You are not authorized to perform this action."
}{
"error": "Timestamp must be a number between 0 and 125.5 seconds."
}Get a screenshot at a timestamp
Extracts a still frame of the recording at the given timestamp and returns a presigned URL to the image. If is_screenshot_ready is false, the recording’s downloadable video is not up to date yet — call POST /recordings/{id}/trigger-mp4 to regenerate it, then retry.
curl --request GET \
--url https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot \
--header 'Accept: <accept>' \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>', Accept: '<accept>'}};
fetch('https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetorecord.com/api/external/v2/recordings/{id}/screenshot"
headers = {
"X-Api-Key": "<x-api-key>",
"Accept": "<accept>"
}
response = requests.get(url, headers=headers)
print(response.text){
"recording_id": "x9y8z7w6v5u4t3s2",
"timestamp": 12.5,
"image_format": "png",
"is_screenshot_ready": true,
"screenshot_url": "https://example-bucket.s3.amazonaws.com/.../frames/12500.png?X-Amz-Signature=...",
"url_expires_in_seconds": 600
}{
"error": "You are not authorized to perform this action."
}{
"error": "Timestamp must be a number between 0 and 125.5 seconds."
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
API key. Refer to Authentication for more information.
Must be application/json.
application/json Path Parameters
The recording's id (UUID) or its public_link_id (the short code in the watch URL). Both are accepted.
Query Parameters
Timestamp in seconds (may be fractional) of the frame to capture.
x >= 0Image format: png or jpeg. Defaults to png.
png, jpeg Response
Screenshot URL generated, or not ready yet.
png, jpeg false when the recording's video file is outdated. Call POST /recordings/{id}/trigger-mp4 to regenerate it, then retry.
Presigned URL to the image. Omitted entirely when is_screenshot_ready is false.
Lifetime of the presigned URL. Omitted entirely when is_screenshot_ready is false.