curl --request POST \
--url https://api2.rhombussystems.com/api/video/getExactFrameData \
--header 'Content-Type: application/json' \
--header 'x-auth-apikey: <api-key>' \
--header 'x-auth-scheme: <x-auth-scheme>' \
--data '
{
"cameraUuid": "AAAAAAAAAAAAAAAAAAAAAA.v0",
"timestampMs": 123,
"downscaleFactor": 2,
"permyriadCropHeight": 5000,
"permyriadCropWidth": 5000,
"permyriadCropX": 5000,
"permyriadCropY": 5000
}
'import requests
url = "https://api2.rhombussystems.com/api/video/getExactFrameData"
payload = {
"cameraUuid": "AAAAAAAAAAAAAAAAAAAAAA.v0",
"timestampMs": 123,
"downscaleFactor": 2,
"permyriadCropHeight": 5000,
"permyriadCropWidth": 5000,
"permyriadCropX": 5000,
"permyriadCropY": 5000
}
headers = {
"x-auth-scheme": "<x-auth-scheme>",
"x-auth-apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-auth-scheme': '<x-auth-scheme>',
'x-auth-apikey': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cameraUuid: 'AAAAAAAAAAAAAAAAAAAAAA.v0',
timestampMs: 123,
downscaleFactor: 2,
permyriadCropHeight: 5000,
permyriadCropWidth: 5000,
permyriadCropX: 5000,
permyriadCropY: 5000
})
};
fetch('https://api2.rhombussystems.com/api/video/getExactFrameData', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api2.rhombussystems.com/api/video/getExactFrameData")
.header("x-auth-scheme", "<x-auth-scheme>")
.header("x-auth-apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cameraUuid\": \"AAAAAAAAAAAAAAAAAAAAAA.v0\",\n \"timestampMs\": 123,\n \"downscaleFactor\": 2,\n \"permyriadCropHeight\": 5000,\n \"permyriadCropWidth\": 5000,\n \"permyriadCropX\": 5000,\n \"permyriadCropY\": 5000\n}")
.asString();{
"error": true,
"errorMsg": "<string>",
"frameData": "<string>",
"mimeType": "image/jpeg",
"responseMessage": "Frame retrieved successfully",
"status": "AVAILABLE",
"warningMsg": "<string>"
}Get exact frame data
Fetches and returns the bytes, base64 encoded, of the frame at the given timestamp for a device. Use this instead of getExactFrameUri if, for whatever reason, either the URI is not useful or the client is unable to hit the media servers. The response always has HTTP status 200; check the status field, frameData is only set when it is AVAILABLE.
curl --request POST \
--url https://api2.rhombussystems.com/api/video/getExactFrameData \
--header 'Content-Type: application/json' \
--header 'x-auth-apikey: <api-key>' \
--header 'x-auth-scheme: <x-auth-scheme>' \
--data '
{
"cameraUuid": "AAAAAAAAAAAAAAAAAAAAAA.v0",
"timestampMs": 123,
"downscaleFactor": 2,
"permyriadCropHeight": 5000,
"permyriadCropWidth": 5000,
"permyriadCropX": 5000,
"permyriadCropY": 5000
}
'import requests
url = "https://api2.rhombussystems.com/api/video/getExactFrameData"
payload = {
"cameraUuid": "AAAAAAAAAAAAAAAAAAAAAA.v0",
"timestampMs": 123,
"downscaleFactor": 2,
"permyriadCropHeight": 5000,
"permyriadCropWidth": 5000,
"permyriadCropX": 5000,
"permyriadCropY": 5000
}
headers = {
"x-auth-scheme": "<x-auth-scheme>",
"x-auth-apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-auth-scheme': '<x-auth-scheme>',
'x-auth-apikey': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cameraUuid: 'AAAAAAAAAAAAAAAAAAAAAA.v0',
timestampMs: 123,
downscaleFactor: 2,
permyriadCropHeight: 5000,
permyriadCropWidth: 5000,
permyriadCropX: 5000,
permyriadCropY: 5000
})
};
fetch('https://api2.rhombussystems.com/api/video/getExactFrameData', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api2.rhombussystems.com/api/video/getExactFrameData")
.header("x-auth-scheme", "<x-auth-scheme>")
.header("x-auth-apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cameraUuid\": \"AAAAAAAAAAAAAAAAAAAAAA.v0\",\n \"timestampMs\": 123,\n \"downscaleFactor\": 2,\n \"permyriadCropHeight\": 5000,\n \"permyriadCropWidth\": 5000,\n \"permyriadCropX\": 5000,\n \"permyriadCropY\": 5000\n}")
.asString();{
"error": true,
"errorMsg": "<string>",
"frameData": "<string>",
"mimeType": "image/jpeg",
"responseMessage": "Frame retrieved successfully",
"status": "AVAILABLE",
"warningMsg": "<string>"
}Authorizations
Your Rhombus API key. Must be accompanied by the x-auth-scheme header set to api-token (or partner-api-token for partner endpoints).
Headers
Authentication scheme identifier. Use api-token for standard API key authentication, partner-api-token for partner API key authentication. Must be paired with the x-auth-apikey header containing your API key.
api-token, api, partner-api-token, partner-api Body
Request object for fetching the bytes of an exact frame from a camera.
RUUID with optional appended facet information
"AAAAAAAAAAAAAAAAAAAAAA.v0"
Timestamp in epoch milliseconds
Ratio to shrink the image pixels by. Defaults to 1 (full resolution).
x >= 1Precise ratio to crop the height by. Capped at 10000, which is 100.00% of the image
0 <= x <= 10000Precise ratio to crop the width by. Capped at 10000, which is 100.00% of the image
0 <= x <= 10000Proportional location to start horizontal crop at. Where 10000 is 100.00% of, or the end of the image
0 <= x <= 10000Proportional location to start vertical crop at. Where 10000 is 100.00% of, or the end of the image
0 <= x <= 10000Response
OK
Response object containing the bytes of the requested frame data in base64 format
Base64-encoded image bytes for the requested frame. Null if no frame could be retrieved.
MIME type of the encoded frame data
"image/jpeg"
Human-readable message describing the result
"Frame retrieved successfully"
Outcome of an exact frame request. AVAILABLE is the only value under which a frame URI or frame data is returned; every other value explains why the frame cannot be served.
AVAILABLE, FUTURE_TIMESTAMP, CAMERA_DELETED, CAMERA_STATE_UNAVAILABLE, CAMERA_NOT_CONNECTED, MEDIA_STORAGE_DEVICE_NOT_CONNECTED, NOT_RECORDING_AT_TIMESTAMP, NO_FOOTAGE_AT_TIMESTAMP, MEDIA_ADDRESS_UNAVAILABLE, FRAME_RETRIEVAL_FAILED