Property Explorer 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
Example request
[
{
"street_address": "123 Main St",
"address": "123 Main St",
"zipcode": "12345",
"slug": "123-Main-St-Apt-1B-San-Francisco-CA-94132",
"unit": "Apt 1B",
"unit_designator": "Apt",
"cobranding": true
}
]Response
Success
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.net/report-api/jobs/static/00000000-0000-0000-0002-784f00000000",
"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://api.housecanary.net/report-api/jobs/static/00000000-0000-0000-0002-784f00000000",
"error_message": "Invalid address provided"
}
]
}