Developer API
Give every listing its own AI assistant, programmatically. POST an address, get back a branded listing page with a full marketing kit — listing copy, social posts, and a neighborhood blurb. The API creates the pages and kits; Proppie (the AI assistant that answers buyer questions and captures qualified leads with conversation context) is configured in the dashboard. Works with Make.com, Zapier, n8n, or any HTTP client.
Bearer or x-api-key
Send your key as x-api-key or Authorization: Bearer.
~15 second response
Each call generates fresh copy with GPT-4 and publishes a live page.
JSON in, JSON out
Standard REST. No SDK required. Plays nicely with low-code tools.
1. Get an API key
API access requires a Pro plan. Upgrade here, then head to Settings → API Access and click Generate API Key. Keys look like apw_live_… and are shown exactly once — copy it into your password manager or the tool you're wiring up.
2. Create a listing
POST /api/v1/listings
curl -X POST https://www.aipropertywriter.com/api/v1/listings \
-H "Content-Type: application/json" \
-H "x-api-key: apw_live_YOUR_KEY_HERE" \
-d '{
"address_line1": "123 Main St",
"city": "Austin",
"state": "TX",
"zip_code": "78701",
"price_cents": 75000000,
"beds": 4,
"baths": 3,
"sqft": 2400,
"property_type": "Single Family",
"features": ["pool", "hardwood floors", "updated kitchen"],
"photos": ["https://example.com/photo1.jpg"]
}'Request body
| Field | Type | Notes |
|---|---|---|
| address_line1 | string | Required. Max 200 chars. |
| city | string | Optional. Used for the neighborhood blurb. |
| state | string | Optional. 2-letter or full name. |
| zip_code | string | Optional. |
| price_cents | integer | Optional. $750,000 = 75000000. |
| beds | integer | Optional. |
| baths | number | Optional. Halves allowed (e.g. 2.5). |
| sqft | integer | Optional. |
| property_type | string | Optional. E.g. “Single Family”, “Condo”, “Townhouse”. |
| features | string[] | Optional. Up to 20 items. |
| photos | string[] | Optional. Public image URLs. Up to 20. |
Response
{
"success": true,
"data": {
"id": "c3f9…",
"token": "k2JdLm3n",
"public_url": "https://www.aipropertywriter.com/p/k2JdLm3n",
"address": {
"line1": "123 Main St",
"city": "Austin",
"state": "TX",
"zip_code": "78701"
},
"listing": {
"title": "Sun-Drenched Austin Retreat with a Backyard Oasis",
"description": "…",
"highlights": ["Saltwater pool", "Chef's kitchen", "…"],
"social": { "instagram": "…", "facebook": "…" }
}
}
}The public_url is live immediately — share it on social, email it to your seller, or drop it into a Facebook ad.
3. List your listings
GET /api/v1/listings returns up to 100 of your most recent listings.
curl https://www.aipropertywriter.com/api/v1/listings \
-H "x-api-key: apw_live_YOUR_KEY_HERE"Error codes
| Status | Meaning |
|---|---|
| 400 | Invalid JSON body or missing address_line1. |
| 401 | Missing or invalid API key. |
| 402 | Pro plan required, or your monthly listing limit is reached. |
| 500 | Failed to save the listing. Retry. |
| 502 | Listing generator failed. Retry. |
Wiring it to Make.com
- In Make.com, add an HTTP → Make a request module.
- URL:
https://www.aipropertywriter.com/api/v1/listings, methodPOST. - Add headers:
Content-Type: application/jsonandx-api-key: apw_live_…(store the key in Make's connection vault, not plaintext). - Body type: Raw, content type JSON (application/json). Map the listing fields from your trigger (Google Sheets row, new MLS lead, etc.) into the JSON body.
- The module returns
public_url— pipe it to Slack, email, a text, or a Facebook post.