Integrations / Webhooks & API

Propera API & Webhooks

Propera is a plain HTTP API. Any tool that can send an authenticated POST, Zapier, Make, n8n, GlobiFlow, GoHighLevel, or your own backend, can underwrite a property and get the ARV, comps, and Zillow links back as JSON.

Authentication

Generate an API key in Propera under Account Settings → API Keys (Pro or Business plan). Send it on every request as an X-API-Key header. Authorization: Bearer YOUR_KEY also works.

X-API-Key: YOUR_PROPERA_API_KEY
Content-Type: application/json

Verify a key with a quick GET to the ping endpoint:

GET https://getpropera.com/api/v1/ping
X-API-Key: YOUR_PROPERA_API_KEY

200 OK
{ "ok": true, "email": "you@example.com", "plan_key": "pro", "api_enabled": true }

Run an analysis

POST a property to the ARV endpoint:

POST https://getpropera.com/api/v1/arv

Request body

FieldValueRequired
addressFull address (street, city, state, ZIP), or structured street/city/state/zipAlways
property_typesfh, condo, townhouse, manufactured, or land (case-insensitive)Always
bedroomsNumber of bedroomsResidential
bathroomsNumber of bathroomsResidential
year_builtYear the property was builtResidential
sqftLiving area for residential, or lot size for landAlways
comp_radiusSearch radius in miles (residential up to 15, land up to 50)Always
lot_size_unitsqft or acresLand only
soft_errorstrue to receive every failure as HTTP 200 with success: false (the real status is returned in http_status). Use it when your automation tool stops the flow on a non-200 responseOptional
curl -X POST https://getpropera.com/api/v1/arv \
  -H "X-API-Key: YOUR_PROPERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "123 Main St, Austin, TX 78704",
    "property_type": "sfh",
    "bedrooms": 4,
    "bathrooms": 2.5,
    "sqft": 2200,
    "year_built": 2005,
    "comp_radius": 5
  }'

Response

A successful run returns 200 with success: true:

{
  "success": true,
  "id": 1024,
  "run_url": "https://getpropera.com/comps_run?id=1024",
  "normalized_address": "123 Main Street, Austin, TX 78704",
  "arv": 330000,
  "arv_confidence": "high",
  "comps_radius_miles": 5,
  "comp_count": 5,
  "price_per_sqft": 150.00,
  "summary_text": "ARV: $330,000 (high confidence) from 5 comparables within 5 mi.",
  "dom": { "quick_sale_days": 30, "market_days": 45, "top_dollar_days": 60 },
  "comps": [
    {
      "address": "456 Oak Ave, Austin, TX 78704",
      "price": 318000, "sqft": 2120, "beds": 4, "baths": 2.5,
      "price_per_sqft": 150.00, "distance_mi": 0.8, "sold_date": "2026-05-02",
      "verification": "Confirmed sale", "condition": "Partially Updated",
      "zillow_url": "https://www.zillow.com/homes/..._rb/"
    }
  ],
  "comps_text": "456 Oak Ave, Austin, TX 78704 | $318,000 | 2,120 sqft | 4bd/2.5ba | $150.00/sqft | 0.80 mi | sold 2026-05-02 | Confirmed sale | Partially Updated | https://www.zillow.com/homes/..._rb/\n\n...",
  "generated_at": "2026-06-07T17:46:47Z",
  "arv_fast": 336000,
  "arv_source": "verified",
  "verification": {
    "status": "verified",
    "steps": ["Checking 7 comps against records", "Checked 6 of 7, 5 confirmed, 1 dropped", "..."],
    "reason_counts": { "confirmed": 5, "corrected": 1, "dropped_never_sold": 1 },
    "evidence": { "total_weight": 4.95, "spread": 0.069, "avm_share": 0.65 },
    "comps": [ { "address": "456 Oak Ave, Austin, TX 78704", "status": "corrected",
                 "status_label": "Confirmed sale", "condition": "updated",
                 "verified_sold_price": 318000, "verified_sold_date": "2026-05-02" } ]
  }
}

The arv_fast / arv_source / verification fields appear when comp verification runs: each comp the ARV used is checked against public listing records (actual sale, recorded price, condition) and arv is the verified number. When verification is unavailable, arv is the standard estimate and verification.status is "unavailable".

A failure returns a 4xx with success: false and a reason:

{
  "success": false,
  "error": "No recent comparable sales were found within 5 mi of this address. Widen comp_radius and try again.",
  "error_code": "INSUFFICIENT_COMPS"
}
Branch your automation on success: on true, write arv and summary_text back to the lead; on false, write error to a notes field. Each successful run consumes one ARV credit on your plan.

Error codes

Failures return the HTTP status below with success: false, error, and error_code. If your tool aborts on non-200 responses (Podio GlobiFlow does), send "soft_errors": true and every failure arrives as HTTP 200 with the original code in http_status.

error_codeHTTPMeaning & fix
UNAUTHORIZED401Missing/invalid key. Check the X-API-Key header.
PLAN_NOT_ELIGIBLE403Plan has no API access. Upgrade to Pro or Business.
LIMIT_REACHED402Monthly ARV limit hit. Resets next billing cycle.
INSUFFICIENT_COMPS422Not enough comps at that radius. Widen comp_radius.
NO_USABLE_COMPS422Comps found but none passed the filters. Widen comp_radius.
ALL_COMPS_UNVERIFIED422Every comp failed verification against public listing records (never sold, off-market, etc.). No run is saved and no credit is consumed. Retry with a larger comp_radius.
ADDRESS_NOT_FOUND422Propera could not resolve the address it received. error names that address (also returned as address_received). Fix the street number, city, state or ZIP and retry.
INVALID_COMP_RADIUS422comp_radius is missing or out of range.
INVALID_PROPERTY_DETAILS422A required property field is missing or out of range.

Questions people ask

Which Propera plans include API access?

Pro and Business. Requests authenticated with a Starter plan key return 403 with a message saying API access is available on the Pro and Business plans.

What do the error codes mean in practice?

401 means the key is missing or invalid. 403 means the key is valid but the plan has no API access. 402 means the monthly ARV limit is exhausted and resets on your next billing cycle. 422 means the request was understood but could not be fulfilled, most often an address that could not be matched or a required field missing for the property type.

Does every call consume one of my monthly ARVs?

Every completed analysis does. Requests that fail with 401, 403 or 422 do not produce an estimate. Because the allowance is monthly rather than per-day, an unfiltered high-volume integration can exhaust it early in the cycle.

How wide can the comp search radius go?

Up to 15 miles for residential and up to 50 miles for land. A wider radius is the usual fix when a response mentions that it could not find closely matching comparable sales, though a result found at the edge of the range will carry a lower confidence score.

Which fields are required?

The address and the radius are always required. Bedrooms, bathrooms, year built and living area are required for residential property types, and lot size is used in place of living area for land. Sending a residential payload without those fields returns a 422 rather than a partial estimate.

Build it your way.

Generate an API key and start underwriting from any tool.

Get Started