---
title: "Property Explorer Dynamic Link"
method: POST
path: "/v3/property/pexp_dynamic_link"
tags: ["Property Explorer API"]
---

# Property Explorer Dynamic Link

`POST /v3/property/pexp_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>

## Request body

- object[] — Array of objects containing address input parameters for each requested property.
  - `street_address` string, required — Full street address including street number and name.
  - `address` string — Street portion of the address (redundant with street_address in some contexts).
  - `zipcode` string, required — 5-digit ZIP code.
  - `slug` string — URL-safe slug version of the address.
  - `unit` string — Optional unit identifier (e.g., "Apt 1B").
  - `unit_designator` string — Optional designator for the unit (e.g., "Apt", "Unit", "Suite").
  - `cobranding` boolean — Whether cobranding is enabled for this request.

## Response `200`

Success

- object — Response object containing metadata about the bulk request and results for each job.
  - `request_created` string, date-time, required — Timestamp when the bulk request was created.
  - `request_id` string, required — Unique identifier for the bulk request.
  - `jobs` object[], required — List of successful job responses.
    - `street_address` string, nullable — Full street address (preferred key).
    - `address` string, nullable — Legacy key for address (same as street_address).
    - `zipcode` string, nullable — 5-digit ZIP code.
    - `slug` string, nullable — URL-safe version of the address.
    - `unit` string, nullable — Apartment, suite, or unit identifier.
    - `unit_designator` string, nullable — Designator for the unit (e.g., Apt, Unit, Ste).
    - `cobranding` boolean, nullable — Indicates whether the request should use cobranding.
    - `format` string, required — Output format for the generated report (e.g., PDF, link).
    - `id` string, required — Client-specified identifier for the job.
    - `report_id` integer, nullable — Internal report identifier.
    - `data_link` string, nullable — Link to the generated report resource for a successfully completed job.
    - `error_message` string, nullable — Error message if the job failed.
  - `failed_jobs` object[], required — List of jobs that failed to process.
    - `street_address` string, nullable — Full street address (preferred key).
    - `address` string, nullable — Legacy key for address (same as street_address).
    - `zipcode` string, nullable — 5-digit ZIP code.
    - `slug` string, nullable — URL-safe version of the address.
    - `unit` string, nullable — Apartment, suite, or unit identifier.
    - `unit_designator` string, nullable — Designator for the unit (e.g., Apt, Unit, Ste).
    - `cobranding` boolean, nullable — Indicates whether the request should use cobranding.
    - `format` string, required — Output format for the generated report (e.g., PDF, link).
    - `id` string, required — Client-specified identifier for the job.
    - `report_id` integer, nullable — Internal report identifier.
    - `data_link` string, nullable — Link to the generated interactive Property Explorer report.
    - `error_message` string, nullable — Error message if the job failed.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/housecanary/apis/housecanary-analytics-and-portfolio-monitoring-apis.md) · [All operations](https://skmtc.net/housecanary/apis/housecanary-analytics-and-portfolio-monitoring-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/housecanary/housecanary-analytics-and-portfolio-monitoring-apis/revisions/38afb6724de7/schema)
