{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid base64 frame data: Incorrect padding",
"remediation": "Ensure frame_b64 is valid base64-encoded JPEG data"
}
}
{
"answer": "Yes, there is a person visible in the center of the frame.",
"triggered": true,
"latency_ms": 1250,
"frame_b64": null
}
Monitoring
Analyze Frame
Analyze a single image frame with VLM. Accepts a base64-encoded JPEG and a question — no stream URL needed.
POST
/
analyze-frame
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid base64 frame data: Incorrect padding",
"remediation": "Ensure frame_b64 is valid base64-encoded JPEG data"
}
}
{
"answer": "Yes, there is a person visible in the center of the frame.",
"triggered": true,
"latency_ms": 1250,
"frame_b64": null
}
Analyze a pre-captured image frame with VLM.
Use this when you have your own frame capture mechanism (like TrioClaw) and just need VLM analysis — no stream URL validation or capture required.
Response includes
Response includes
How It Differs From Other Endpoints
POST /analyze-frame— Accepts raw base64 frame, no stream URLPOST /check-once— Captures frame from stream URL, validates livenessPOST /live-monitor— Creates continuous monitoring job
Use Cases
- TrioClaw — Desktop app that captures frames locally and needs VLM analysis
- Custom pipelines — Your own frame capture (RTSP, screenshots, etc.)
- Batch processing — Analyze many pre-captured images without stream overhead
Question Styles
Supports two question types:Yes/No Conditions
"Is there a person?"
"Is the traffic light red?"
"Are cars moving?"
triggered: true/false.
Open-Ended Questions
"What do you see?"
"Describe the weather conditions."
"What is the text in this image?"
answer with full description, triggered: null.
Request
Response
{
"answer": "Yes, there is a person visible in the center of the frame.",
"triggered": true,
"latency_ms": 1250,
"frame_b64": null
}
{
"answer": "The image shows a blue sky with scattered white clouds.",
"triggered": null,
"latency_ms": 890,
"frame_b64": "/9j/4AAQSkZJRg..."
}
Error Handling
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid base64 frame data: Incorrect padding",
"remediation": "Ensure frame_b64 is valid base64-encoded JPEG data"
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "Frame data too small — expected a JPEG image",
"remediation": "Ensure the base64 data represents a valid JPEG image"
}
}
Related
- Monitoring workflows: Live Monitor
- Stream validation: Validate Stream
- Single check: Check Once
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Request to analyze a single image frame with VLM.
Used by TrioClaw and other clients that capture their own frames and just need VLM analysis — no stream URL or live validation needed.
Base64-encoded JPEG image (raw base64, no data: URI prefix)
Minimum string length:
1Question or condition about the image (e.g., 'what do you see?' or 'is there a person?')
Required string length:
1 - 1000Include the frame back in the response
Response
Successful Response
Response from frame analysis.