Understanding data

Zillow API photos: display image URLs responsibly

Handle Zillow listing photo URLs, empty galleries, changing images, and display permissions without treating API access as an image license.

By PropertiesAPI3 min read

Photo URLs are references to source images

PropertiesAPI can return imgSrc for the main image and photos as an array of listing image URLs. The service returns source URLs rather than re-hosting the photos. A URL being present does not establish your right to reuse, redistribute or archive the image.

Before building a gallery, establish what your application is permitted to display. Read the source terms and your applicable agreements. For a public-facing product, image rights and attribution need a deliberate decision alongside the technical implementation.

Design for empty and changing galleries

Some properties return no photos. A gallery should show a neutral unavailable state, not a broken image and not a stock photograph that appears to depict the home. Treat photoCount, imgSrc and the array as related fields that still need defensive rendering.

Source URLs can stop working or change. Do not assume a URL is permanent simply because it was returned successfully once. Handle image loading failures separately from API failures so one unavailable image does not make the whole property page unusable.

Reserve space before images load

Set explicit dimensions or an aspect ratio for the gallery frame. This prevents the page from jumping as images arrive. Load below-the-fold images lazily, and avoid downloading the entire gallery on the initial page view.

Use meaningful alternative text without inventing room descriptions. If you do not know what the photo depicts, “Property listing photo” is safer than “Renovated kitchen.” Add specific text only when a trustworthy caption or human review supports it.

Illustrative HTML display pattern
<img
  src="AUTHORIZED_SOURCE_IMAGE_URL"
  alt="Property listing photo"
  width="800"
  height="600"
  loading="lazy"
  referrerpolicy="no-referrer"
/>

Keep remote image requests predictable

Only render validated HTTPS URLs from the expected image sources. If your application adds a server-side image proxy, restrict allowed hosts and block requests to private network addresses. Otherwise an image convenience feature can become an unrestricted fetch endpoint.

Loading an image directly from another host makes a browser request to that host. Review referrer behavior and explain third-party image loading in your privacy information. The no-referrer attribute suppresses the referring page URL, but does not make the request invisible to the image host.

Do not confuse retrieval with permission

A successful API request answers whether image references were returned. It does not answer who owns the image, whether you can store copies, how long you can display it, or what attribution is required. Keep those checks separate.

If you have permission to cache images, define expiration and removal behavior. If you only have permission to link or display them in a particular context, keep the implementation within that scope. Avoid describing a gallery as an unrestricted photo download tool.

Test the uncomfortable cases

Test an empty array, a failed image URL, duplicate URLs and a very long gallery. Verify keyboard access for any carousel controls. Provide a clear way to reach the source property page where appropriate.

Keep identity checks in place when attaching photos to your own property records. A beautiful gallery for the wrong home is still a data error. Retain the source property ID and collection timestamp with the image references so the gallery can be traced back to the lookup.

Sources and documentation

Product details checked against the linked documentation on October 21, 2026. Code and sample inputs are illustrative unless stated otherwise.

Written by PropertiesAPI, an independent property data service. We are not affiliated with Zillow. Source data may be incomplete or change over time.