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

TaskEndpointExample model
Chat and text generation/chat/completionsgpt-5.6-sol
Images and screenshots as input/chat/completionsgemini-3.7-flash
PDFs and documents/chat/completionsgemini-3.7-flash
Speech to text/audio/transcriptionsgpt-4o-transcribe
Vector search/embeddingstext-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.ogg

Vectors 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.

What's next