Property Explorer API

Property Explorer Dynamic Link

Returns a link to an interactive web-based Property Explorer (PEXP) report. This interactive report includes in-depth assessment of subject property and nearby comparables. This is the most current version of our legacy Dynamic Link capability and is now powered by our latest functionality and seamlessly integrates with the most current version of Property Explorer.

Asynchronous bulk workflow: This POST endpoint enqueues generation of multiple interactive PEXP links. The immediate response includes request_created, request_id, jobs, and failed_jobs. Each element in jobs/failed_jobs maps directly to an address you submitted (fields echo your input so you can correlate). Use the returned request_id to poll: GET /v3/jobs/{request_id}/status until all_tasks_are_finished is true. Poll every 2–5 seconds (increase interval for large batches). While polling, inspect task_states for each address (state will transition through PENDING/RECEIVED/STARTED to SUCCESS or FAILURE). When complete, fetch consolidated results via: GET /v3/jobs/{request_id}/download. The download response enumerates each task with its final download_link (for dynamic link requests this will be the shareable interactive report URL) and status. Any per-address failures will surface an error_message either in failed_jobs from the initial response, the status endpoint error field, or the download listing with status=FAILURE.

Pricing Tier: Premium

Request Body Fields

<table><tr><th>Field</th><th>Type</th><th>Description</th><th>Example</th></tr> <tr><td>[]</td><td>object</td><td></td><td></td> </tr> <tr><td>[].street_address</td><td>string</td><td>Full street address including street number and name.</td><td>123 Main St</td> </tr> <tr><td>[].address</td><td>string</td><td>Street portion of the address (redundant with street_address in some contexts).</td><td>123 Main St</td> </tr> <tr><td>[].zipcode</td><td>string</td><td>5-digit ZIP code.</td><td>94132</td> </tr> <tr><td>[].slug</td><td>string</td><td>URL-safe slug version of the address.</td><td>123-Main-St-Apt-1B-San-Francisco-CA-94132</td> </tr> <tr><td>[].unit</td><td>string</td><td>Optional unit identifier (e.g., "Apt 1B").</td><td>Apt 1B</td> </tr> <tr><td>[].unit_designator</td><td>string</td><td>Optional designator for the unit (e.g., "Apt", "Unit", "Suite").</td><td>Apt</td> </tr> <tr><td>[].cobranding</td><td>boolean</td><td>Whether cobranding is enabled for this request.</td><td>true</td> </tr> </table>

Response

<table><tr><th>Field</th><th>Type</th><th>Description</th><th>Example</th></tr> <tr><td>request_created</td><td>string</td><td>Timestamp when the bulk request was created.</td><td>2025-06-04T12:00:00Z</td> </tr> <tr><td>request_id</td><td>string</td><td>Unique identifier for the bulk request.</td><td>req_abc123</td> </tr> <tr><td>jobs</td><td>array</td><td>List of successful job responses.</td><td></td> </tr> <tr><td>jobs[]</td><td>object</td><td>Job-level response containing link data or an error message.</td><td></td> </tr> <tr><td>jobs[].street_address</td><td>string</td><td>Full street address (preferred key).</td><td>123 Main St</td> </tr> <tr><td>jobs[].address</td><td>string</td><td>Legacy key for address (same as street_address).</td><td>123 Main St</td> </tr> <tr><td>jobs[].zipcode</td><td>string</td><td>5-digit ZIP code.</td><td>94132</td> </tr> <tr><td>jobs[].slug</td><td>string</td><td>URL-safe version of the address.</td><td>123-Main-St-Apt-1B-San-Francisco-CA-94132</td> </tr> <tr><td>jobs[].unit</td><td>string</td><td>Apartment, suite, or unit identifier.</td><td>Apt 1B</td> </tr> <tr><td>jobs[].unit_designator</td><td>string</td><td>Designator for the unit (e.g., Apt, Unit, Ste).</td><td>Apt</td> </tr> <tr><td>jobs[].cobranding</td><td>boolean</td><td>Indicates whether the request should use cobranding.</td><td>true</td> </tr> <tr><td>jobs[].format</td><td>string</td><td>Output format for the generated report (e.g., PDF, link).</td><td>link</td> </tr> <tr><td>jobs[].id</td><td>string</td><td>Client-specified identifier for the job.</td><td>job_456</td> </tr> <tr><td>jobs[].report_id</td><td>integer</td><td>Internal report identifier.</td><td>12345</td> </tr> <tr><td>jobs[].data_link</td><td>string</td><td>Link to the generated report resource for a successfully completed job.</td><td>https://api.housecanary.com/report-api/jobs/reports/550e8400-e29b-41d4-a716-446655440000</td> </tr> <tr><td>jobs[].error_message</td><td>string</td><td>Error message if the job failed.</td><td>Invalid address provided</td> </tr> <tr><td>failed_jobs</td><td>array</td><td>List of jobs that failed to process.</td><td></td> </tr> <tr><td>failed_jobs[]</td><td>object</td><td>Job-level response containing link data or an error message.</td><td></td> </tr> <tr><td>failed_jobs[].street_address</td><td>string</td><td>Full street address (preferred key).</td><td>123 Main St</td> </tr> <tr><td>failed_jobs[].address</td><td>string</td><td>Legacy key for address (same as street_address).</td><td>123 Main St</td> </tr> <tr><td>failed_jobs[].zipcode</td><td>string</td><td>5-digit ZIP code.</td><td>94132</td> </tr> <tr><td>failed_jobs[].slug</td><td>string</td><td>URL-safe version of the address.</td><td>123-Main-St-Apt-1B-San-Francisco-CA-94132</td> </tr> <tr><td>failed_jobs[].unit</td><td>string</td><td>Apartment, suite, or unit identifier.</td><td>Apt 1B</td> </tr> <tr><td>failed_jobs[].unit_designator</td><td>string</td><td>Designator for the unit (e.g., Apt, Unit, Ste).</td><td>Apt</td> </tr> <tr><td>failed_jobs[].cobranding</td><td>boolean</td><td>Indicates whether the request should use cobranding.</td><td>true</td> </tr> <tr><td>failed_jobs[].format</td><td>string</td><td>Output format for the generated report (e.g., PDF, link).</td><td>link</td> </tr> <tr><td>failed_jobs[].id</td><td>string</td><td>Client-specified identifier for the job.</td><td>job_456</td> </tr> <tr><td>failed_jobs[].report_id</td><td>integer</td><td>Internal report identifier.</td><td>12345</td> </tr> <tr><td>failed_jobs[].data_link</td><td>string</td><td>Link to the generated interactive Property Explorer report.</td><td>https://solutions.housecanary.com/pexp/shared/550e8400-e29b-41d4-a716-446655440000</td> </tr> <tr><td>failed_jobs[].error_message</td><td>string</td><td>Error message if the job failed.</td><td>Invalid address provided</td> </tr> </table>
post/v3/property/pexp_dynamic_link

Request body

street_addressstring required

Full street address including street number and name.

addressstring

Street portion of the address (redundant with street_address in some contexts).

zipcodestring required

5-digit ZIP code.

slugstring

URL-safe slug version of the address.

unitstring

Optional unit identifier (e.g., "Apt 1B").

unit_designatorstring

Optional designator for the unit (e.g., "Apt", "Unit", "Suite").

cobrandingboolean

Whether cobranding is enabled for this request.

Example request

[
  {
    "street_address": "123 Main St",
    "address": "123 Main St",
    "zipcode": "94132",
    "slug": "123-Main-St-Apt-1B-San-Francisco-CA-94132",
    "unit": "Apt 1B",
    "unit_designator": "Apt",
    "cobranding": true
  }
]

Response

Success

request_createdstring date-time required

Timestamp when the bulk request was created.

request_idstring required

Unique identifier for the bulk request.

Example response

{
  "request_created": "2025-06-04T12:00:00Z",
  "request_id": "req_abc123",
  "jobs": [
    {
      "street_address": "123 Main St",
      "address": "123 Main St",
      "zipcode": "94132",
      "slug": "123-Main-St-Apt-1B-San-Francisco-CA-94132",
      "unit": "Apt 1B",
      "unit_designator": "Apt",
      "cobranding": true,
      "format": "link",
      "id": "job_456",
      "report_id": 12345,
      "data_link": "https://api.housecanary.com/report-api/jobs/reports/550e8400-e29b-41d4-a716-446655440000",
      "error_message": "Invalid address provided"
    }
  ],
  "failed_jobs": [
    {
      "street_address": "123 Main St",
      "address": "123 Main St",
      "zipcode": "94132",
      "slug": "123-Main-St-Apt-1B-San-Francisco-CA-94132",
      "unit": "Apt 1B",
      "unit_designator": "Apt",
      "cobranding": true,
      "format": "link",
      "id": "job_456",
      "report_id": 12345,
      "data_link": "https://solutions.housecanary.com/pexp/shared/550e8400-e29b-41d4-a716-446655440000",
      "error_message": "Invalid address provided"
    }
  ]
}