> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trylimitless.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Image inputs

> Send image content to a model that accepts visual input.

The current `abliterated-model` accepts images. `abliterated-model-large` and `abliterated-model-large-v2` are text-only. Check the live catalog's `input_modalities` before choosing a model.

## Chat content parts

Use a public HTTPS image URL or a base64 data URL:

```javascript theme={null}
const result = await client.chat.completions.create({
  model: "abliterated-model",
  messages: [{
    role: "user",
    content: [
      { type: "text", text: "Describe the main subject in this picture." },
      { type: "image_url", image_url: { url: process.env.IMAGE_URL } },
    ],
  }],
  max_tokens: 1024,
});
console.log(result.choices[0]?.message.content);
```

`IMAGE_URL` must resolve to an actual image the backend is allowed to fetch. Avoid embedding credentials in its URL.

## Messages content blocks

Use an `image` block with a `source`. For example, inside a user message's content array:

```json theme={null}
{
  "type": "image",
  "source": {
    "type": "url",
    "url": "https://your-image-host.example/photo.png"
  }
}
```

For inline data, use `{ "type": "base64", "media_type": "image/png", "data": "BASE64_IMAGE_DATA" }` as the source. PNG, JPEG, WebP, and GIF are supported by the current backend. Its raw-file limit is 12 MB; Limitless separately limits the entire JSON request to 8 MiB. Base64 increases payload size, so a file under the backend limit can still exceed the gateway limit.

Responses accepts its native `input_image` content shape when the selected backend supports it. Verify that model/protocol combination before relying on it in production. These APIs analyze images; they do not provide image-generation endpoints.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.