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:
| Type | Dimensions | Aspect Ratio | Best For |
|---|---|---|---|
square | 1080 × 1080 | 1:1 | Instagram feed, Facebook feed |
portrait | 1080 × 1350 | 4:5 | Instagram feed (tall format) |
story | 1080 × 1920 | 9:16 | Instagram 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/generateResponse (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 postproperty— Address, suburb, type, price, description, features, and imagesbranding— 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/generateThe 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-4466554400004. 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", ...}' &
waitTip: The polotno_json in the output can be loaded into a Polotno SDK editor, allowing users to customize the design before exporting.
Options
Property
| Parameter | Type | Required | Description |
|---|---|---|---|
property.address | string | Yes | Full property address |
property.suburb | string | No | Property suburb/locality |
property.property_type | string | No | Property type (e.g. "House", "Apartment") |
property.listing_type | string | No | Listing type (e.g. "sale", "rent") |
property.price_display | string | No | Price display text (e.g. "$1,200,000") |
property.description | string | No | Property description text |
property.features | array | No | Key-value features array |
property.images | string[] | Yes | Property image URLs |
Branding
| Parameter | Type | Description |
|---|---|---|
branding.agent_name | string | Agent display name |
branding.agent_phone | string | Agent phone number |
branding.agency_name | string | Agency name |
branding.agency_logo_url | string (URI) | Agency logo image URL |
branding.agent_headshot_url | string (URI) | Agent headshot image URL |
branding.primary_color | string | Primary brand color (hex or CSS color) |
branding.secondary_color | string | Secondary brand color (hex or CSS color) |
branding.additional_agents | array | Additional 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:
| Field | Type | Description |
|---|---|---|
polotno_json | object | Polotno-compatible JSON for editing in the Polotno SDK |
rendered_image_url | string | Full-quality rendered image URL (4K JPEG) |
display_image_url | string | Display-quality image URL (2K JPEG, optimized for web) |
post_type | string | Post size that was generated |
width | number | Image width in pixels |
height | number | Image height in pixels |
aspect_ratio | string | Aspect ratio (e.g. "1:1", "4:5", "9:16") |
generation_attempts | number | Number of generation attempts (1 or 2) |
generation_time_ms | number | Total generation time in milliseconds |
Next Steps
- API Reference — Social Content — Full parameter details and schemas
- Brochure Slides — Generate marketing brochures with the same property data
- Jobs & Webhooks — Polling best practices and real-time notifications