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

# qwen/qwen3.5-0.8b

> Free-form multimodal chat over text, images, and video.

Free-form multimodal chat over text, images, and video. Default and only
method: free-form `chat` (no `method` or `method_params`). `qwen/qwen3.6-35b-a3b`
and `google/gemma-4-26b-a4b` are coming soon and share the same contract.
Accepts up to 64 `image_url` parts or one `video_url`. Tune video sampling with
`video_fps`, `video_max_frames`, and `video_resolution` at the top level. See
[Video Inputs](/gateway/multimodal-inputs#video-inputs).

## Output by method

| Method         | Payload                     | Envelope             |
| -------------- | --------------------------- | -------------------- |
| chat (default) | The model's reply, verbatim | None, in either mode |

A chat VLM is **pass-through**. Text mode returns the reply with no wrapper, even
with several images: the model reads them together and produces one reply. JSON
mode returns the model's **own** JSON, with no `data` envelope. See
[Methods & Response Format](/gateway/methods#chat-vlms-are-not-enveloped).

It does not accept `document_url`. A PDF request is a
[`400` capability error](/gateway/error-codes#capability-violation-400). For PDFs
use an OCR model, for example
[`paddleocr/pp-ocrv6`](/gateway/models/paddleocr-pp-ocrv6).

## Request

<CodeGroup>
  ```python Python [expandable] theme={"theme":{"light":"github-light","dark":"dark-plus"}}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://gateway.vlm.run/v1/openai",
      api_key="<VLMRUN_API_KEY>",
  )

  response = client.chat.completions.create(
      model="qwen/qwen3.5-0.8b",
      messages=[
          {
              "role": "user",
              "content": [
                  {"type": "text", "text": "What is happening in this image?"},
                  {
                      "type": "image_url",
                      "image_url": {
                          "url": "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/image.caption/car.jpg"
                      },
                  },
              ],
          }
      ],
  )

  print(response.choices[0].message.content)
  ```

  ```bash cURL [expandable] theme={"theme":{"light":"github-light","dark":"dark-plus"}}
  curl https://gateway.vlm.run/v1/openai/chat/completions \
    -X POST \
    -H "Authorization: Bearer $VLMRUN_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "qwen/qwen3.5-0.8b",
      "messages": [
        {
          "role": "user",
          "content": [
            { "type": "text", "text": "What is happening in this image?" },
            {
              "type": "image_url",
              "image_url": {
                "url": "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/image.caption/car.jpg"
              }
            }
          ]
        }
      ]
    }'
  ```
</CodeGroup>

## Response

<Tabs>
  <Tab title="Text mode">
    ```text theme={"theme":{"light":"github-light","dark":"dark-plus"}}
    A silver sedan is parked on a sunlit street beside a row of trees.
    ```
  </Tab>

  <Tab title="JSON mode">
    Add `response_format={"type":"json_object"}` in the body and ask for JSON in
    the prompt. The reply is the model's own JSON, with no envelope:

    ```json theme={"theme":{"light":"github-light","dark":"dark-plus"}}
    { "vehicle": "silver sedan", "setting": "sunlit street beside a row of trees" }
    ```
  </Tab>
</Tabs>

For video, pass a `video_url` part and tune sampling with `video_fps` /
`video_max_frames`. See [Video Inputs](/gateway/multimodal-inputs#video-inputs).
