Guides
Images
OpenJev reads images the way it reads text. Send them with the state and every question can look at them.
Sending an image
Add an images array to a normal System One request. Each image is either a data URL or an object with its type and base64 bytes:
curl https://api.codiv.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openjev-latest",
"state": "Answer about the photo.",
"images": ["data:image/jpeg;base64,/9j/4AAQSkZJRg..."],
"questions": {
"hotdog": {"type": "noul", "instructions": "The photo shows a hot dog."},
"condiment": {"type": "choice", "instructions": "Which condiment is on it?",
"criteria": {"mustard": null, "ketchup": null, "none": null}}
}
}'{"content_type": "image/png", "base64": "iVBORw0KGgo..."}The images are placed ahead of the state, in the order you send them, so a state like "The first photo is before the repair, the second after." can refer to them.
The TypeSafe SDKs don't know about images yet. Call the API directly, or add the field to the SDK's request body yourself.
Limits and cost
| Images per request | 8 |
| Size per image | 5 MB after base64 decoding |
| Formats | JPEG, PNG, WebP, GIF (first frame) |
| Request body | 8 MB in total |
| Cost | about 280 input tokens per image, whatever its size |
The model sees each image at a fixed budget of about 280 tokens, so large photos gain nothing. Downscale to about 1024 pixels on the long side and send JPEG; that keeps requests small and fast.
What works with images
steps and samples work with images. think and sequential need a text-only state, and a request that combines them with images returns 422. See Read options.
Try it
The Vision playground has sample photos with question sets, and takes your own uploads or a camera snapshot.