Reponses API does not support image content?

Can anyone see why this input is getting me this error here? To me this follows the API guide to the letter…
Seems like passing the image content as base64 is not supported by Responses API?

Using Responses API on o3-2025-04-16.

{ “error”: { “message”: “Invalid type for ‘input[0].content[1].image_url’: expected an image URL, but got an object instead.”, “type”: “invalid_request_error”, “param”: “input[0].content[1].image_url”, “code”: “invalid_type” } }

{“input”:[{“content”:[{“text”:“This is the content of document C:\Users\ERO\Desktop\Small.png”,“type”:“input_text”},{“image_url”:{“url”:“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAAAnCAIAAACwpSw9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hvdF5VCAUAAANZSURBVHhe7Zk7T1VBEMf5CHaWfgAaaY0NNfW14BtIYa0dNBYaNLGAWNpeCiVAIkQLoVBEhcTbYgQbCdcHBYaCiLN7duexu2fPEQJ3E+aXDZx57Mww/wu5wNCJUjZCod/bb/UM/DgxPKTQ3oe5Tw9GP8/e0jPA8/Hh6N5G10liIYV2Vx7vrDxyhjIgYhVUobJQhUoHVHj1/Obi93E8qlBZgApz3atPvlzBowqVhSpUOqpQ6YAKW0u3tw8X8ahCZRGroAqVhSpUOqpQ6ZxCoW5niNPxfzOq/GgarGt4sufMFLIav80izA1eXjAwe5PDQUNZP5yWqJ9SZLr7zNfpBjMASY9geGICJo2Jx0go9Hr/zp/jfXiqV4jq2JVUY7shaJs2llXIZIjtY64p5iOsR9A9NCETqE+Q0/K0DCwTHmle9Mel2niQTMgAKqzNj6327+EZgnfcT79e2zyY2VmeblSILdn6Jylo1sXtGLobEAWoZ/D1CNN27FUfnSs/LdXJwDLFXOiPS7XxIJmQARQKfx/Cp7UXY40KgeFnrvwYDcwk5itOxI1bems3y01Iss/+s0XkgyGntY8NsMywWGXEpdp4kEzIkFbo2e717cOl+p9yBL6isJNbJlgm1tDeieTwmaQHgnWCgsx0HQF+H7wEKyr8QNCPkamQHAlIegSpOmkSCm38mj7+e1TFst9Dpiur7f12Px23rob2HKuVvWSe5C3aeVCQTDMNx+0AE0yc3QzqZGCZYjBeOSjVxoNkQgZQ4f3C+NbBLJ427+V8RVoqQH54Yo+59hJMJkEcsjaFaGXg5zfQpJt10zbBM+E5rhCXauNBMiFDrML/KASA5Uzmpzdl2fawsmCrmGvK+pjYrMiqFchGrEMOYMriBebPwTLpemXUlWrjQTIhw5kVcgsET7JTvr29Sogdm6seWYLfqq6QUoh3ZaYVBNcZItONyHz29yEOpDR6eDsI1Tc/lUIXS2L5l4sLUYi/6Im2e/e3z1mnsw15fhT/PXTpARXWF8Y3D2bwqEJlASro/1iLRhUqHVWodECF1fmxN/27eFShsohVUIXKIqfQj97yu6mRjfs39AzwrE+N9HsvnSQWUgg4+vlNz8CPE8MjFFIKRBUqHVWodFSh0lGFyubk5B+P+emYyk7EyAAAAABJRU5ErkJggg==”},“type”:“input_image”},{“text”:“describe”,“type”:“input_text”}],“role”:“user”,“type”:“message”}],“max_output_tokens”:16384,“model”:“o3-2025-04-16”,“reasoning”:{“effort”:“high”,“summary”:“auto”},“store”:false,“stream”:false,“temperature”:1.0}

this is the code example for image input as base64, can you post a code snippet of how you are doin g it?

import base64
from openai import OpenAI

client = OpenAI()

# Function to encode the image
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")


# Path to your image
image_path = "path_to_your_image.jpg"

# Getting the Base64 string
base64_image = encode_image(image_path)


response = client.responses.create(
    model="gpt-4.1",
    input=[
        {
            "role": "user",
            "content": [
                { "type": "input_text", "text": "what's in this image?" },
                {
                    "type": "input_image",
                    "image_url": f"data:image/jpeg;base64,{base64_image}",
                },
            ],
        }
    ],
)

print(response.output_text)
2 Likes

haha! slight difference with legacy API I had missed. Thanks!!

2 Likes