Starters · 1200 × 630 · 15 layers · 11 variables · social, real-estate

Property listing

A listing card: the photo full-bleed, a status chip (Just listed, Open house, Sold), and a band with the price, the address, beds, baths and floor area with icons, and the agent's photo, name, phone and office. The full-bleed photo and the band let one call lay it out at every size.

live · POST /v1/images1200 × 630
Property listing, rendered with the sample variables
rendering…
rendered with the sample variables · change them and render again
Open in the editor
the same render with your saved copy
curl -X POST https://api.imageapis.com/v1/images \
  -H 'X-API-Key: YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"template": "tpl_…", "variables": {"status": "Just listed", "price": "$849,000", "address": "14 Orchard Lane, Maplewood", "beds": "4 beds", "baths": "3 baths", "area": "2,450 sq ft", "agent": "Maya Chen", "phone": "(555) 014-2290", "office": "Example Realty", "agent_photo": "https://i.pravatar.cc/160?img=47", "photo": "https://images.unsplash.com/photo-1570129477492-45c003edd2be?w=1600"}}'

Make it yours

Copy the starter into your account once; from then on it is a template id you render with new variables. Creating and reading templates is free.

curl -s https://api.imageapis.com/v1/starters/property-listing -H 'X-API-Key: YOUR_KEY' | jq .template > property-listing.json
curl -X POST https://api.imageapis.com/v1/templates -H 'X-API-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' -d @property-listing.json
# → { "id": "tpl_…", "object": "template", … }

Change any layer by name at render time with modifications, or change the design itself in the editor and save it back with PUT /v1/templates/<id>.

Layers

NameTypex, ySizeContent
photoimage0, 01200 × 630{{photo}}
panelrect0, 4401200 × 190
statustext40, 36260 × 44{{status}}
pricetext48, 462560 × 64{{price}}
addresstext48, 528760 × 34{{address}}
beds_iconicon48, 57628 × 28
bedstext84, 576130 × 28{{beds}}
baths_iconicon228, 57628 × 28
bathstext264, 576130 × 28{{baths}}
area_iconicon408, 57628 × 28
areatext444, 576200 × 28{{area}}
agent_photoimage872, 47072 × 72{{agent_photo}}
agenttext960, 472200 × 32{{agent}}
phonetext960, 506200 × 28{{phone}}
officetext872, 566288 × 36{{office}}

The template

Show the JSON (15 layers)
{
  "name": "Property listing",
  "width": 1200,
  "height": 630,
  "background": "#ffffff",
  "layers": [
    {
      "name": "photo",
      "type": "image",
      "x": 0,
      "y": 0,
      "width": 1200,
      "height": 630,
      "src": "{{photo}}",
      "fit": "cover"
    },
    {
      "name": "panel",
      "type": "rect",
      "x": 0,
      "y": 440,
      "width": 1200,
      "height": 190,
      "fill": "#ffffff"
    },
    {
      "name": "status",
      "type": "text",
      "x": 40,
      "y": 36,
      "width": 260,
      "height": 44,
      "text": "{{status}}",
      "font": "Inter",
      "weight": 800,
      "size": 18,
      "color": "#ffffff",
      "background": "#0f766e",
      "radius": 8,
      "align": "center",
      "valign": "middle",
      "transform": "uppercase",
      "letter_spacing": 2,
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "price",
      "type": "text",
      "x": 48,
      "y": 462,
      "width": 560,
      "height": 64,
      "text": "{{price}}",
      "font": "Inter",
      "weight": 800,
      "size": 52,
      "color": "#0b1220",
      "letter_spacing": -1,
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "address",
      "type": "text",
      "x": 48,
      "y": 528,
      "width": 760,
      "height": 34,
      "text": "{{address}}",
      "font": "Inter",
      "weight": 500,
      "size": 24,
      "color": "#475569",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "beds_icon",
      "type": "icon",
      "icon": "tabler:bed",
      "x": 48,
      "y": 576,
      "width": 28,
      "height": 28,
      "color": "#0f766e"
    },
    {
      "name": "beds",
      "type": "text",
      "x": 84,
      "y": 576,
      "width": 130,
      "height": 28,
      "text": "{{beds}}",
      "font": "Inter",
      "weight": 600,
      "size": 20,
      "color": "#0b1220",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "baths_icon",
      "type": "icon",
      "icon": "tabler:bath",
      "x": 228,
      "y": 576,
      "width": 28,
      "height": 28,
      "color": "#0f766e"
    },
    {
      "name": "baths",
      "type": "text",
      "x": 264,
      "y": 576,
      "width": 130,
      "height": 28,
      "text": "{{baths}}",
      "font": "Inter",
      "weight": 600,
      "size": 20,
      "color": "#0b1220",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "area_icon",
      "type": "icon",
      "icon": "tabler:ruler-2",
      "x": 408,
      "y": 576,
      "width": 28,
      "height": 28,
      "color": "#0f766e"
    },
    {
      "name": "area",
      "type": "text",
      "x": 444,
      "y": 576,
      "width": 200,
      "height": 28,
      "text": "{{area}}",
      "font": "Inter",
      "weight": 600,
      "size": 20,
      "color": "#0b1220",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "agent_photo",
      "type": "image",
      "x": 872,
      "y": 470,
      "width": 72,
      "height": 72,
      "src": "{{agent_photo}}",
      "fit": "cover",
      "radius": 36
    },
    {
      "name": "agent",
      "type": "text",
      "x": 960,
      "y": 472,
      "width": 200,
      "height": 32,
      "text": "{{agent}}",
      "font": "Inter",
      "weight": 700,
      "size": 22,
      "color": "#0b1220",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "phone",
      "type": "text",
      "x": 960,
      "y": 506,
      "width": 200,
      "height": 28,
      "text": "{{phone}}",
      "font": "Inter",
      "weight": 500,
      "size": 18,
      "color": "#475569",
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    },
    {
      "name": "office",
      "type": "text",
      "x": 872,
      "y": 566,
      "width": 288,
      "height": 36,
      "text": "{{office}}",
      "font": "Inter",
      "weight": 800,
      "size": 16,
      "color": "#0f766e",
      "transform": "uppercase",
      "letter_spacing": 2,
      "valign": "middle",
      "fit": "shrink",
      "max_lines": 1
    }
  ]
}