Real estate listing images are one layout filled with changing data: a property photo, an address, a price, and a few facts. jsontoimg fills those named layers from your listing feed and returns a JPG or WebP per property, so an agency stops exporting a graphic by hand every time a price drops.
Layers that change per listing
photo: the main image, a publichttpsfile ending.png,.jpg,.jpeg, or.webpaddress: street and suburbprice: formatted before you send, including currency and any “Offers over” wordingfacts: a short line such as “3 bed, 2 bath, 1 car”status: a banner text such as “Just listed” or “Under offer”agent_logo: an image layer for the agency or agent
The frame, colours, and disclaimers stay in the template.
Render one listing
{
"template": "<design-id>",
"format": "jpg",
"layers": {
"address": { "text": "14 Harbour Street, Fremantle" },
"price": { "text": "Offers over $890,000" },
"facts": { "text": "3 bed, 2 bath, 1 car" },
"photo": { "image_url": "https://example.com/listings/14-harbour/front.jpg" }
}
}
Price and status changes
When a listing goes under offer or drops its price, send the new values and render again. A changed payload produces a new image; unchanged rows return the stored file. Run a nightly batch of 50 jobs over listings whose data changed, rather than the whole feed.
Check your listing rules
Portals and local regulators set rules on how prices and status are shown on advertising images. jsontoimg draws exactly the text you send and does not check compliance, so build the check into the step that prepares the price string, and keep the text in the template for any required disclaimer.
Photo sources
Layers need a direct public file URL with an extension. A photo behind a login, or a placeholder CDN link with no file extension, fails at render time. Copy listing photos to storage you control first.
Related
The same catalog-to-image pattern, including a repeating product feed, is on the product banners page. For agent-driven runs, see MCP Server for Image Generation.
Related
FAQ
How do I generate real estate listing images automatically?
Design one template with photo, address, price, and status layers, then send one JSON object per listing to POST /api/v1/render, or batch up to 50 at a time.
How do I update listing images when a price changes?
Send the new price and render again. A changed payload produces a new image, and unchanged listings return the stored file.
Can the template include a required disclaimer?
Yes. Put fixed disclaimer text in the template design so every render carries it. jsontoimg does not check whether your wording meets local advertising rules.
Why did my listing photo fail to render?
Image layers need a direct public https file URL ending in .png, .jpg, .jpeg, or .webp. Links behind a login or without a file extension fail at render time.