Skip to main content

Lead generators

Lead generators are saved investment scanners: an area (a set of outcodes or a drawn polygon) plus filter criteria (price, beds, yield, BMV, 60+ keyword flags such as probate or needs_modernisation), persisted server-side and queryable on demand. They run against 2.1M+ live UK listings refreshed daily, so the same scanner returns new deals each time you poll it. Typical integration: create a scanner once, then page through /{lg_id}/properties (or pull the CSV export) on a schedule. Required scope: leads:read Cost: 1 request per call Available on: Starter, Professional, Business
Scanner endpoints are plan-gated on the underlying account: the number of scanners you can hold is limited by subscription tier, and a free-tier account returns 403. Requests over a paid_* API key are authorised as the key owner’s account.

List lead generators

Returns all active lead generators for the authenticated account, with plan limit and remaining headroom.

Request

No parameters.

Response

Preview match counts

Fast COUNT preview for a scanner-in-the-making — see the rough size of the result set for a given area + criteria before saving. Where the chosen playbook has stored tiers, a gold/silver/bronze breakdown is included. Soft-fails (never errors): a failed count returns status: "timeout" with total: 0.

Request

*At least one of selected_outcodes or polygon_wkt should be set — with neither, the endpoint returns an empty preview (status: "empty") without querying.

Response

Create a lead generator

Persists a new scanner. Either selected_outcodes or polygon_wkt must be provided. Plan-based scanner count limits apply — exceeding them returns 403.

Request

*One of selected_outcodes or polygon_wkt is required — providing neither returns 400.

Response

Returns 201 Created with the full lead generator object — same shape as a single item in the list response above.

Get a lead generator

Request

Response

The full lead generator object — same shape as a single item in the list response above.

Update a lead generator

Only the fields you provide are changed.

Request

Accepts the same fields as the create endpoint, all optional. Sending an empty body returns 400.

Response

The updated lead generator object.

Delete a lead generator

Soft-deletes the scanner (sets it inactive). Returns 204 No Content.

Request

Get matching properties

The workhorse endpoint: paginated properties matching the scanner’s area + saved criteria. Every filter below can also be passed as a query param to override or narrow the saved criteria for that request only. Results are cached for 15 minutes per unique filter combination.

Request

Response

Each property object also carries the full set of keyword booleans (probate, repossessed, tenanted, hmo_potential, …), per-strategy scores (btl_score, hmo_score, flip_score, brrr_score, sa_score, r2r_score, motivation_score), BMV metadata (bmv_market_tier, bmv_confidence_level, bmv_data_source), bedroom_potential_score / bedroom_potential_tier, cash_flow, condition_tier and price_per_sqft. Null when not yet enriched.

Get status counts

Property count breakdown by status category for a scanner’s area. Accepts the same filter query params as /{lg_id}/properties (excluding status itself) so counts stay aligned with a filtered result list.

Request

Response

Export properties as CSV

Streams a CSV of properties matching the scanner. Accepts the same filter / sort_by / status query params as /{lg_id}/properties. Capped at 10,000 rows, Excel-compatible (UTF-8 with BOM). The X-Export-Row-Count response header carries the row count.

Request

Response

text/csv stream with a Content-Disposition: attachment header. Columns mirror the property fields returned by /{lg_id}/properties.