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

# Property Explorer Static Link

`POST /v3/property/pexp_static_link`

Returns a link to a PEXP Report PDF.  The PEXP report contains an in-depth assessment of subject property and nearby comparables.  This is the most current version of our legacy Static Link capability and is now powered by our latest functionality and current PEXP reports.

Asynchronous bulk workflow: This POST endpoint queues report generation jobs and immediately returns a bulk response containing request_created, request_id, jobs, and failed_jobs (mirroring the bulkLinkResponse structure documented internally). Each element in jobs or failed_jobs corresponds 1:1 with an address you submitted; the address fields (street_address/address, zipcode, unit, unit_designator, slug, cobranding) echo your original input so you can correlate results. The request_id must be used to poll the job status endpoint: GET /v3/jobs/{request_id}/status until all_tasks_are_finished is true. Recommended polling interval: every 2–5 seconds (back off to 10–15 seconds for large batches). When all_tasks_are_finished becomes true, retrieve the final downloadable assets (PDF links) via: GET /v3/jobs/{request_id}/download. The task_states array in the status response lets you distinguish SUCCESS vs FAILURE and task_uuid_to_link_map (and later the download payload) provides the final per-address static PDF links. If a job fails, its error_message will appear in failed_jobs in this initial response and/or the status endpoint error field.  

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>12345</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 to job 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 job where you can fetch job data.</td><td>https://api.housecanary.net/report-api/jobs/static/00000000-0000-0000-0002-784f00000000</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 job where you can fetch job data.</td><td>https://api.housecanary.net/report-api/jobs/static/00000000-0000-0000-0002-784f00000000</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 job where you can fetch job data.
    - `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 job where you can fetch job data.
    - `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)
