Skip to content

Multimodal Overview

For supported models, send messages[].content as an OpenAI-compatible content-part array instead of a plain string. Currently accepted parts:

text  image_url  input_audio 

input_file

Read a single model's modalities from model discovery; the endpoint needs no authentication:

Terminal window
curl -s https://llmtr.com/v1/models/google/gemini-3.6-flash | jq '.architecture'

To list every model that supports a specific operation (image generation, embeddings, TTS, …) filter the catalog on supported_operations:

Terminal window
# All image-generating models
curl -s https://llmtr.com/v1/models \
| jq -r '.data[] | select(.supported_operations[] == "IMAGES_GENERATIONS").id'
# Embedding models
curl -s https://llmtr.com/v1/models \
| jq -r '.data[] | select(.supported_operations[] == "EMBEDDINGS").id'
# Text-to-speech models
curl -s https://llmtr.com/v1/models \
| jq -r '.data[] | select(.supported_operations[] == "AUDIO_SPEECH").id'

When a model is sent to the wrong endpoint, the 400 unsupported_operation response includes error.details.supported_endpoints and error.details.suggested_endpoint to point you at the correct route. See Errors.

{
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What's in this image?" },
{
"type": "image_url",
"image_url": { "url": "https://..." }
}
]
}
]
}
  • Media is sent through the JSON body. Remote URLs are safer than inline base64.
  • Keep inline base64 audio clips short (< 1 MB recommended).
  • For large files, PDFs, video, or reusable media use the Files API.