Social Content

Generate professional social media post images for property listings. Each API call produces a single post — call multiple times for different sizes (square, portrait, story).

Overview

The social content endpoint generates a social media post image from property data, images, and optional agent/agency branding. The output includes both a rendered image (JPEG) and Polotno-compatible JSON for further editing.

Every design goes through automated quality refinement before it is returned, ensuring professional-quality output.

Available post sizes:

TypeDimensionsAspect RatioBest For
square1080 × 10801:1Instagram feed, Facebook feed
portrait1080 × 13504:5Instagram feed (tall format)
story1080 × 19209:16Instagram Stories, Facebook Stories

Quick Example

Generate a square Instagram post for a property listing:

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "post_type": "square",
    "property": {
      "address": "42 Harbour Road, Sydney NSW 2000",
      "suburb": "Sydney",
      "property_type": "House",
      "price_display": "$2,500,000",
      "features": [
        { "key": "Bedrooms", "value": "4" },
        { "key": "Bathrooms", "value": "3" }
      ],
      "images": ["https://example.com/front.jpg"]
    },
    "branding": {
      "agent_name": "Jane Smith",
      "agency_name": "Harbour Realty",
      "primary_color": "#1a365d"
    }
  }' \
  https://api.dometech.com.au/v1/social-content/generate

Response (202):

{
  "data":  {
    "job_id":  "550e8400-e29b-41d4-a716-446655440000",
    "status":  "queued"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-02-21T10:00:00.000Z",
    "mode":  "live"
  }
}

Step-by-Step

1. Prepare Property Data

Gather the property information you want to include on the post. At minimum, you need the property address, at least one image URL, and a post type. For the best results, include as much property data as possible: features, price, description, and agent branding.

The request body is organized into three sections:

  • post_type — The size/format of the post
  • property — Address, suburb, type, price, description, features, and images
  • branding — Agent name, phone, headshot, agency name, logo, and brand colors

2. Submit the Generation Request

Send a POST request to /v1/social-content/generate with your property data, post type, and branding. Here is a minimal example with only required fields:

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "post_type": "square",
    "property": {
      "address": "42 Harbour Road, Sydney NSW 2000",
      "images": ["https://example.com/front.jpg"]
    }
  }' \
  https://api.dometech.com.au/v1/social-content/generate

The API returns a 202 Accepted response with a job_id. The post is generated asynchronously.

3. Poll for Completion

Poll the job status endpoint until the status changes to completed.

curl -H "X-API-Key: dome_live_your_key_here" \
  https://api.dometech.com.au/v1/jobs/550e8400-e29b-41d4-a716-446655440000

4. Retrieve the Result

When the job completes, the output field contains the rendered image URLs and Polotno JSON for editing.

{
  "data":  {
    "id":  "550e8400-e29b-41d4-a716-446655440000",
    "job_type":  "social_content",
    "status":  "completed",
    "mode":  "live",
    "input":  {
      "post_type":  "square",
      "property":  { "address":  "42 Harbour Road, Sydney NSW 2000" }
    },
    "output":  {
      "polotno_json":  { "width":  1080, "height":  1080, "pages":  [{ "children":  [] }] },
      "rendered_image_url":  "https://storage.example.com/social-post-final.jpg",
      "display_image_url":  "https://storage.example.com/social-post-display.jpg",
      "post_type":  "square",
      "width":  1080,
      "height":  1080,
      "aspect_ratio":  "1:1",
      "generation_attempts":  1,
      "generation_time_ms":  12500
    },
    "created_at":  "2026-02-21T10:00:00.000Z",
    "updated_at":  "2026-02-21T10:00:45.000Z",
    "completed_at":  "2026-02-21T10:00:45.000Z"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-02-21T10:00:45.000Z",
    "mode":  "live"
  }
}

Generating Multiple Sizes

Each API call generates one post. To create posts for multiple platforms, make separate requests for each size. You can submit all requests in parallel — each returns its own job ID.

# Generate all three sizes in parallel
curl -X POST ... -d '{"post_type": "square", ...}'   &
curl -X POST ... -d '{"post_type": "portrait", ...}' &
curl -X POST ... -d '{"post_type": "story", ...}'    &
wait

Tip: The polotno_json in the output can be loaded into a Polotno SDK editor, allowing users to customize the design before exporting.

Options

Property

ParameterTypeRequiredDescription
property.addressstringYesFull property address
property.suburbstringNoProperty suburb/locality
property.property_typestringNoProperty type (e.g. "House", "Apartment")
property.listing_typestringNoListing type (e.g. "sale", "rent")
property.price_displaystringNoPrice display text (e.g. "$1,200,000")
property.descriptionstringNoProperty description text
property.featuresarrayNoKey-value features array
property.imagesstring[]YesProperty image URLs

Branding

ParameterTypeDescription
branding.agent_namestringAgent display name
branding.agent_phonestringAgent phone number
branding.agency_namestringAgency name
branding.agency_logo_urlstring (URI)Agency logo image URL
branding.agent_headshot_urlstring (URI)Agent headshot image URL
branding.primary_colorstringPrimary brand color (hex or CSS color)
branding.secondary_colorstringSecondary brand color (hex or CSS color)
branding.additional_agentsarrayAdditional agents with name and phone

All branding parameters are optional. You can also include webhook_url and callback_metadata at the top level. See the API Reference for the complete parameter list.

Output

When the job completes, the output object contains:

FieldTypeDescription
polotno_jsonobjectPolotno-compatible JSON for editing in the Polotno SDK
rendered_image_urlstringFull-quality rendered image URL (4K JPEG)
display_image_urlstringDisplay-quality image URL (2K JPEG, optimized for web)
post_typestringPost size that was generated
widthnumberImage width in pixels
heightnumberImage height in pixels
aspect_ratiostringAspect ratio (e.g. "1:1", "4:5", "9:16")
generation_attemptsnumberNumber of generation attempts (1 or 2)
generation_time_msnumberTotal generation time in milliseconds

Next Steps