In short. OpenAI web search returns image_result records with separate image and source page URLs.
Definition: OpenAI web search can return images as structured
image_resultrecords. When a request includesimageinsearch_content_types, each record can expose the canonical image URL inimage_urland the page where OpenAI found the image insource_website_url.
Key facts
- OpenAI says web search can return image results alongside regular text results for current or web-grounded visuals such as product photos, landmarks, places, events and visual references. See the web search documentation.
- The Responses API reference defines
search_content_typesas an optional array whose values aretextorimage. See OpenAI's Responses API reference. - The web search guide says to include
imagefor image search and addtextwhen the model also needs supporting text results to summarize, rank or explain the retrieved images. image_settings.max_resultsrequests a positive number of image results, whileimage_settings.captionasks for short image descriptions when available.- Raw image results are exposed through
web_search_call.results[]when the request includesweb_search_call.resultsininclude; they are returned separately from the assistant message.
How do you request image results?
OpenAI's web search tool accepts a search_content_types array. The API reference documents text and image as its possible values. Use image alone when the response needs image records. Use both values when the application needs images and text that can help the model explain them.
The guide's example combines the content types with image-specific settings:
{
"type": "web_search",
"search_content_types": ["image", "text"],
"image_settings": {
"max_results": 3,
"caption": true
}
}
max_results controls the requested number of image results. caption asks for a short description when one is available. The documentation describes these as image-specific settings, so they belong inside image_settings.
Where do the URLs appear in the response?
The guide instructs an application to include web_search_call.results in the request and read web_search_call.results[] in the response. This puts the raw records on the web_search_call item. The image records sit outside the assistant message, so code that needs URLs or metadata reads the tool item directly.
OpenAI's example shows the response shape:
{
"output": [
{
"type": "web_search_call",
"status": "completed",
"results": [
{
"type": "image_result",
"image_url": "https://cdn.example/golden-gate-sunset.jpg",
"thumbnail_url": "https://cdn.example/golden-gate-sunset-thumb.jpg",
"source_website_url": "https://example.com/source-page",
"caption": "Golden Gate Bridge at sunset"
}
]
}
]
}
What is the difference between the image and page URLs?
The image_url field is the canonical URL for the image asset. The source_website_url field is the page where the image was found. They therefore identify different resources in the same record: one points to the image, and the other points to its web page.
The record can also contain thumbnail_url, described as a thumbnail URL when available. The caption field is a short caption or description when available. These two fields are optional in the documentation's wording, so an integration should read them when present rather than assume that every record contains them.
For a website review, preserve image_url and source_website_url as separate values. The first identifies the returned asset, while the second identifies the page associated with that asset.
Related terms
FAQ
Does image search return text results too?
OpenAI documents image results alongside regular text results. Adding text to search_content_types requests supporting text results that can help the model summarize, rank or explain the retrieved images.
Is image_url the URL of the source page?
OpenAI assigns those roles to separate fields. image_url is the canonical image URL, while source_website_url is the page where the image was found.
Sources
Check how a page reads to answer engines. Open the GEO score analyzer