Skip to main content
Last updated: 2026-06-06

Vision via Chat

Crazyrouter production has verified OpenAI-style image_url input on the usual vision models:
  • gpt-4o, gpt-4o-mini, gpt-5.5, gpt-5.5, and other OpenAI vision models
  • Both data:image/...;base64,... data URLs and public https:// URLs work
  • The returned message.content is currently a plain string
Recommended order: for local files, use the image upload endpoint first to get a media.crazyrouter.com temporary URL, then pass it as image_url; or send a base64 data URL directly. Remote public URLs also work, but must satisfy the “Remote URL limits” below.

Using a base64 data URL (most reliable)

Sample response:

Using a remote https URL

Remote URL limits

The URL must be reachable from the Crazyrouter server, not merely “openable in a browser”. Common failure modes: If you see Unable to process the image you provided. Please verify the image URL is publicly accessible, or upload it as base64., the URL is not reachable from the server — work down the table above.
  • For internal assets, private images, or anything whose reachability is uncertain: call POST /v1/files/uploads first for a 72-hour media.crazyrouter.com/... URL, then pass it to image_url
  • For small (< 1MB) or one-off images: send a base64 data URL directly, avoiding an extra upload round-trip
  • Multi-image inputs and detail parameter: the OpenAI upstream supports them; pass them through following OpenAI’s official spec