Documentation Index
Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
Use this file to discover all available pages before exploring further.
Vision via Chat
image_url input on the usual vision models:
gpt-4o,gpt-4o-mini,gpt-4.1,gpt-5.4, and other OpenAI vision models- Both
data:image/...;base64,...data URLs and publichttps://URLs work - The returned
message.contentis currently a plain string
Recommended order: for local files, use the image upload endpoint first to get amedia.crazyrouter.comtemporary URL, then pass it asimage_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)
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:| Failure | Cause | Fix |
|---|---|---|
| Domain cannot resolve | Private/invalid host | Use a public https URL |
| 403 Forbidden | Some CDNs (wikimedia, private S3) block server UAs or require Referer | Use the upload endpoint or base64 |
Content-Type not image/* | URL returns HTML or redirects to a login page | Make sure it’s a direct image link |
| File over 20MB | Single-file size limit | Compress or crop before uploading |
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.
Recommended practice
- For internal assets, private images, or anything whose reachability is uncertain: call
POST /v1/files/uploadsfirst for a 72-hourmedia.crazyrouter.com/...URL, then pass it toimage_url - For small (< 1MB) or one-off images: send a base64 data URL directly, avoiding an extra upload round-trip
- Multi-image inputs and
detailparameter: the OpenAI upstream supports them; pass them through following OpenAI’s official spec