Skip to content

Guides

Images

Models marked Images on Models ("images": true in /v1/models) read screenshots, diagrams and photos alongside text: a UI bug, a whiteboard, an error dialog.

OpenAI API#

Make the user message's content an array of parts, with an image_url part holding a public https URL or a base64 data URL.

import base64import osfrom openai import OpenAIclient = OpenAI(base_url="https://fullsendai.com/v1", api_key=os.environ["FULLSEND_API_KEY"])with open("screenshot.png", "rb") as file:    image = base64.b64encode(file.read()).decode()reply = client.chat.completions.create(    model="deepseek-v4.1-flash",    messages=[{        "role": "user",        "content": [            {"type": "text", "text": "Why is this button misaligned?"},            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},        ],    }],)print(reply.choices[0].message.content)

Anthropic API#

Use an image block with a base64 or url source, as with Anthropic.

import base64import osimport anthropicclient = anthropic.Anthropic(base_url="https://fullsendai.com", api_key=os.environ["FULLSEND_API_KEY"])with open("screenshot.png", "rb") as file:    image = base64.b64encode(file.read()).decode()message = client.messages.create(    model="deepseek-v4.1-flash",    max_tokens=1024,    messages=[{        "role": "user",        "content": [            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": image}},            {"type": "text", "text": "Why is this button misaligned?"},        ],    }],)

Formats, size and cost#

  • PNG and JPEG are the safe choices; other formats depend on the model. Send several images in one message by adding more parts.
  • Images are input tokens, counted by the model, so a large screenshot costs more than a small one. The exact count is in usage. Crop to what matters.
  • An image URL must be publicly reachable; for anything private, send base64.
  • A model without image support refuses images with 400 invalid_request_error, or ignores them. Check images in /v1/models first.
  • PDFs aren't read as documents. Extract the text, or send pages as images.

Stuck? Email [email protected]System statusChangelog