Skip to content
background pattern

Developer documentation

Atlas Property Analysis API

Analyze one property from an address or coordinates and receive a distress score, visible evidence, and imagery-quality metadata.

API v1 is synchronous: one request analyzes one property. Only a successful 200 analyzed response consumes credits.

Quickstart

Create a key in the Atlas developer console, then send your first address:

curl https://api.atlasproptech.com/v1/property-distress/analyze \
  -H "x-api-key: $ATLAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"property": {"address": "123 Main St, Tampa, FL"}}'

Authentication

Send your API key in the x-api-key header. Keys are shown only once when created. Keep them on your server, never expose them in browser or mobile-app code, and revoke a key immediately if it is disclosed.

x-api-keyRequired. Your Atlas API key.

Create an analysis

POSThttps://api.atlasproptech.com/v1/property-distress/analyze

Provide exactly one locator: a complete postal address or a latitude/longitude pair. Supplying both returns a 400.

Address

{
  "property": {
    "address": "123 Main St, Tampa, FL"
  }
}

Coordinates

{
  "property": {
    "coordinates": {
      "lat": 27.9506,
      "lng": -82.4572
    }
  }
}

JavaScript example

const response = await fetch("https://api.atlasproptech.com/v1/property-distress/analyze", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.ATLAS_API_KEY
  },
  body: JSON.stringify({
    property: { address: "123 Main St, Tampa, FL" }
  })
});

const analysis = await response.json();

Python example

import os
import requests

response = requests.post(
    "https://api.atlasproptech.com/v1/property-distress/analyze",
    headers={
        "x-api-key": os.environ["ATLAS_API_KEY"],
    },
    json={"property": {"address": "123 Main St, Tampa, FL"}},
    timeout=30,
)
response.raise_for_status()
analysis = response.json()

Successful response

{
  "id": "31bdb62f-6a19-4a22-91d6-d43f05c2869b",
  "status": "analyzed",
  "location": {
    "address": "123 Main St, Tampa, FL 33602, USA",
    "coordinates": { "lat": 27.9506, "lng": -82.4572 }
  },
  "analysis": {
    "score": 62.5,
    "signals": ["damaged siding", "overgrown yard"],
    "reasoning": "Visible deferred exterior maintenance."
  },
  "imagery": {
    "date": "2025-03",
    "distance_m": 12.4,
    "quality_score": 91.2
  },
  "credits_used": 1,
  "api_version": "2026-08-01",
  "model_version": "gemini-2.5-flash-lite"
}
FieldMeaning
analysis.scoreA 0–100 exterior-distress screening score. Higher indicates more visible distress.
analysis.signalsNormalized visible conditions contributing to the result.
analysis.reasoningA concise explanation of the visual evidence.
imageryCapture date, distance to the property, and image-quality score.
credits_usedCredits charged for this completed analysis.

Errors

Error bodies use a stable machine-readable code and a human-readable message:

{
  "error": {
    "code": "NO_PANORAMA",
    "message": "No Street View panorama was found near this property."
  },
  "id": "31bdb62f-6a19-4a22-91d6-d43f05c2869b"
}
HTTPCodeMeaning
400INVALID_REQUESTMalformed JSON, invalid coordinates, or both property locators supplied.
401UNAUTHORIZEDThe API key is missing or invalid.
402BILLING_REQUIREDThe Atlas account does not have an active subscription plan.
403KEY_DISABLEDThe API key has been disabled or revoked.
422NO_PANORAMAThe address, usable imagery, or a visible building could not be found.
429RATE_LIMITEDThe request rate for this key was exceeded.
503ANALYSIS_UNAVAILABLEAn analysis dependency is temporarily unavailable.
504PROVIDER_TIMEOUTA provider did not respond before the request deadline.

Billing and limits

The API is available on Atlas subscription plans. It is not available on the pay-as-you-go plan. Each completed analysis consumes one shared Atlas credit, the same as a property in an area search or a row in a CSV upload. Validation errors, missing or stale imagery, invisible buildings, and provider failures consume zero credits. The default limit is 5 requests per second per key, with a burst of 10. There is no separate monthly request quota: your credit balance is the monthly control.

Retry transient 429, 503, and 504 responses with exponential backoff. Only a completed 200 analysis is billed, so failed attempts never consume credits.

Using the result responsibly

Atlas analyzes visible exterior signals in available imagery. Results are intended for property screening and workflow prioritization. They are not an appraisal, inspection, code-compliance determination, or guarantee of a property’s condition or ownership circumstances.