A valid request URL is required to generate request examples{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}Fetch a frame
Returns raw image bytes, not JSON and not base64.
A frame is metered BEFORE the pixels are returned. If the metering write fails, the frame is withheld and the request fails: the path that could hand out an uncounted frame is the path that must not exist. The implication runs one way only, and it is stated rather than hidden: a frame that was delivered was counted, but a frame that was counted may not have been delivered, because a client can disconnect between the two.
Running out of budget refuses the frame; it does not end the run. A worker that takes one last look before reporting success should not have that success turned into a failure.
A frame is also refused, with the same 409, while the run is parked for a person (needs_user_control) or on hold (paused): the device is not observed by the worker while a person has stopped it, so a worker should wait and retry, not report failure.
A person may drive the same device beside this run without stopping it. What they did since this run’s previous frame rides in three response headers, so a worker can look again before it decides: X-Phonebase-Others-Actions, X-Phonebase-Others-Last-At (absent when the count is 0) and X-Phonebase-Others-By (absent when the count is 0; otherwise person, agent or both, comma separated). The driver this surface exists for reads no headers and loses nothing.
This operation reads no Authorization header. The run token in the path IS the credential, so the whole url is secret: never log it, paste it, or commit it. Every example writes {runToken} for that reason.
A valid request URL is required to generate request examples{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}{
"ok": false,
"error": {
"code": "DEVICE_NOT_FOUND",
"message": "<string>",
"details": {}
}
}