Vision — images in requests
Send images to /v1/chat/completions via image_url or base64. Works with Claude and GPT-5.6. Examples in curl, Python and Node.js.
Pass an image along with a text request to /v1/chat/completions — the model describes the contents, answers questions about the image or analyzes a screenshot. Both URLs and base64 are supported.
Supported models
| Parameter | Type | Description |
|---|---|---|
claude-opus-5.5 / claude-sonnet-5.5 | Claude | Full vision support — URL and base64. |
gpt-6.1-sol | GPT | URL and base64. Best for documents and diagrams. |
The image must be publicly reachable by URL — or passed in base64. Private URLs (signed S3, internal networks) should be passed as base64.
Request format
The content field becomes an array of blocks: text and image_url.
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5.5",
"max_tokens": 256,
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in the picture? Describe it briefly."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}]
}'Base64 — without a public URL
For private images, encode the file to base64 and pass it as a data URL:
# base64 — for private images without a public URL
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"max_tokens": 256,
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in the picture?"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]
}]
}'image_url parameters
| Parameter | Type | Description |
|---|---|---|
urlreq. | string | Public image URL or data:image/jpeg;base64,… for base64. |
detail | "auto" | "low" | "high" | Analysis detail (GPT only). "auto" by default. "high" — more tokens, better quality. |