Skip to main content
Prospects are the core resource in LeadScout — they represent individual homes or businesses your team is canvassing. The prospects API gives you full CRUD access plus bulk CSV export and import. Sales reps automatically see only their own assigned prospects; admins and owners see all prospects across the company. Every response includes the prospect’s current status, address, assigned rep, and tags.

List prospects

Sales reps without canViewAllProspects permission see only prospects assigned to them. Admins and owners see all company prospects.

Query parameters

string
Bounding box filter as minLng,minLat,maxLng,maxLat. Returns only prospects whose coordinates fall within the box. Example: -85.7,42.9,-85.5,43.1
string
ISO 8601 date string. Returns prospects created on or after this date. Example: 2024-01-01
string
ISO 8601 date string. Returns prospects created on or before this date. Example: 2024-12-31
string
Comma-separated list of status values. Example: contacted,sold
string
Comma-separated list of user IDs. Admin and owner only. Example: 12,34
string
Comma-separated list of rep full names. Admin and owner only. Example: Jane Smith,Bob Jones
string
Comma-separated list of tag display values (not IDs). Example: solar,roofing
string
Comma-separated list of city names. Example: Grand Rapids,Holland
Full-text search across name, phone, email, address, and notes.
number
default:"1"
Page number (1-indexed).
number
default:"50"
Number of records per page.

Response

object[]
Array of prospect objects.
number
Total number of matching prospects.
number
Current page number.
number
Records per page.

Create a prospect

Request body

string
Prospect’s full name.
string
Primary phone number.
string
Secondary phone number.
string
Must be a valid email format if provided.
number
Latitude coordinate.
number
Longitude coordinate.
number
ID of an existing address record to associate.
number
ID of a lead status. If provided, a status history entry is created automatically.
number
ID of the user to assign this prospect to.
string
Origin string (e.g. api, csv-import).
string
External ID from the originating system.
string
ISO 8601 timestamp from the originating system.
object
Arbitrary key/value pairs for custom fields.
Returns 201 with the created prospect object on success.

Get a prospect

Returns a single prospect with its full history, including up to 5 recent notes, all appointments, and the complete status history.

Path parameters

number
required
The prospect ID.
Returns 404 if the prospect does not exist or belongs to a different company.

Update a prospect

All body fields are optional. Only the fields you send are changed. If you change currentStatusId, a new status history entry is created.

Path parameters

number
required
The prospect ID.

Request body

string
Full name.
string
Primary phone number.
string
Secondary phone number.
string
Valid email address.
number
Latitude coordinate.
number
Longitude coordinate.
number
Address record ID.
number
New lead status ID.
number
User ID to (re-)assign to.
number
User ID of the person performing the assignment.
string
Origin string.
string
External ID.
object
Custom field key/value pairs.

Delete a prospect

Deletes the prospect. The record is excluded from all list and single-get responses immediately, but is not permanently destroyed so your data history is preserved.

Path parameters

number
required
The prospect ID.
Returns { "id": <number> } on success.

Export prospects as CSV

Returns a downloadable prospects.csv file. Supports the same filter parameters as the list endpoint (bbox, dateFrom, dateTo, status, assignedToUserId, tagId). The file is streamed in batches of 500 records — there is no page limit.

CSV columns

id, name, phone, email, lat, lng, address1, address2, city, state, zip, status, assignedTo, assignedToEmail, tags (semicolon-separated), notes (most recent), createdBy, source, createdAt

Import prospects from CSV

This endpoint requires the canManageProspects permission. Sales reps without that permission receive a 403.
Upload a CSV file as multipart/form-data. Each row creates one prospect. Rows missing both an address (address1 + city + state + zip) and coordinates (lat + lng) are skipped.

Form fields

file
required
A CSV file. The first row must be a header row. Supported columns: name, phone, email, lat, lng, address1, address2, city, state, zip, status (matched by display value), assignedTo (matched by email address), tags (semicolon-separated tag values), notes.

Response

number
Number of successfully created prospects.
number
Number of rows that were skipped due to errors.
object[]
Array of { row: number, message: string } objects describing each skipped row.

Get map pins

Returns a lightweight array of coordinate and color data for rendering map pins. Supports the same filter parameters as the list endpoint. Use this endpoint instead of the full list when you only need to render markers on a map — it returns far less data.

Response

Returns an array of pin objects directly (not paginated).
number
Prospect ID.
number
Latitude.
number
Longitude.
string
Hex color from the prospect’s current status, or #9CA3AF if no status is set.