Listing Images Implementation Guide
Repliers offers a robust Listing Images Content Delivery Network (CDN) that allows developers to embed and dynamically resize/format property photos seamlessly. This feature brings significant cost and time savings, enhances performance through shared caching, and mitigates the need for manual image monitoring.
CDN URL Structure
For listings with available images, an "images" array will be present. Here's an example listings array:
"images": [
"area/IMG-N8418368_1.jpg",
"area/IMG-N8418368_2.jpg",
"area/IMG-N8418368_3.jpg",
"area/IMG-N8418368_4.jpg",
"area/IMG-N8418368_5.jpg",
"area/IMG-N8418368_6.jpg",
"area/IMG-N8418368_7.jpg",
"area/IMG-N8418368_8.jpg",
"area/IMG-N8418368_9.jpg",
"area/IMG-N8418368_10.jpg",
"area/IMG-N8418368_11.jpg",
"area/IMG-N8418368_12.jpg",
"area/IMG-N8418368_13.jpg",
"area/IMG-N8418368_14.jpg",
"area/IMG-N8418368_15.jpg"
],
The image URLs should be prefixed with https://cdn.repliers.io/. For example:
https://cdn.repliers.io/area/IMG-N8418368_15.jpg
Default Image Sizes
- Mobile Devices: Image width defaults to a maximum of 800px.
- Larger Screens: Image width defaults to a maximum of 1600px.
Default Image Formats
- WEBP: Images will be returned in WEBP format if supported by the user's device.
- JPG: If WEBP is not supported, images will be returned in JPG format.
Dynamic Image Resizing
You can dynamically resize images by appending a class parameter to the image request URL. Supported values are:
- small: 400px width
- medium: 800px width
- large: 1600px width
Examples
- For a small image (400px width):
https://cdn.repliers.io/IMG-E7312496_1.jpg?class=small
- For a medium image (800px width):
https://cdn.repliers.io/IMG-E7312496_1.jpg?class=medium
- For a large image (1600px width):
https://cdn.repliers.io/IMG-E7312496_1.jpg?class=large
Cache Busting
Because the CDN caches images aggressively for performance, updated listing photos may not be immediately reflected if a URL has been cached. To ensure users always see the latest photos, append the bust parameter to your image URL using the timestamps.photosUpdated value from the listing response.
Example:
https://cdn.repliers.io/IMG-C12808932_1.jpg?bust=2026-02-21T16:55:24.000Z
When timestamps.photosUpdated changes, the new URL is treated as a fresh request by the CDN, bypassing any previously cached version.
When to use this:
- When re-fetching a listing and displaying updated photos
- When building a detail page that should always reflect the most current images
Note: Avoid appending a dynamic or random value (e.g., a current timestamp) on every page load, as this defeats caching entirely and negates the performance benefits of the CDN. Only use timestamps.photosUpdated so the cache is only busted when photos have actually changed.
Benefits
- Cost and Time Savings: Avoid the need to download and manually manipulate images.
- Performance Enhancement: Benefit from caching due to other users of the service.
- Security: No need to monitor for malicious activity as it is managed by Repliers.
Conclusion
Repliers' Listing Images CDN offers a streamlined solution for embedding and resizing property photos dynamically. By leveraging this service, developers can focus on building their applications without worrying about image management complexities. If you have any questions or need further assistance, please contact our support team.
FAQ
Why do some listings return briefly without images?
Listing data and listing images are processed in separate pipelines. This is intentional: it allows Repliers to make new/updated listing records available quickly even if an MLS® photo download is still on the way.
Because of this design, you might occasionally encounter listings where the images array is empty or photos are not yet available (normally just very briefly).
Recommended approach
- If your UI requires photos, filter your listing searches with
hasImages=trueso only listings that already have images processed are returned. - If you choose not to filter, implement a fallback in your UI (placeholder image) and re-fetch the listing later.
Example:
https://api.repliers.io/listings?city=Toronto&hasImages=true
Notes
- For brand-new listings, it's normal for images to arrive shortly after the listing record.
- If a listing remains without images for an extended period, send Support the
mlsNumber+boardIdso we can investigate.
Can I subscribe to MLS® photos only?
No. Listing photos are provided as part of licensed MLS® listing data feeds. Repliers does not offer a standalone "photos-only" product.
For more information about data licensing and eligibility requirements, see:
- MLS Data Access Requirements: Who Can Use MLS APIs
- Understanding MLS Data Licensing for Using Our APIs
What questions does this article answer?
- How do I use Repliers' Listing Images CDN to serve property photos on my site/app?
- What URL format or parameters should I use to request listing images?
- How can I resize, crop, or transform listing images via the CDN?
- How should I handle image caching and performance when rendering many photos?
- What are best practices for choosing cover images and handling missing images?
- What formats are returned (WEBP vs JPG) and how is that decided?
- What performance and security benefits do I get by using the Repliers CDN instead of hosting images myself?
- Why do some listings appear without images initially?
- Can I subscribe to MLS® photos without the full listing data feed?
- How do I ensure users see the latest listing photos after they've been updated?
Updated on: 21/02/2026
Thank you!
