Text, images, and audio
Besides plain text, you can send images and documents to models, and turn speech into text. Capabilities depend on the model — the catalog lists what each one accepts as input.
What's supported
| Task | Endpoint | Example model |
|---|---|---|
| Chat and text generation | /chat/completions | gpt-5.6-sol |
| Images and screenshots as input | /chat/completions | gemini-3.7-flash |
| PDFs and documents | /chat/completions | gemini-3.7-flash |
| Speech to text | /audio/transcriptions | gpt-4o-transcribe |
| Vector search | /embeddings | text-embedding-3-large |
An image in the request
curl https://api.relaymodels.com/v1/chat/completions \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.7-flash",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]
}]
}'Instead of a URL you can pass a base64-encoded image in the same field — handy for local files.
Speech recognition
curl https://api.relaymodels.com/v1/audio/transcriptions \
-H "Authorization: Bearer $RELAY_API_KEY" \
-F model=gpt-4o-transcribe \
-F file=@voice.oggVectors for search
curl https://api.relaymodels.com/v1/embeddings \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "text-embedding-3-large", "input": "text to search for"}'Internet access
The models themselves don't access the internet. If you need fresh data, add a search tool in your code and pass the result into the request — see the “Tools” section for how that works.